您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 交通信号灯控制系统(汇编语言课程设计)
汇编语言课程设计交通信号灯控制系统初始界面:实现功能齐全。思路清晰~~~~~~~~~~~~一、设计要求利用PC机键盘和屏幕实现交通灯信号灯,控制系统。二、设计内容与要求基本要求:1、完成一个十字路口的红绿灯正常状态的控制:实现日常生活中正常的交通路口的控制功能,实现南北、东西方向的切换。2、显示时间,精确到秒;灯亮时间长短可变。3、具有自动和手动控制功能。提高要求:1、完成夜间状态的控制:由于夜间车辆和行人很少,实现南北、东西方向的黄灯闪烁,进入夜间控制状态。2、完成紧急状态的控制:南北双方向都设置为红灯,利于执行紧急公务。3、完成交通堵塞状态的控制:由于交通事故等原因出现南北或东西某一方向堵塞,可人为地调整每个方向的红灯时间,进入手动控制状态。附加要求:必要的辅助功能(设置、修改等)。三、编程提示要求用汇编语言进行编程,下面是编写过程中主要涉及的知识点(其中举例只是实现方法之一,同学可根据自己对知识的掌握情况进行设计并调试):1、视频显示程序设计:一般由DOS或BIOS调用来完成。有关显示输出的DOS功能调用不多,而BIOS调用的功能很强,主要包括设置显示方式、光标大小和位置、设置调色板号、显示字符、显示图形等。用INT10H即可建立某种显示方式。用DOS功能调用显示技术,把系统功能调用号送至AH,把程序段规定的入口参数,送至指定的寄存器,然后由中断指令INT21H来实现调用,例:要输出多于一个字符时,利用DOS功能调用9。2、键盘扫描程序设计:检测键盘状态,有无输入,并检测输入各值。例:利用DOS系统功能调用的01号功能,接受从键盘输入的字符到AL寄存器。3、定时器中断处理程序:在此中断处理程序中,计数器中断的次数记录在计数单元count中,由于定时中断的引发速率是每秒18.2次,即计数一次为55ms,当count计数值为18时,sec计数单元加一(为1秒)。例:在系统定时中断处理程序中,有一条中断指令INT1CH指令,在ROMBIOS中,1CH的处理仅一条IRET指令,实际上它并没有做任何工作而只是为用户提供了一个软中断类型号,所以INT1CH指令每秒也将执行18.2次,设计中可用这个定时周期性工作的处理程序来代替原有的1CH程序,实现定时。4、显示时间子程序:将计时单元的二进制转换为十进制数加以显示。参考资料:1.《微型计算机接口技术及应用》2.《汇编语言程序设计》3.《微型计算机汇编语言程序设计》一、教科书中关于IBM-PC/XT机系统硬件的内容,包括8250(串行口控制器),8253,8255,8259等。二、DOS系统功能调用。INT21H1、显示显示单个字符入参:AH=02HDL=字符ASCII值出参:无显示字符串入参:AH=09HDS:DX此寄存器对指向内存中字符串的首地址,字符串以$结束出参:无2、键盘检查键盘状态入参:AH=0BH出参:AL=00H无输入0FFH有一字符读键盘字符入参:AH=08H出参:AL=字符ASCII值3、其它退出程序,返回系统入参:AH=4CH出参:无取中断矢量入参:AH=35HAL=中断类型号出参:ES:BX中断矢量,ES为段地址,BX为偏移地址置中断矢量入参:AH=25HAL=中断类型号DS:DX中断矢量,DS为段地址,DX为偏移地址出参:AL=字符ASCII值三、BIOS屏幕功能调用。INT10H1、清屏操作MOVAX,0600HMOVCX,0000HMOVDX,184FHMOVBH,07HINT10H2、移动光标MOVAH,02HMOVDH,**;**为目的地行数(0-24)MOVDL,**;**为目的地列数(0-79)MOVBH,00HINT10H3、禁止光标显示MOVAH,01HMOVCX,2000HINT10H4、恢复光标显示MOVAH,01HMOVCX,0C0DHINT10H;//*****************************************************************//;微机原理课程设计;交通信号灯控制系统设计;电子0803班;;;2010-4-1718:55;//****************************************************************//STACKSEGMENTSTACKDW64DUP(?)STACKENDS;//*******************************************************************************//;功能:显示宏定义;//****************************************************************************//SHOWLINEMACROSTR,STA,LEN,POS,COL;显示字符串宏PUSHDXPUSHBXPUSHAX;//10MOVBP,OFFSETSTR;显示起始位置ADDBP,STA;第几个开始MOVDX,POS;位置MOVCX,LEN;长度MOVBX,COL;颜色MOVAX,1301H;字符串显示中断INT10HPOPAXPOPBXPOPDX;//20ENDM;//*******************************************************************************//;宏功能:读取时间子程序;//****************************************************************************//TIMEBUF0MACROTIME,BUF;显示字符串宏PUSHBXPUSHAX;//10MOVDI,OFFSETBUFMOVAL,TIMEMOVBL,0AHMOVAH,00HDIVBLADDAL,30HADDAH,30HMOV[DI],ALINCDIMOV[DI],AHPOPAXPOPBXENDM;//*********************************************************************//;功能:延时一秒宏定义,8253每秒中断18.2次;//********************************************************************//DELAYMACRO;延时一秒LOCALDLOOP;利用INT1AH/00H取得中断次数(DX),PUSHAXPUSHBXPUSHDXMOVAH,00H;BIOS调用//30INT1AH;55ms引起一次中断,作为定时信号。ADDDL,18;定时1S,需要18个定时单位MOVBL,DLINCBLDLOOP:MOVAH,00HINT1AHCMPDL,BL;是否累计到1SJNZDLOOP;没到,继续读POPDXPOPBXPOPAX;//40ENDM;//************************************************************//;功能:;数据定义;//**************************************************************//DATASEGMENTTIME_YDB2TIMEDB10TIME0DB7TIME_GDB7TIME_RDB10BUF0DB0FHBUF_XDB'00';定义交通路口BUF_YDB'00'BUFDB'00'TABLE01DB'TrafficLightsControlSystem'TABLE02DB'‘TABLE03DB'--------------------------------------------------------------------------------------------------------------'TABLE04DB'',0B3H,'|',0B3H,'|'TABLE05DB'',0B3H,'',0B3H,'|SETTING'TABLE06DB'',0B3H,'|',0B3H,'|'TABLE07DB'',0B3H,'N',0B3H,'|1.CHANGETIME:[C]'TABLE08DB'',0B3H,'|',0B3H,'|2.DOBY:[D]'TABLE09DB'',0B3H,'',0B3H,'|3.NIGHT:[N]'TABLE10DB13DUP(0C4h),0D9h,'',0C0h,11DUP(0c4h),'|4.EMERGEN:[E]'TABLE11DB'|5.QUIT:[Q]'TABLE12DB'',0FH,'|';//60TABLE13DB'|'TABLE14DB'----E--',0FH,'',0FH,'--W---|---------------------------------------------------------------'TABLE15DB'|'TABLE16DB'',0FH,'|NOW:NORMAL'TABLE17DB'|'TABLE18DB13DUP(0C4H),0BFh,'',0DAH,11DUP(0C4H),'|1.Quitsystem[Q]'TABLE19DB'',0B3H,'',0B3H,'|'TABLE20DB'',0B3H,'|',0B3H,'|---------------------------------------------------------'TABLE21DB'',0B3H,'S',0B3H,'|'TABLE22DB'',0B3H,'|',0B3H,'|WritebyQIULI';//70TABLE23DB'',0B3H,'',0B3H,'|Tle:1522xxxxxxx'TABLE24DB'',0B3H,'|',0B3H,'|Mail:2372595xx.qq.com'STRDB'PleaseinputtimesR:;G:;Y:;[Y/N]'STR1DB'CHANGETIME'STR2DB'DOBY'STR3DB'NIGHT'STR4DB'Quitsystem[Q]'STR5DB'NORMAL'STR6DB'1.Quitsystem[Q]'STR7DB'2.BacktoNORMAL[B]'STR8DB'EMERGEN'STR9DB'X--G,Y--R:[X];X--R,Y--G:[Y]'STRCLDB''STR10DB':'FLGDB0FLG0DB0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK;//***********************************************************//;//80;功能:;主函数;//******************************************************//MAINPROCFARMOVAX,DATAMOVDS,AXMOVES,AXFUNCT:MOVAH,01H;清除光标MOVCX,2000HINT10HCALLINITIALN1:CALLSHOWTIMECALLGETCHARCMPAL,'C';调整时间JNELOOP1CALLCHANGTIMEJMPFUNCTLOOP1:CMPAL,'D';手动/自动控制状态JNELOOP2;100CALLDOBYLOOP2:CMPAL,'N';夜间模式JNELOOP3CALLNIGHTLOOP3:CMPAL,'E';紧急模式JNELOOP4CALLEMERGENLOOP4:CMPAL,'Q';退出JNEN1ESC:MOVAH,4CH;//145INT21H;//****************************************************************//;功能:紧急情况子函数;//****************
本文标题:交通信号灯控制系统(汇编语言课程设计)
链接地址:https://www.777doc.com/doc-5710225 .html