单片机设计交通灯.docx
《单片机设计交通灯.docx》由会员分享,可在线阅读,更多相关《单片机设计交通灯.docx(9页珍藏版)》请在冰豆网上搜索。
单片机设计交通灯
西安培华学院
实验报告
专业:
班级:
学生姓名:
2012-4-10
一、课程名称:
单片机原理及接口应用技术
二、实验名称:
交通灯管制系统设计与实现
三、实验目的:
学会运用所学软件PROTRL2004绘制原理图及PCB板设计;
学会用汇编语言编写交通灯程序
掌握软硬件的调试方法
四、实验时间及地点:
时间:
2012年4月10号
地点:
实验楼1511
五、实验设备:
万用表,电烙铁,导线LED灯,AT89S52,SN74LS07,SN74LS14,SN410362K,独石电容2个,电解电容2个,排阻10K一个,排阻150一个电阻若干,按键开关5个等。
六、实验步骤:
七、实验内容:
1.主控制系统模块
主控制器采用AT89S52,是ATMEL公司生产的一款性能稳定的8位单片机。
AT89S52具有1个8KB的FLASH程序存储器,1个512字节的RAM,4个8位的双向可位寻址I/O端口,3个16位定时/计数器及1个串行口和6个向量二级中断结构。
单片机的P0口分别用于控制南北及东西的通行灯,P2口和P3^4-P3^7口用于4组4位LED计时器的控制,紧急车辆通行时使用外中断0(P3^2)和外中断1(P3^3),进行手动按键,即可转换。
其主控电路如图5所示:
2.系统组成原理:
3.系统电路设计:
4.系统程序设计:
八、程序:
ORG0000H
LJMPSTART
ORG000BH
LJMPTIMER0
SHIWEIBITP1.1
GEWEIBITP1.0
KEYADDBITP3.2
KEYSUBBITP3.3
START:
MOVR0,#30;定义秒数
INIT:
MOVP1,#00H
MOVR4,#0
MOVDPTR,#LEDCODE
MOVTMOD,#01H
MOVTH0,#(65536-50000)/256
MOVTL0,#(65536-50000)MOD256
SETBEA
SETBET0
LOOP_1:
MOVP0,#21H
MOVA,R0
MOVR5,A
LCALLLED_DISPLAY
MOVP0,#11H
MOVR5,#3
LCALLLED_DISPLAY
MOVP0,#0CH
MOVA,R0
MOVR5,A
LCALLLED_DISPLAY
MOVP0,#0AH
MOVR5,#3
LCALLLED_DISPLAY
JMPLOOP_1
DELAY:
MOVR3,#1
D2:
MOVR2,#20
D1:
MOVR1,#248
DJNZR1,$
DJNZR2,D1
DJNZR3,D2
RET
TIMER0:
MOVTH0,#(65536-50000)/256
MOVTL0,#(65536-50000)MOD256
INCR4
MOVA,R4
CJNEA,#20,EXIT
MOVR4,#0
DECR5
EXIT:
RETI
LED_DISPLAY:
SETBTR0
LOOP_2:
MOVA,R5
MOVB,#10
DIVAB
MOVR6,A
MOVR7,B
MOVDPTR,#LEDCODE
MOVA,R6
MOVCA,@A+DPTR
CLRGEWEI
MOVP2,A
SETBSHIWEI
LCALLDELAY
MOVA,R7
MOVCA,@A+DPTR
CLRSHIWEI
MOVP2,A
SETBGEWEI
LCALLDELAY
LCALLKEYDOWN
CJNER5,#0,LOOP_2
CLRTR0
RET
KEYDOWN:
JNBKEYADD,KEYADD_HANDLE
JNBKEYSUB,KEYSUB_HANDLE
RET
KEYADD_HANDLE:
;加时间处理
JBKEYADD,LOOP_2
LCALLDELAY
JBKEYADD,LOOP_2;消抖
JNBKEYADD,$
INCR0
CLRTR0
JMPINIT
RET
KEYSUB_HANDLE:
;减时间处理
JBKEYSUB,LOOP_2
LCALLDELAY
JBKEYSUB,LOOP_2
JNBKEYSUB,$
DECR0
CLRTR0
JMPINIT
RET
LEDCODE:
DB0xc0,0xf9,0xa4,0xb0,0x99
DB0x92,0x82,0xf8,0x80,0x90
END
九、总结
通过在以往实践,我学到了很多以前没有接触到的知识及一些技巧,同时也知道了自己以前在学习中不足,我相信我以后会在实践中会学到更多。