毕业设计--8031单片机的交通灯控制器的设计与实现内容摘要:

出现这样行人和车辆就能安全畅通的通行。 ( 5)此表可根据车流量动态设定 系统硬件设计 选用设备 8031 单片机一片选用设备: 8031 弹片机一片, 8255 并行通用接口芯片一片, 74LS07 两片, MAX692‘看门狗’一片,共阴极的七段数码管两个双向晶闸管若干, 7805 三端稳压电源一个,红、黄、绿交通灯各两个,开关键盘、连线若干。 4. 2. 1 系统总框图如下: 3 60 3 80 3 60 „„ A 道 黄灯亮 红灯亮 黄灯亮 绿灯亮 黄灯亮 红灯亮 „„ B 道 黄灯亮 绿灯亮 黄灯亮 红灯亮 黄灯亮 绿灯亮 „„ 无锡职业技术学院毕业设计(论文) 7 图 6 4. 2. 2 交通灯控制线路图 无锡职业技术学院毕业设计(论文) 8 无锡职业技术学院毕业设计(论文) 9 4. 2. 3 系统工作原理 ( 1)开关键盘输入交通灯初始时间,通过 8031 单片机 P1 输入到系统 (2) 由 8031 单片机的定时器每秒钟通过 P0 口向 8255 的数据口送信息,由 8255 的 PC 口显示红、绿、黄灯的燃亮情况;由 8255 的 PA、 PB口显示每个灯的燃亮时间。 (3)8031 通过 设置 各个信号等的燃亮时间、通过 8031 设置,黄、绿、红时间依次为 3 秒、 60 秒、 3秒、 80秒、 3秒循环由 8031 的 P0 口向 8255 的数据口输出。 ( 4) 通过 8031 单片机的 位来控制系统是工作或设置初值,当 .牌位 0 就对系统进行初始化,为 1 系统就开始工作。 ( 5) 8255PA口用于输出时间的个位,PB口用于输出时间的十位,由 747S07驱动芯片驱动;.而PC口用于输出各个灯的情况,它的末段连接双向晶闸管采用 220V 交流电压驱动。 ( 6)在交通控制程序中加入看门狗指令,当系统出现异常看门狗将发出溢出中断。 通过专用端口输入到 MAX692 看门狗芯片的 WDI 引角引起 RESET 复位信号复位系统 5.控制器的软件设计 每秒钟的设定 延时方法可以有两种一中是利用 MCS51 内部定时器才生溢出中断来确定 1 秒的时间,另一种是采用软延时的方法。 计数器硬件延时 计数器初值计算 定时器工作时必须给计数器送计数器初值,这个值是送到 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计数是单片机时钟周期TCLK的12倍;TC为定时初值 如单片机的主脉冲频率为TCLK12MHZ ,经过12分频 方式0 TMAX= 213 *1微秒=8.192毫秒 方式1 TMAX= 216 *1微秒=65.536毫秒 显然1秒钟已经超过了计数器的最大定时间,所以我们只有采用定时器和软件相结合的办法才能解决这个问题. 无锡职业技术学院毕业设计(论文) 10 1秒的方法 我们采用在主程序中设定一个初值为20的软件计数器和使T0定时50毫秒.这样每当T0 到50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。 在中断服务子程序中,CPU先使软件计数器减1,然后判断它是否为零。 为零表示1秒已到可以返回到输出时间显示程序。 相应程序代码 (1)主程序 定时器需定时50毫秒,故T0工作于方式1。 初值: TC=M-T/ T计数 =216 -50 ms/1us=15536=3CBOH 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 无锡职业技术学院毕业设计(论文) 11 RET DELAY1:MOV R6,0 延时 125ms 子程序 MOV R5,0 DE1: DJNZ R5,$ DJNZ R6,DE1 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 接地 显示数值 dop g f e d c b a 驱动代码( 16 进制) 0 0 0 1 1 1 1 1 1 3FH 1 0 0 0 0 0 1 1 0 06H 2 0 1 0 1 1 0 1 1 5BH 3 0 1 0 0 1 1 1 1 4FH 4 0 1 1 0 0 1 1 0 66H 5 0 1 1 0 1 1 0 0 6DH 6 0 1 1 1 1 1 0 0 7DH 7 0 0 0 0 0 1 1 1 07H 8 0 1 1 1 1 1 1 1 7FH 表 3 驱动代码表 8255 与 8031 的连接: 用 8031 的 P0 口的 连接 8255 的片选信号 cs 我们用 8031 的地址采用全译码方式,当 =0 时片选有效, 其他无效, 用于选择 8255 端口 A7 A6 A5 A4 A3 A2 A1 A0 1 X X X X X 0 0 00H 为 8255 的 PA 口 1 X X X X X 0 1 01H 为 8255 的 PB 口 1 X X X X X 1 0 02H 为 8255 的 PC 口 1 X X X X X 1 1 03H 为 8255 的控制口 由于 8031 是分时对 8255 和储存器进行访问所以 8031 的 P0口不会发生冲突 程序设计 流程图如图所示 开始 初始化 无锡职业技术学院毕业设计(论文) 13 图 8 图 9 程序流程图 程序源代码 R4 存放黄灯时间 3 03H (此时间可以动态设定) 等待键盘事件 键盘事件处理 显示程序处理 无锡职业技术学院毕业设计(论文) 14 R5 存放红灯时间 60 3CH R6 存放绿灯时间 80 50H PC0 显示黄灯信号 PC1 显示红灯信号 PC2 显示黄灯信号 8255 工作于方式 0 8255 PA、 PB、 PC 口输出 PC 控制字为 10000000B ( 80H) 程序源代码: ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV R1,03H 初始化 8255 MOV A,80H MOVX @R1,A AGAIN: MOV P3,80H 设置初值 MOV A,P3 JB , NEXT0 AGAIN1: MOV P3,40H MOV A,P3 JB , RED MOV P3,0FH。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。