单片机课程设计-交通灯设计(编辑修改稿)内容摘要:

计数器硬件延时 计数器初值计算 定时器工作时必须给计数器送计数器初值,这个值是送到 TH和 TL中的。 他是以加法记数的,并能从全 1 到全 0 时自动产生溢 出 中断请求。 因此,我们可以把计数器记满为零所需的计数值设定为 C和计数初值设定为 TC 可得到如下计算通式 : TC=MC 式中, M 为计数器摸值,该值和计数器工作方式有关。 在方式 0时 M为 213 ;在方式 1时 M的值为 216;在方式 2和 3为 28 计算公式 T=( M- TC) T 计数 或TC=M-T/ T 计 数 T 计数 是单片机时钟周期T CLK 的12倍;TC为定时初值 如单片机的主脉冲频率为T CLK 12MHZ ,经过12分频 方式0 TMAX= 213 *1微秒=8.192毫秒 方式1 TMAX= 216 *1微秒=65.536毫秒 显然1秒钟已经超过了计数器的最大定时间,所以我们只有采用定时器和软件相结合的办法才能解决这个问题. 1秒的方法 我们采用在主程序中设定一个初值为20的软件计数器和使T0定时50毫秒.这样每当T0到50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。 在中断服务子程序中,CPU先使软件计数器减1,然后判断它是否为零。 为零表示1秒已到可以返回到输出时间显示程序。 相应程序代码 (1)主程序 定时器需定时50毫秒,故T0工作于方式1。 初值: TC=M-T/ T 计数 =2 16 -50 ms/1us=15536=3CBOH 湖南工程学院课程设计 —— 交通灯设计 10 ORG 1000H START: MOV TMOD, 01H。 令TO为定时器方式1 MOV TH0, 3CH。 装入定时器初值 MOV TL0, BOH。 MOV IE, 82H。 开T0中断 SEBT TR O ;启动T0计数器 MOV RO, 14H。 软件计数器赋初值 LOOP: SJMP $ ;等待中断 (2)中断服务子程序 ORG 000BH AJMP BRT0 ORG 00BH BRTO: DJNZ R0,NEXT AJMP TIME。 跳转到时间及信号灯显示子程序 DJNZ:MOV RO,#14H ;恢复R0值 MOV TH0, 3CH。 重装入定时器初值 MOV TL0, BOH。 MOV IE, 82H RET1 END 软件延时 MCS51 的工作频率为 212MHZ,我们选用的 8031 单片机的工作频率为 6MHZ。 机器周期与主频有关,机器周期是主频的 12 倍,所以一个机器周期的时间为 12*( 1/6M) =2us。 我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定 1秒的时间。 具体的延时程序分析: DELAY:MOV R4,08H 延时 1 秒子程序 DE2:LCALL DELAY1 DJNZ R4,DE2 RET DELAY1:MOV R6,0 延时 125ms 子程序 MOV R5,0 DE1: DJNZ R5,$ DJNZ R6,DE1 湖南工程学院课程设计 —— 交通灯设计 11 RET MOV RN, DATA 字节数数为 2 机器周期数为 1 所以此指令的执行时间为 2ms DELAY1 为 一 个 双 重 循 坏 循 环 次 数 为 256*256=65536 所 以 延 时 时 间=65536*2=131072us 约为 125us DELAY R4 设置的初值为 8 主延时程序循环 8次,所以 125us*8= 1 秒 由于单片机的运行速度很快其他的指令执行时间可以忽略不计。 时间及信号灯的显示 8031并行口的扩展 8031 虽然有 4 个 8 位 I/O端口 ,但真正能提供借用的只有 P1口 ,因为 P2 和 P0 口通常用于传送外部传送地址和数据 ,P3 口也有它的第二功能。 因此, 8031 通常需要扩展。 由于我们用外输出时间时,时间的个位、十位、信号灯的显示都要用到一个 I/O 端口,显然 8031 的端口是不够,需要扩展。 扩展的方法有两种:( 1)借用外部 RAM 地址来扩展 I/O 端口;( 2)采用 I/O 接口新 片来扩充, 我们用 8255 并行接口信片来扩展 I/O 端口。 显示原理: 当定时器定时为 1 秒,时程序跳转到时间显示及信号灯显示子程序,它将依次显示信号灯时间 ,同时一直显示信号灯的颜色,这时在返回定时子程序定时一秒,在显示黄灯的下一个时间,这样依次把所有的灯色的时间显示完后在重新给时间计数器赋初值 ,重新进入循环。 8255输出信号的放大 要使行人能看见信号灯的情况,必须把 8255 输出的信号进行放大,这里我们用VT 为双向晶闸管,当门极为高电平时晶闸管导通,该支路指示灯亮;当门极为低电 平时关断,该支路指示灯灭。 如图 2 我们用连接 7段数码管的方法来连接晶闸管 8255输出信号与信号灯的连接 LED 灯的显示原理 :通过同名管脚上所加电平的高低来控制发光二极管是否点量而显示不同的字形如 SP, g,f,e,d,c,b,a 管角上加上7FH所以 SP上为0伏,不亮其余为TTL高电平,全亮则显示为8 湖南工程学院课程设计 —— 交通灯设计 12 采用共阴级连接 : 其中 PA0\PB0a, PA1\PB1b, PA2\PB2c, PA3\PB3d, PA4\PB4e, PA5\PB5f, PA6\PB6g PA7\PB7 SP 接地 表 驱动代码表 显示数值 dp g f e d c b a 驱动代码( 16进制) 0 0 0 1 1 1。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。