欢迎来到天天文库
浏览记录
ID:57388667
大小:116.00 KB
页数:8页
时间:2020-08-15
《流水灯控制系统实验资料报告材料.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《电子与控制系统设计》实验报告实验项目名称:LED灯的移动控制指导老师:元泽怀完成时间:2015年9月22日:文开班级:12电气1班学号:6成绩:电子信息与机电工程学院编制实验项目LED灯的移动控制实验项目类型验证演示综合设计其他*一、实验目的1.熟悉IO接口的设置与应用;2.进一步熟悉编译软件和下载软件的使用;3.熟悉单片机C语言中移位、延时、数组等语句的应用;4.熟悉单片机C语言开发过程。二、实验容1.编写一程序,实现如下功能:每按一次S1键,8个发光二极管顺序点亮1个;同样每按下S2键一次,8个发光二极管逆序点亮1个,实验电路原理图如下图1所示。实现发光二极管循
2、环点亮的按键控制。2.设计一个完整程序(另建一个project),实现8个led灯的自动顺序(加法)点亮和逆序(减法)点亮。图1实验原理图三、使用仪器设备及材料1、安装windowsxp操作系统的微型计算机1台2、AVR单片机C语言集成开发环境ICCAVR6.31A3、单片机仿真平台proteus7.54、AVR单片机下载软件progisp5、AVR单片机实验板1套(含下载器)四、实验过程原始记录1、硬件仿真电路(1)在实验室电脑E盘“12电气1班文开”文件夹里新建一个文件名为“test1”的文件夹。(2)打开protues仿真软件,根据图1设计出试验仿真图,命名为“
3、test1.DSN”保存到上述“test的文件夹里”。图2实验仿真电路图图3实验仿真电路图2、程序流程图(1).LED控制移动流程图:开始初始化、定义I/O端口是否有按键按下?YYS2按下?NNS1按下?计数器counter--YY计数器counter++Counter<0?Counter>8?YNY上一个LED灯点亮最后一个LED灯点亮第一个LED灯点亮下一个LED灯点亮2).LED自动循环流程图:开始初始化、定义I/O口i=0i=i+1i<8?NYi=i-1PORTB=~(1<0?NPORTB=~(1<4、序:#include#defineucharunsignedchar#defineuintunsignedintuchartemp;//*******延时函数********//voiddelay_ms(uintk){uinti,j;for(i=0;i5、置为输入PORTD=0XFF;//输出高电平}//*********主函数*********//voidmain(void){charcounter=0;//计数器port_init();//调用端口函数while(1){if((PIND&0x10)==0){if(++counter>8)counter=1;delay_ms(300);}if((PIND&0x20)==0){counter=counter--;if(--counter<1)counter=8;delay_ms(300);}switch(counter){case1:PORTB=0xfe;break;c6、ase2:PORTB=0xfd;break;case3:PORTB=0xfb;break;case4:PORTB=0xf7;break;case5:PORTB=0xef;break;case6:PORTB=0xdf;break;case7:PORTB=0xbf;break;case8:PORTB=0x7f;break;default:break;}}}(2).自动循环程序:#include#defineucharunsignedchar#defineuintunsignedint//**********延时函数**********//voiddel7、ay_ms(uintk){uinti,j;for(i=0;i
4、序:#include#defineucharunsignedchar#defineuintunsignedintuchartemp;//*******延时函数********//voiddelay_ms(uintk){uinti,j;for(i=0;i5、置为输入PORTD=0XFF;//输出高电平}//*********主函数*********//voidmain(void){charcounter=0;//计数器port_init();//调用端口函数while(1){if((PIND&0x10)==0){if(++counter>8)counter=1;delay_ms(300);}if((PIND&0x20)==0){counter=counter--;if(--counter<1)counter=8;delay_ms(300);}switch(counter){case1:PORTB=0xfe;break;c6、ase2:PORTB=0xfd;break;case3:PORTB=0xfb;break;case4:PORTB=0xf7;break;case5:PORTB=0xef;break;case6:PORTB=0xdf;break;case7:PORTB=0xbf;break;case8:PORTB=0x7f;break;default:break;}}}(2).自动循环程序:#include#defineucharunsignedchar#defineuintunsignedint//**********延时函数**********//voiddel7、ay_ms(uintk){uinti,j;for(i=0;i
5、置为输入PORTD=0XFF;//输出高电平}//*********主函数*********//voidmain(void){charcounter=0;//计数器port_init();//调用端口函数while(1){if((PIND&0x10)==0){if(++counter>8)counter=1;delay_ms(300);}if((PIND&0x20)==0){counter=counter--;if(--counter<1)counter=8;delay_ms(300);}switch(counter){case1:PORTB=0xfe;break;c
6、ase2:PORTB=0xfd;break;case3:PORTB=0xfb;break;case4:PORTB=0xf7;break;case5:PORTB=0xef;break;case6:PORTB=0xdf;break;case7:PORTB=0xbf;break;case8:PORTB=0x7f;break;default:break;}}}(2).自动循环程序:#include#defineucharunsignedchar#defineuintunsignedint//**********延时函数**********//voiddel
7、ay_ms(uintk){uinti,j;for(i=0;i
此文档下载收益归作者所有