陕西国防工业职业技术学院应用电子技术毕业设计(论文)
下图是MCS-51系列单片机的内部结构示意图2。
单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。INTEL的MCS-51系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则采用普林斯顿结构。 (4)电路原理图
第 11 页 共 23 页
陕西国防工业职业技术学院应用电子技术毕业设计(论文)
2、软件部分
(1)原理简介
主程序采用查询方式定时,由R2寄存器调用0.5S延时子程序的次数,从而获取交通灯的各种时间。子程序采用定时器1方式1查询定时,定时器定时50ms,R3寄存器确定50ms循环10次,从而获得0.5S的延时时间。
有车车道放行的中断服务程序首先要保护现场,因需要用到延时子程序和P0口,故需保护的寄存器有R3、P0、TH1和TL1,保护现场时还需关中断,以防止高优先级中断(紧急车辆通过产生的中断)出现导致程序混乱。
开中断,由软件查询P3.0和P3.1口,判别那一车道,再根据查询情况执行相应的服务。待交通灯信号出现后,保持15S的延时,然后,关中断,恢复现场,再开中断,返回主程序。
紧急车辆出现时的中断服务程序也需要保护现场,但无须关中断(因其为高优先级中断),然后执行相应的服务,待交通灯信号出现后延时20S,确保紧急车辆通过交叉路口,然后,恢复现场,返回程序。 (2)交通灯模拟控制系统流程图
第 12 页 共 23 页
陕西国防工业职业技术学院应用电子技术毕业设计(论文)
(3)软件编程
此次用到的软件编程软件是伟福仿真器,伟福软件包是南京伟福公司开发的仿真调试集成软件包,它可以实现编辑、编译、连接、跟踪调试、下载等多项功能,是开发单片机软硬件按的理想工具。
伟福软件包可以工作在两种模式下:软件模拟仿真和硬件仿真。其中,硬件仿真必须在伟福仿真器及仿真头等硬件支持下才能实现。
软件模拟仿真主要包括一下几个基本步骤:软件的安装和设置、新建程序文件、编译程序、仿真调试程序。
(4)定时中断交通灯的程序
ORG 0000H
LJMP MAIN ORG 0003H
LJMP INTT0 ;转向紧急车辆中断服务程序 ORG 0013H
LJMP INTT1 ;转向有车车道中断服务程序 ORG 0200H
MAIN: MOV SP,#30H
SETB PX0 ;置外部中断0为高优先级中断 MOV TCON,#00H ;置外部中断0、1为电平触发 MOV TMOD,#10H ;置定时器1为方式1
MOV IE,#85H ;开CPU中断,开外部中断0、1中断 LOOP: MOV P0,#0F3H ;A道绿灯放行,B道红灯禁止 MOV R1,#90 ;置0.5S循环次数(0.5X90=45S) DIP1: ACALL DELAY ;调用0.5S延时子程序 DJNZ R1,DIP1 ;45S不到继续循环 MOV R1,#06 ;置A道绿灯循环次数 WAN1: CPL P0.2 ;A绿灯闪烁 ACALL DELAY
DJNZ R1,WAN1 ;闪烁次数未到继续循环 MOV P0,#0F5H ;A黄灯警告,B红灯禁行
MOV R1,#04H ;置0.5S循环次数(0.5X4=2S) YL1: ACALL DELAY
DJNZ R1,YL1 ;2S未到继续循环 MOV P0,#0DEH MOV R1,#32H DIP2: ACALL DELAY DJNZ R1,DIP2 MOV R1,#06H
WAN2: CPL P0.5 ;B绿灯闪烁
第 13 页 共 23 页
陕西国防工业职业技术学院应用电子技术毕业设计(论文)
ACALL DELAY DJNZ R1,WAN2
MOV P0,#0EEH ;A红灯,B黄灯 MOV R1,#04H YL2: ACALL DELAY DJNZ R1,YL2
AJMP LOOP ;循环执行主程序 INTT0: PUSH P0 ;p0口数据压栈保护 PUSH TH1 ;TH1压栈保护 PUSH TL1 MOV P0,#0F6H MOV R2,#40H DEY0: ACALL DELAY
DJNZ R2,DEY0 POP TL1 POP TH1 POP P0
RETI INTT1: CLR EA PUSH P0 PUSH TH1 PUSH TL1
SETB EA JB P3.0,BOP MOV P0,#0F3H SJMP DEL1 BOP: JB P3.1,EXIT MOV P0,#0DEH DEL1: MOV R5,#30 NEXT: ACALL DELAY
DJNZ R5,NEXT EXIT: CLR EA
POP TH1 POP TL1 POP P0 SETB EA RETI
DELAY: MOV R3,#0AH MOV TH1,#3CH MOV TL1,#0B0H
SETB TR1 LP1: JBC TF1,LP2 SJMP LP1
LP2: MOV TH1,#3CH ;TL1压栈保护 ;A、B道均为红灯
;置0.5S循环初值(20S) ;20S未到继续循环 ;退栈恢复现场 ;返回主程序 关中断 ;压栈保护 ;开中断
;A道无车转向B道 ;A道绿灯,B道红灯 ;转向15S延时 ;B道无车退出中断 ;A红灯,B绿灯
;置0.5S循环初值(15s) ;15S未到继续循环 ;退栈恢复现场 ;0.5S延时子程序(50msX10=0.5S) ;置50ms初值X=3CB0H ;启动T1
;查询计数溢出 ;置50ms初值X=3CB0H
第 14 页 共 23 页 ;
陕西国防工业职业技术学院应用电子技术毕业设计(论文)
MOV TL1,#0B0H DJNZ R3,LP1 RET END 3、调试部分 (1)仿真软件
我此次设计应用到的仿真软件是有美国Labcenter公司开发的电路分析与实物仿真软件Proteus,它是一种电子设计自动化软件,运行于Windows操作系统上,提供了一仿真数字、交流、直流等千种元器件及多种实现功能存在的虚拟仪器仪表,还提供图形显示功能,可以将线路上变化的信号,以图形的方式实时的显示出来。 (2)仿真步骤
(一) Proteus仿真软件主界面
(二) 元件查找
第 15 页 共 23 页