《最新单片机实验8精品课件.ppt》由会员分享,可在线阅读,更多相关《最新单片机实验8精品课件.ppt(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、单片机实验单片机实验8二、实验内容与步骤二、实验内容与步骤(一)内容(一)内容1 设计一个交通灯控制系统,要求能实现以下功能:设计一个交通灯控制系统,要求能实现以下功能: 1 1、正常时信号灯控制、正常时信号灯控制(1 1)初始状态东西南北全为红灯)初始状态东西南北全为红灯(2 2)东西红灯、南北绿灯)东西红灯、南北绿灯(3 3)东西红灯、南北绿灯转黄灯闪烁)东西红灯、南北绿灯转黄灯闪烁(4 4)南北红灯、东西绿灯)南北红灯、东西绿灯(5 5)南北红灯、东西绿灯转黄灯闪烁)南北红灯、东西绿灯转黄灯闪烁(6 6)转()转(2 2)(二)内容(二)内容2 2 设计一个设计一个00-5900-59简
2、易秒表简易秒表第三部分第三部分 程序写入单片机观察运行结果程序写入单片机观察运行结果1、双击桌面XLISP启动程序,选择打开框,找到需要执行的程序(HEX文件),点击;在XLISP的文件 程序区可见到要执行的程序;2、点击写入框,在程序写入结束后即可观察运行的结果交通灯控制系统设置:交通灯控制系统设置: 绿 黄 红(南北)P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 P1口 状 态 0 0 0 0 0 0 0 1 01H 南北红灯 0 0 0 0 0 1 0 0 04H 南北绿灯 0 0 0 0 0 0 1 0 02H 南北黄灯 交通灯控制控制状态 绿 黄 红
3、(东西)P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 P2口 状 态 0 0 0 0 0 0 0 1 01H 东西红灯 0 0 0 0 0 1 0 0 04H 东西绿灯 0 0 0 0 0 0 1 0 02H 东西黄灯 (1)东西南北全红灯:P1=0 x01;P2=0 x01(2)东西绿灯南北红灯:P1=0 x04;P2=0 x01(3)东西黄灯闪烁南北红灯:P1=02和00;P2=0 x01(4)东西红灯南北绿灯:P1=0 x04;P2=0 x01 交通灯控制参考程序交通灯控制参考程序#include unsigned char t0,t1; /定义全局变量
4、,用来保存延时时间循环次数/函数名:delay0_5s1 用T1方式1编制0.5秒延时程序,void delay0_5s1() for(t0=0;t00 x0a;t0+) / 用全局变量t0作为循环控制变量 TH1=0 x3c;/ 设置定时器初值 TL1=0 xb0; TR1=1; / 启动T1 while(!TF1); / 查询计数是否溢出,即定时50ms时间到,TF1=1 TF1=0; / 50ms定时时间到,将定时器溢出标志位TF1清零 /函数名:delay_t1 实现0.5秒128秒延时void delay_t1(unsigned char t) for(t1=0;t1t;t1+) /
5、 采用全局变量t0作为循环控制变量 delay0_5s1();void main()/主函数 unsigned char k; TMOD=0 x10;/ T1工作在方式1 EA=1;/ 开放总中断允许位 EX0=1;/ 开外部中断0中断允许位 while(1) P1=0 x01; P2=0 x01;/ 东西南北红灯,延时5秒 delay_t1(10); P1=0 x04;P2=0 x01;/东西绿灯南北红灯 P1=0 x0a;/ A黄灯,B红灯, for(k=0;k5;k+)/ A黄灯闪烁5次 P1=02;P2=0 x01 delay0_5s1();/ 延时0.5秒 P1=00;P2=0 x0
6、1; delay0_5s1();/ 延时0.5秒 P1=0 x04;P2=0 x01;/东西红灯南北绿灯,延时5秒 delay_t1(10); for(k=0;k5;k+)/ B黄灯闪烁3次 P1=0 x01;P2=0 x02; delay0_5s1();/ 延时0.5秒 P1=0 x01; P2=0 x00 delay0_5s1();/ 延时0.5秒 #include unsigned char msec,sec;/定义msec为50ms计数变量,sec为秒变量void delay(unsigned char i);void T0_INT(void) interrupt 1/定时器0中断类型
7、号为1 TH0=0 x3c;/50ms定时初值 TL0=0 xb0; msec+;/中断次数增1 if(msec=20)/中断次数到20次吗? msec=0;/1秒计时到,50ms计数单元清零 sec+; /秒单元加1 if(sec=60)/到60秒吗? sec=0; /是,秒单元清零 0059简易秒表参考程序简易秒表参考程序void main() unsigned char led=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90;/定义数字09字型显示码 unsigned char temp; TMOD=0 x01;/定
8、时器0工作方式1 TH0=0 x3c;/50ms定时初值 TL0=0 xb0; EA=1;/开总中断 ET0=1;TR0=1;/开定时器0中断 while(1) P2=0 x7f;/选中P2.0控制的数码管 P0=ledsec%10;/显示秒个位 delay(10); P2=0 xbf; /选中P2.1控制的数码管 P0=ledsec/10;/显示秒十位 delay(10); void delay(unsigned char i) /延时函数,i为形式参数 unsigned char j,k;/定义无符号字符型变量j和k for(k=0;ki;k+)/双重for循环语句实现软件延时 for(j=0;j255;j+); 三、思考题三、思考题 1 1、修改延时子程序、修改延时子程序, ,改变延时时间,观察结果。改变延时时间,观察结果。 2 2、用、用LEDLED数码管显示各方向绿灯亮的时间。数码管显示各方向绿灯亮的时间。 四、实验要求四、实验要求: 1、实习前必须编写好程序 2、程序必须编译通过并运行正确 3、提交试验报告:报告内容 (1)实验目的 (2)实验内容 (3)实验原理图与线路连接 (4)实验步骤 (5)实验结果 (6)实验体会