《《计算机原理实验》 交通灯自动控制系统设计.docx》由会员分享,可在线阅读,更多相关《《计算机原理实验》 交通灯自动控制系统设计.docx(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、计算机原理实验 交通灯自动控制系 统设计交通灯自动控制系统设计1设计要求利用实验台上的彩色LED模拟两组“红一黄一绿”交通信 号指示灯,将其分别作为主干道和支线道路的信号灯。具体要 求如下:顺序(状态)34(空)D7D6主干路(南北)信号灯支线路(东西)信号灯mov alj 0010000bout dx,al;8253mov dx,io_address+3 ;8253 初始化mov al,00110111b ;计数器方式 3out dx,al ;BCD 码计数mov dx,io_addressmov al,0out dx,alout dx,al;写初值 10000mov dxjo_addres
2、s+3mov al,01110100b ;计数器 1 方式 3out dx,al;二进制计数先低后高mov dx,io_address+lmov al,l 1110100b ;写初值 500out dx,almov al Jout dx,al ;OUT1 时钟 5smov dxjo_address+3mov alJOOlOHOb ;计数器 2 方式 3out dx,al ;二进制计数先低后高mov dx,io_address+2mov al, 100 ;写初值 100out dx,al ;OUT2 时钟 Is;8259知识改变命运,word精品文档! in al,21h ;8259初 始化an
3、d al,11011011bout 21h,alin al,0alHand al/llllllOB;开放 IR0out Oalh,al设置中断向量表-push ds;设置中断向量表mov ax,0mov ds,ax设置MIR5对应的中断向量一lea ax,cs:int_proc 1 ;AX指向中断程序入口地址mov si,35hadd si,siadd si,simov ds:si,axpush cspop axmov ds:si+2,ax设置MIR5对应的中断向量-lea ax,cs:int_proc2 ;AX指向中断程序入口地址mov si,70hadd si,siadd si,simov
4、 ds:si,axpush cspop axmov ds:si+2,axpop dssti ;开中断;led显示si置0led_reon: mov si?0jmp go检测PAOddd:;开放主片IR5中断和一个从片输入IR2知识改变命运,word精品文档! mov dx,io8255in al,dxand al,01Hjz dddcmp count,0;count 置零,si 置零je led_reongo: inc countjmp changeon:mov dx,io8255_cmov al,portclbxout dx,al ;PCmov dx,io8255_bmov aljedsi-
5、lout dx,al ;PBdec si ;loop:mov dx,io8255 in al,dx and al,01H jnz loop jmp ddd change: cmp count,6 ja chackl mov bx,0 cmp si ; jbledl jmp on chackl:cmp count,9;ja chack2 mov bxj cmp si,l ;口输出交通灯显示指令 口输出数码管显示字符 每完成一次输出,si递减1-6 :bx=0,si=6检测si大小,进行赋值79 :bx=l,si=3检测si大小,进行赋值知识改变命运,word精品文档! jbled2jmp onc
6、hack2:cmp count J 4。14 :bx=2,si=5ja chack3mov bx,2cmp si, 1;检测si大小,进行赋值jb led3jmp onchack3:mov bx,3 ;1516 :bx=3,si=2cmp count, 16jae re_oncmp si, 1;检测si大小,进行赋值jb led4jmp on ledl:mov si,6 jmp on led2:mov si,3 jmp on led3:mov si,5 jmp on led4:mov si,2 jmp on re on: mov count,0jmp on;中断子程序1int_proc 1 p
7、roc farpush bx知识改变命运,word精品文档! push dxmov dxo8255_cmov al,OcHout dx,almov ex,2000del:mov di,2000deO:dec dijnz deOloop delmov al,20Hout 20h,alpop dxpop bxstiiretint_proc 1 endp;中断子程序2int_proc2 proc farpush bxpush dxmov dx,io8255_cmov al,21Hout dx,almov ex, 1500de2:mov di, 1500de3:dec dijnz de3loop de
8、2mov al,20Hout20H,al;发送中断结束命令(向386EX主8259的MIR5),主干路 行知识改变命运,word精品文档! mov al,20Hout 0a0h,alpop dxpop bx stiiret int_proc2 endpcode endsend start6系统调试运行结果说明、分析所出现得问题,设计体会 与建议系统使用汇编语言进行设计,在调试过程中,对于不同操 作的结合上出现了问题。初始选择使用8253分别产生Is,5s两 种周期脉冲函数,作为各操作的触发时间标准,使用查询法, 查询A0 口,控制交通灯以5s为间隔进行转换,对于数码管 的倒计时显示,使用查询法
9、,查询A1 口,控制数字的变化。 但在两种端口的查询上出现了问题,而且此时,交通灯的转换 时间只能固定设置为5的倍数,无法进一步具体设置。随后决 定整个系统使用1s的时间脉冲进行控制,在交通灯的转换上, 根据计数器的不同数值进行操作,控制时间分别为6s,3s,5s,2s, 并在每次查询端口时对数码管进行操作,根据计数器数值,设 定数码管显示的初始值,并进行每次减一的操作,达到倒计时 显示的目的。7结论及设计体会设计系统完成模拟两组“红一黄一绿”交通信号指示灯,主干线绿灯亮6秒,支线亮5秒。绿灯过渡到红灯时分别有3秒、D5 红1 1D4 黄 1D3 绿1D2 红1 1D1 黄1 DO 绿2秒的黄
10、灯显示。人行横道的“紧急通行”呼叫信号。当产生呼 叫信号后,该方向的信号灯变为绿色,维持一段时间后,信号 灯恢复正常运行。具有倒计时功能。OCH主干路行14H主干路转换21H支线路行22H支线路转换状态字(16进制)利用8253实现秒定时。主干线绿灯亮5秒,支线亮5秒。 绿灯过渡到红灯时有两秒的黄灯显示(可用闪烁效果)周期;表:信号灯状态字表1 .设定D8255A的PC 口作输出、显示信号灯的效果;2 .设定8253的CNTO做分频器,将1MHZ信号分频为 1OOHZ,再由CNT1将100Hz分频为周期为5秒的周期性方 波(模式2);3 .将D8255A的PA 口设定为输入,并使用PAO与82
11、53 的OUT1连接,CPU通过查询PAO的电平变化(秒信号), 控制信号灯运行(即每5秒钟改变一次信号灯的状态);4 .分别使用两个单脉冲的输出(正的脉冲输出)与386模 块的MIR5和SIRO连接,作为“南北”和“东西”人行横道的“紧 急通行呼叫信号。当产生呼叫信号后,该方向的信号灯变为 绿色,维持一段时间后,信号灯恢复正常运行。2设计分析及系统方案设计对8255进行初始化配置,设定PA为输入,PB、PC为输 出功能,分别控制数码管及交通灯组。使用8253对外部输入 的1MHz时钟进行分频,得到1Hz时钟脉冲。将此时钟信号 输入PAO 口,并使用查询法,对PAO 状态进行判断,检测 PAO
12、=O则进行计数器的累加操作,并根据计数器的数值进行 交通灯的转换及数码管的倒计时显示操作。使用8259对过马 路信号进行相应,在中断中进行灯的强制变换。3硬件电路图知识改变命运,word精品文档!MIR5SIR0总线开放区单脉冲S9中断响应人行横道呼叫信号单脉冲S108255D7PCL5LO交通灯连接系统总线200HDO/RD/WRAlAOPB/CSPAOg数码管显示部分连接 查询 秒周期 系统总线 210HD7OUT2 .CLK2 D0GATE2 0UT2 /RDCLK2 /WRGATE2 A10UTO AOCLKO GATEO /CS 逻辑笔 监测秒信号 +5V 1MHH时钟源8253分频
13、产生 周期为Is脉冲信号4程序流程图 知识改变命运,word精品文档! 主程序8255初始化PA为输入,PB、PC为输出8253初始化CNT0为模式3,赋初值CNT2为模式3,赋初值8259初始化(一)MIR5 屏蔽字 11011011SIR0 屏蔽字 111111108259初始化(二)MIR5的35H类型向量表SIR0的70H类型向量表开中断STI8255 PC为输出第一个信号状态字1-67-91 count10141516 bx=0si=6bx=lsi=3bx=2si=5bx=3si=2count=0,bx=0,si=0输出指示灯状态输出数码管状态 8255PA输入状态字N8255PA输
14、入PA0=0?YYPA0=0?Ncount=couint+15程序清单data segmentio_address equ 210hio8255_k equ 203hio8255_c equ 202hio8255_b equ 20 Ihio8255 equ 200hcount db 0000bportc 1 db Och, 14h,21 h,22h,0ffhled db 06h,5bh,4fh,66h,6dh,7dh; 1,2,3,4,5,6 数码管data ends知识改变命运,word精品文档! code segmentassume cs:code,ds:datastart:cli ;关中断;8255mov ax,datamov ds,axmov dx,io8255_k ;8255 初始化-PA 输入,PB、PC 输出