还剩17页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《计算机原理实验》交通灯自动控制系统设计交通灯自动控制系统设计1设计要求利用实验台上的彩色LED模拟两组“红一黄一绿”交通信号指示灯,将其分别作为主干道和支线道路的信号灯具体要求如下顺序(状态)34(空)D7D6主干路(南北)信号灯支线路(东西)信号灯movalj0010000boutdxal;8253movdxio_address+3;8253初始化moval00110111b;计数器方式3outdxal;BCD码计数movdxio_addressmoval0outdxaloutdxal;写初值10000movdxjo_address+3moval01110100b;计数器1方式3outdxal;二进制计数先低后高movdxio_address+lmovall1110100b;写初值500outdxalmovalJoutdxal;OUT1时钟5smovdxjo_address+3movalJOOlOHOb;计数器2方式3outdxal;二进制计数先低后高movdxio_address+2moval100;写初值100outdxal;OUT2时钟Is;8259知识改变命运,word精品文档!inal21h;8259初始化andal11011011bout21halinal0alHandal/llllllOB;开放IR0outOalhal设置中断向量表—-pushds;设置中断向量表movax0movdsax设置MIR5对应的中断向量一leaaxcs:int_proc1;AX指向中断程序入口地址movsi35haddsisiaddsisimovds:[si]axpushcspopaxmovds:[si+2]ax设置MIR5对应的中断向量---leaaxcs:int_proc2;AX指向中断程序入口地址movsi70haddsisiaddsisimovds:[si]axpushcspopaxmovds:[si+2]axpopdssti;开中断;led显示si置0led_reon:movsi0jmpgo检测PAOddd:;开放主片IR5中断和一个从片输入IR2知识改变命运,word精品文档!movdxio8255inaldxandal01Hjzdddcmpcount0;count置零,si置零jeled_reongo:inccountjmpchangeon:movdxio8255_cmovalportcl[bx]outdxal;PCmovdxio8255_bmovaljed[si-l]outdxal;PBdecsi;loop:movdxio8255inaldxandal01Hjnzloopjmpdddchange:cmpcount6jachacklmovbx0cmpsi』;jbledljmponchackl:cmpcount9;jachack2movbxjcmpsil;口输出交通灯显示指令口输出数码管显示字符每完成一次输出,si递减1-6:bx=0si=6检测si大小,进行赋值7~9:bx=lsi=3检测si大小,进行赋值知识改变命运,word精品文档!jbled2jmponchack2:cmpcountJ4〃〜14:bx=2si=5jachack3movbx2cmpsi1;检测si大小,进行赋值jbled3jmponchack3:movbx3;15~16:bx=3si=2cmpcount16jaere_oncmpsi1;检测si大小,进行赋值jbled4jmponledl:movsi6jmponled2:movsi3jmponled3:movsi5jmponled4:movsi2jmponreon:movcount0jmpon;中断子程序1int_proc1procfarpushbx知识改变命运,word精品文档!pushdxmovdx』o8255_cmovalOcHoutdxalmovex2000del:movdi2000deO:decdijnzdeOloopdelmoval20Hout20halpopdxpopbxstiiretint_proc1endp;中断子程序2int_proc2procfarpushbxpushdxmovdxio8255_cmoval21Houtdxalmovex1500de2:movdi1500de3:decdijnzde3loopde2moval20Hout20Hal;发送中断结束命令(向386EX主8259的MIR5),主干路行知识改变命运,word精品文档!moval20Hout0a0halpopdxpopbxstiiretint_proc2endpcodeendsendstart6系统调试运行结果说明、分析所出现得问题,设计体会与建议系统使用汇编语言进行设计,在调试过程中,对于不同操作的结合上出现了问题初始选择使用8253分别产生Is5s两种周期脉冲函数,作为各操作的触发时间标准,使用查询法,查询A0口,控制交通灯以5s为间隔进行转换,对于数码管的倒计时显示,使用查询法,查询A1口,控制数字的变化但在两种端口的查询上出现了问题,而且此时,交通灯的转换时间只能固定设置为5的倍数,无法进一步具体设置随后决定整个系统使用1s的时间脉冲进行控制,在交通灯的转换上根据计数器的不同数值进行操作,控制时间分别为6s3s5s2s并在每次查询端口时对数码管进行操作,根据计数器数值,设定数码管显示的初始值,并进行每次减一的操作,达到倒计时显示的目的7结论及设计体会设计系统完成模拟两组“红一黄一绿”交通信号指示灯,主干线绿灯亮6秒,支线亮5秒绿灯过渡到红灯时分别有3秒、D5红11D4黄1D3绿1D2红11D1黄1DO绿2秒的黄灯显示人行横道的“紧急通行”呼叫信号当产生呼叫信号后,该方向的信号灯变为绿色,维持一段时间后,信号灯恢复正常运行具有倒计时功能OCH——主干路行14H——主干路转换21H——支线路行22H——支线路转换状态字(16进制)利用8253实现秒定时主干线绿灯亮5秒,支线亮5秒绿灯过渡到红灯时有两秒的黄灯显示(可用闪烁效果)周期;表
3.
1.3信号灯状态字表.设定D8255A的PC口作输出、显示信号灯的效果;.设定8253的CNTO做分频器,将1MHZ信号分频为1OOHZ再由CNT1将100Hz分频为周期为5秒的周期性方波(模式2);.将D8255A的PA口设定为输入,并使用PAO与8253的OUT1连接,CPU通过查询PAO的电平变化(秒信号),控制信号灯运行(即每5秒钟改变一次信号灯的状态);.分别使用两个单脉冲的输出(正的脉冲输出)与386模块的MIR5和SIRO连接,作为“南北”和“东西”人行横道的“紧急通行呼叫信号当产生呼叫信号后,该方向的信号灯变为绿色,维持一段时间后,信号灯恢复正常运行2设计分析及系统方案设计对8255进行初始化配置,设定PA为输入,PB、PC为输出功能,分别控制数码管及交通灯组使用8253对外部输入的1MHz时钟进行分频,得到1Hz时钟脉冲将此时钟信号输入PAO口,并使用查询法,对PAO□状态进行判断,检测PAO=O则进行计数器的累加操作,并根据计数器的数值进行交通灯的转换及数码管的倒计时显示操作使用8259对过马路信号进行相应,在中断中进行灯的强制变换3硬件电路图知识改变命运,word精品文档!MIR5SIR0总线开放区单脉冲S9中断响应人行横道呼叫信号单脉冲S108255D7•PCL5LO交通灯连接系统总线200HDO/RD/WRAlAOPB/CSPAOg数码管显示部分连接查询秒周期系统总线210HD7OUT
2...CLK2D0GATE20UT2/RDCLK2/WRGATE2A10UTOAOCLKOGATEO/CS逻辑笔监测秒信号+5V1MHH时钟源8253分频产生周期为Is脉冲信号4程序流程图知识改变命运,word精品文档!主程序8255初始化PA为输入,PB、PC为输出8253初始化CNT0为模式3赋初值CNT2为模式3赋初值8259初始化
(一)MIR5屏蔽字11011011SIR0屏蔽字111111108259初始化
(二)MIR5的35H类型向量表SIR0的70H类型向量表开中断STI8255PC为输出第一个信号状态字1-67-91count10〜1415〜16bx=0si=6bx=lsi=3bx=2si=5bx=3si=2count=0bx=0si=0输出指示灯状态输出数码管状态8255PA输入状态字N8255PA输入PA0=0YYPA0=0Ncount=couint+15程序清单datasegmentio_addressequ210hio8255_kequ203hio8255_cequ202hio8255_bequ20Ihio8255equ200hcountdb0000bportc1dbOch14h21h22h0ffhleddb06h5bh4fh66h6dh7dh;123456数码管dataends知识改变命运,word精品文档!codesegmentassumecs:codeds datastart:cli;关中断;8255movaxdatamovdsaxmovdxio8255_k;8255初始化-PA输入PB、PC输出。