《单片机实验报告一流水灯实验.docx》由会员分享,可在线阅读,更多相关《单片机实验报告一流水灯实验.docx(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、安徽新华学院实验报告课程名称单片机原理及应用实验名称 流水灯实验实验日期2019年 月 日学号 姓名 实验班级 指导教师史先桂得分一、实验内容1 .实验目的与要求:熟悉Keil软件的工作界面。掌握Keil工程的建立方法和源程序的编译及调试方法。掌握proteus和Keil的联合调试方法。掌握将程序烧录到51单片机中的方法。2 .实验原理:学生需简要分析51单片机流水灯的工作原理3 .实验内容:实现P1 口连接的8个发光二级管每隔500亳秒双向流水点亮。(用三种不同方式实现)截图1:绘制的PROTEUS仿真电路图(3)实现用P0.0至P0.2连接的3个开关按键,控制PI.Ospi.7 口连接的8
2、个发光二级管的亮和灭。例如:开关(P0.2 P0.1 P0.0)(合合合)000(合合开)001(合开合)010(合开开)011(开合合)100(开合开)101(开开合)110(开开开)111LED 灯(PI.Ospi.7)PI.0连接的发光二级管点亮PI.1连接的发光二级管点亮PI.2连接的发光二级管点亮PI.3连接的发光二级管点亮PI.4连接的发光二级管点亮PI.5连接的发光二级管点亮PI.6连接的发光二级管点亮PI.7连接的发光二级管点亮截图2: KEIL中编写的程序指令*include #define uchar unsigned chardefine uint unsigned in
3、tuchar code led = 0xfe, Oxfd, Oxfb, 0xf7, Oxef, Oxdf, Oxbf, 0x7f;void delaylms(uint i)以上连接为参考,具体实验时同学们只要实现三个开关可控制八个灯即可。截图1:绘制的PROTEUS仿真电路图一e截图2: KEIL中编写的程序指令include void main()(char state;while(l)PO=Oxff;state=P0;state=state&0x07;switch(state)case 0:Pl=0Xfe;break;case 1:Pl=OXfd;break;case 2:Pl=OXfb;
4、break;case 3:Pl=0Xf7;break;case 4:Pl=0Xef:break;case 5:Pl=0Xdf;break;case 6:Pl=0Xbf;break; case 7:Pl=0X7f;)二、心得体会小结uchar j;whi le (i-)for(j=0;j=125;j+);)void main()unsigned char i;while (1)for(i=0;i=0:i)|Pl=ledi-1delay 1ms(500);)实现P0 口利Pl 口各自连接的8个发光二级管同时双向流水点亮,并且方向顺序不同(用 三种不同方式实现)截图1:绘制的PROTEUS仿真电路图
5、TxxTIKTAL2MCVTJ K 1/T2tXTO XMW roi(Ai PO2XAD2 P0 3W3 PO4(A4 PO4A6 POWW PO7 约7P3MtD 叩1皿 P3“4TO paatiTTP3 4ff0 P35fflP3,前P2RSM P21 从9 2*A1O kMM1 P232 P25A13 k &A14 P27CA15截图2: KEIL中编写的程序指令include #define uchar unsigned chardefine uint unsigned intuchar code led = 0xfe, Oxfd, Oxfb, 0xf7, Oxef, Oxdf, Oxbf, Ox7f void delaylms(uint i) (uchar j;while(i-)for(j=0;j=125;j+):void main()uchar j;whiled)for(i=0;i=7:i+)Pl=ledi;P0=led7-i;delaylms(500);)for(i=0;i=7;i+)Pl=led7-i;P0=ledi;delaylms(500);说明:P0需外接上拉电阻,可用排阻(符号名称RESPACK-8)
限制150内