资源描述:
《卢伟《计算机原理》设计报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、题目:交通灯自动控制系统设计一、设计要求:利用实验台上的彩色LED模拟两组“红—黄—绿”交通信号指示灯,将其分别作为主干道和支线道路的信号灯。具体要求如下:利用82543实现秒定时。主干线绿灯亮6秒,支线亮5秒。绿灯过渡到红灯时有两秒的黄灯显示(可用闪烁效果)周期;顺序(状态)(空)主干路(南北)信号灯支线路(东西)信号灯状态字(16进制)D7D6D5D4D3D2D1DO■■红黄绿红黄绿100001100OCH---主干路行20001010014H……主干路转换30010000121H—-支线路行40010
2、001022H—--支线路转换表3.1.3:信号灯状态字表1.设定D8255A的PC口作输出、显示信号灯的效果;2.设定8253的CNTO做分频器,将1MHZ信号分频为100H乙再由CNT1将100HZ分频为周期为5秒的周期性方波(模式2);3.将D8255A的PA口设定为输入,并使用PAO与8253的0UT1连接,CPU通过查询PAO的电平变化(秒信号),控制信号灯运行(即每5秒钟改变一次信号灯的状态);4.分别使用两个单脉冲的输出(正的脉冲数出)与386模块的MIR5和SIRO连接,作为“南北”和“东西
3、”人行横道的“紧急通行”呼叫信号。当产生呼叫信号后,该方向的信号灯变为绿色,维持一段时间后,信号灯恢复正常运行。二、设计分析及系统方案对8255进行初始化配置,设定PA为输入,PB.PC为输出功能,分别控制数码管及交通灯组•使用8253对外部输入的1MHz时钟进行分频,得到1Hz时钟脉冲.将此时钟信号输入PAon,并使用査询法,对PAon状态进行刿断,检测pao=o则进行计•数器的累加操作,并根据计数器的数值进行交通灯的转换及数码管的倒计时显示操作.使用8259对过®路信号进行相应,在中断中进行灯的强制变换
4、。三、硬件电路MIR5!SIRO;I;!总线:i开放区:
5、I单脉冲S9
6、单脉冲S108255L7系统总线►A0210HO►心PAO系统总线►/RD►/WR►A18254/8253D70UT2...CLK2DOGATE2OUT2>/RDCLK2A/WRGATE2>A1OUTOAAOCLKOGATEO200HO►/cs图1破件电路图四、流程图五、程序清单datasegmentio8255equ200hio8255_bequ201hio8255_cequ202hio8255_kequ203hio_address
7、equ210hshumaguanequ220hcountdb0000bportcldb0ch,14h,21h,22h/0ffh;Offh为结束标志leddb06h,5bh,4fh,66h,6dh,7dh;1,2,3,4数码管显示dataendscodesegmentassumecs:code,ds:datastart:cli;关屮断;8255movax,datamovds,ax;设定数据段寄存器movdx,io8255_k;指向8255A的控制口moval,90houtdx,al;设置8255A的C口:82
8、54movdx,io_address+3;8253初始化movalz00110111b;计数器0方式3outdx,al;二进制计数先低后高movdx,io_addressmoval,0outdx,aloutdx,al;8253初始化;计数器1方式3;二进制计数先低后高;写初值500movdx,io_address+3moval,01110100boutdx,almovdx,io_address+1movalzlH10100boutdx,almoval,loutdx,al;OUT1时钟5smovdx,io_a
9、ddress+3moval,10010110b;计数器2方式3outdx,al;二进制计数先低后高movdx,io_address+2moval,100;写初值100outdx,al;OUT1时钟Is■8259inal,21h;8259初始化andalz11011011b;开放主片IR5中断和一个从片输入out21h,alinal,Oalhandal,11111110b;开放从片IR0中断outOalh,al设置中断向量表pushds;设置中断向量表movax,0movds,ax设置MIRS对应的中断向量…
10、leaax,cs:int_procl;ax指向屮断程序入口movsi,35haddsi,siaddsi,simovds:[si],axpushcspopaxmovds:[si+2],ax■»•设置MIR5对应的中断向量・■■leaax,cs:int_proc2;ax指向中断程序入口movsi,70haddsi,siaddsi,simovds:[si],axpushcspopaxmovds:[si+2],axpop