基于单片机的交通灯拓展设计与制作.doc

基于单片机的交通灯拓展设计与制作.doc

基于单片机的交通灯拓展设计与制作 一、简介 拓展部分仍用到了AT89C51,与基础部分不同的是将其余的片子换成了7447,其主要作用是一块BCD码转换成7段LED数码管的译码驱动IC,7447的主要功能是输出低电平驱动的显示码,用以推动共阳极7段LED数码管显示相应的数字。 元件清单 表2.1 元件清单 序号 元件名称 规格 数量 用途 价格(单价) 1 51单片机 AT89S51 1个 控制核心 11元 2 晶振 1MHz立式 1个 晶振电路 2元 3 集成电路 7447 2个 转化数码管 75元 4 按键 2个 按键电路 0.5元 5 电解电容 1uF/10V 1个 复位电路 1元 6 瓷片电容 1nF瓷片电容 2个 晶振电路 0.02元 7 电阻 10kΩ 1个 复位电路 1元 电阻 100Ω 13个 LED限流 3元 8 LED 红、黄、绿各2个 6个 红、黄、绿灯 0.5元 9 电源 5V/0.5A 1个 提供+5V 8元 三、硬件及系统设计 (一)硬件设计 图1.1 电路原理图 (二)仿真效果图 在基础部分我们已经提到过仿真的过程和方法,在这我只将做后的效果图给出: 图1.2 紧急状态 图1.3 东西方向红灯,南北方向绿灯 图1.4 东西方向 (三)软件程序 ************************************************************************************ ORG 0000H LJMP MAIN ORG 0003H LJMP EXT0 ORG 0030H MAIN: MOV SP,#60H ;設堆棧 MOV IE, ;INT0外部中斷 MOV IP, MOV P2,#00H ;設置初始化 MOV P1,#00H LCALL DELAY MOV P2,#0FFH MOV P1,#0FFH LCALL DELAY JB P3.5,MAIN START: LCALL ZHT0 LCALL ZHT1 LCALL ZHT2 LCALL ZHT3 AJMP START ;重復循環狀態 ZHT0: ;狀態0,東西綠、南北紅燈亮 MOV P1,#0F3H MOV R4,#50 MOV R3,#00 LCALL DIR FT0: MOV R3,#50 ;設置閃亮時,數碼管顯示5s MOV R4,#05 FLASH1: MOV P1,#0F7H ;閃亮狀態設置 LCALL DELAY1 MOV P1,#0F3H MOV A,R3 MOV DPTR,#TABLE MOVC A,@A+DPTR MOV P2,A LCALL DELAY INC R3 DJNZ R4,FLASH1 RET ZHT1: ;狀態1,東西黃燈、南北紅燈亮 MOV P1,#0F5H MOV R4,#5 MOV R3,#55 LCALL DIR RET ZHT2: ;狀態2,東西紅燈、南北綠燈亮 MOV P1,#0DEH MOV R4,#50 MOV R3,#00H LCALL DIR FT1: MOV R3,#50 ;設置閃亮時,數碼管顯示5s MOV R4,#05 FLASH2: MOV P1,#0FEH ;閃亮狀態設置 LCALL DELAY1 MOV P1,#0DEH MOV A,R3 MOV DPTR,#TABLE MOVC A,@A+DPTR MOV P2,A LCALL DELAY INC R3 DJNZ R4,FLASH2 RET ZHT3: ;狀態3,東西紅燈、南北黃燈亮 MOV P1,#0EEH MOV R4,#5 MOV R3,#55 LCALL DIR RET EXT0: PUSH ACC ;將ACC的值存入堆棧保存 PUSH PSW ;將PSW的值存入堆棧保存 MOV A,#0F6H MOV P1,A ;使東西、南北的紅燈都亮 LCALL DELAY JB P3.2,LOOP ;P3.2按鍵放開時返回主程序 POP PSW LOOP: POP ACC RETI DIR: ;查表顯示子程序 MOV A,R3 MOV DPTR,#TABLE MOVC A,@A+DPTR MOV P2

文档评论(0)

1亿VIP精品文档

相关文档