单片机应用技术单片机最小系统应用系统开发流程简单交通灯控制系统.pptVIP

  • 26
  • 0
  • 约5.04千字
  • 约 20页
  • 2021-03-24 发布于北京
  • 举报

单片机应用技术单片机最小系统应用系统开发流程简单交通灯控制系统.ppt

实训7 简单通灯控制系统软件设计 学时:2学时 * [实训任务单] 案例 用单片机最小系统实现简单交通灯控制 1 . 案例要求 在单片机最小系统下,由P2、P0口连接12个发光二极管,分别代表四个路口的红、绿、黄灯,初始态为四个路口的红灯全亮之后,东西路口的绿灯亮20秒,南北路口的红灯亮,东西路口方向通车;延时一段时间后,东西路口的绿灯熄灭,黄灯开始闪烁,每隔1s闪烁1次,闪烁3次后,东西路口红灯亮,而同时南北路口的绿灯亮20秒,南北路口方向开始通车;延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪烁,每隔1s闪烁1次,闪烁3次后,再切换到东西路口的绿灯亮,东西方向通车;之后重复以上过程。 2 . 硬件电路设计 根据本任务的要求,选用AT89S51,配备晶振电路和复位电路,晶振频率为12MHz。为了方便线路连接,P0口的低6位分别接西、北路口的红、黄、绿灯(发光二极管,采用共阳极的连接方式),P2口的低6位分别接东、南路口的红、黄、绿灯。 2 . 硬件电路设计 3. 软件设计 根据本任务要求及设计的硬件电路图,各路口的灯亮的规律与P2、P0口的取值有关系到,其规律如下表所示。 定义变量(定义成常量也可以) unsigned char allr=0x36; //所有路口的灯全红 unsigned char ewg_snr=0x1e; //东西路口绿灯亮,南北路口红灯亮 unsigned char ewy=0x2e; //东西路口黄灯亮, 南北路口红灯亮 unsigned char sng_ewr=0x33; //南北路口绿灯亮,东西路口红灯亮 unsigned char sny=0x35; //南北路口黄灯亮,东西路口红灯亮 3、软件设计 为降低难度,逐步达到目标,把本案例变成3个实例: (1)每隔5秒钟,各路口的绿灯、红灯自动转换; (2)东西路口的黄灯每隔1秒钟闪烁1次。在此基础上,实现闪烁3次后转换成南北路口的黄灯每隔1s闪烁1次,闪烁3次再转换。 (3)将上述两个实例整合实现本案例。 实例1: (1)每隔5秒钟,各路口的绿灯、红灯自动转换; 分析: 用定时器0控制路口绿灯亮的时间,但是定时器的定时都不可达到5s,可以让定时器都工作于方式1,定时时间为50ms,引进两个变量time(初值为5*20),当定时器发出中断时,这个变量减1,直到为0则达到定时时间。 根据以上分析,TMOD应赋值为0x01,定时器计数次数为50000。 #includereg51.h unsigned char time=5*20; unsigned char allr=0x36; //所有路口的灯全红 unsigned char ewg_snr=0x1e; //东西绿灯亮,南北红灯亮 unsigned char ewy=0x2e; //东西黄灯亮, 南北红灯亮 unsigned char sng_ewr=0x33; //南北绿灯亮,东西红灯亮 unsigned char sny=0x35; //南北黄灯亮,东西红灯亮 void main() {unsigned int i; P0=P2=allr; for(i=50000;i0;i--); P0=P2=ewg_snr; TMOD=1; //定时器0工作于方式1 TL0=-50000;TH0=-500008;//定时器定时50ms EA=1;ET0=1;TR0=1; while(1); } 实例1: 存在的问题是:南北绿灯亮以后不转换了。 为什么? 要控制南北绿灯亮5秒后再转换为东西绿灯亮5秒又转换,周而复始。 怎么办? 定义一个位变量ewg,东西绿灯亮时该变量置1,转换成南北绿灯亮时该变量清0。 实例2: 东西路口的黄灯每隔1秒钟闪烁1次。 分析: 黄灯闪烁时间间隔0.5s,用定时器1控制黄灯闪烁的时间间隔,但是定时器的定时不可达到0.5s,所以可以让定时器1都工作于方式1,定时时间为50ms,引进变量timey(初值为20),当定时器发出中断时,该变量减1,直到为0则达到定时时间。 根据以上分析,TMOD应赋值为0x10,定时器计数次数为50000。 #includereg51.h unsigned char timey=10; unsigned char allr=0x36; //所有路口的灯全红 unsigned char ewg_snr=0x1e; //东西绿灯亮,南北红灯亮 unsigned char ewy=0x2e; //东西黄灯亮, 南北红灯亮 unsigned char sng_ewr=0x33; //南北绿灯亮,东西红灯亮 unsigned char

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档