




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上微型计算机技术 课程设计 指导教师: 班 级: 姓 名: 学 号: 班内序号: 课设日期: _目 录36一、课程设计题目:点阵显示系统电路及程序设计利用汇编语言与微型计算机技术课程中所学的可编程接口芯片8253、8255A、8259设计一个基于微机控制的点阵显示系统。二、设计目的1通过本设计,使学生综合运用汇编语言与微型计算机技术、数字电子技术等课程的内容,为今后从事计算机检测与控制工作奠定一定的基础。2掌握接口芯片8253、8255A、8259等可编程器件、译码器74LS138、8路同相三态双向总线收发器74LS245、点阵显示器件的使用。3学会用汇编语言编写一个较
2、完整的实用程序。4掌握微型计算机技术应用开发的全过程,包括需求分析、原理图设计、元器件选用、布线、编程、调试、撰写报告等步骤。三、设计内容1点阵显示系统启动后的初始状态在计算机显示器上出现菜单:dot matrix display system1.left shift display2.up shift display3.s stop4.Esc Exit2点阵显示系统运行状态按计算机光标键,点阵逐列向左移动并显示:“微型计算机技术课程设计,点阵显示系统,计科11302班,陈嘉敏,彭晓” 。按计算机光标键,点阵逐行向上移动并显示:“微型计算机技术课程设计,点阵显示系统,计科11302班,陈嘉敏,
3、彭晓” 。按计算机光标s键,点阵停止移动并显示当前字符。3结束程序运行状态按计算机Esc键,结束点阵显示系统运行状态并显示“停”。四设计所需器材与工具1一块实验面包板(内含时钟信号1MHz或2MHz)。 2可编程芯片8253、8255、74LS245、74LS138各一片,16×16点阵显示器件一片。3导线若干。4示波器、万用表、常用工具等共用(从实验室现借现还)。五、设计思路 1利用74LS138设计地址译码电路,8255端口地址:300H303H,8253端口地址:304H307H。274LS245用于总线和8253、8255之间的双向传输和隔离。3利用面包板上时钟(1MHz或2
4、MHz)和8253设计一个1毫秒定时电路,将定时信号(1毫秒方波)接到总线的IRQ2或IRQ10送给8259控制点阵左移或上移。4选择8255的PA0、PA4、PA5和PB4、PB5、PB6、PB7,7个位控制点阵显示器件行和列的数据串行输入、输入脉冲、锁存脉冲(并行输出脉冲)。六、设计步骤1.电路原件介绍(1)74LS245数据总路线缓冲器 图6-1-1 74LS245的功能表 图6-1-2图6-1-3(2)74LS138 图6-1-4标准地址译码电路 图6-1-58255CS对应的地址为300H303H, 8253CS对应的地址为304H307H。简化后的非标准地址译码电路 图6-1-6(
5、3).8253定时/计数器 图6-1-7(4).8255A 图6-1-8(5).点阵显示器件 图6-1-9 图6-1-10 附4、课程设计所用器件 图6-1-12 附5、点阵生成图 图6-1-13 图6-1-14 图6-1-15 图6-1-16 图6-1-17 图6-1-18 图6-1-19 图6-1-20开始2.流程图初始化8253、8255A及8259芯片,选择计数器1、2,输出端口A、B,工作方式0显示主界面信息,点阵显示出字模,停止不移动中断服务程序,不断扫描键盘,等待有键按下(1.2.3.4)并执行相应服务程序按键4启动Esc功能,调用退出程序,点阵显示“停”,并结束显示。按键3启动
6、StopDisplay功能,调用停止程序,点阵停止移动并显示当前字符按键2启动UpShift功能,调用上移程序,并显示在点阵上按键1启动LeftShift功能,调用左移程序,并显示在点阵上3.电路图 图6-3-1注:(1)电路箱总芯片上已集成8259芯片,实际连接时8253的OUT2直接接到总芯片的IRQ10处;(2)实际连接时,是由8255A芯片的PA0、PA4、PA5、PB4、PB5、PB6、PB7控制点阵显示屛;PA0R1、PA4SCK、PA5LATCH、PB4A、PB5B、PB6C、PB7D。GND和EN/OE接地,+5V接电源正极。4.正确运用所给器件布线,搭接硬件电路初始接线图 图
7、6-4-1 测试中发现8255无法正常工作,检查得知面包板底下有短路,重新申请新的面包板,更改部分线路,最后得到线路图如下,并测试成功。最终接线图及测试 图6-4-25.详细汇编代码DATA SEGMENT微db 12H, 10H, 12H, 10H, 2AH, 90H, 4AH, 0A4H, 8AH, 0BEH, 1FH, 0C4H,20H, 24H, 7FH, 0A8H, 0A0H, 28H, 2FH, 28H, 29H, 10H, 29H, 50H, 29H, 0A8H, 29H, 28H, 30H, 46H, 20H, 84H型 db 01H, 04H, 7FH, 84H, 12H,
8、24H, 12H, 24H, 12H, 24H, 0FFH, 0A4H, 12H, 24H, 12H, 24H, 12H, 04H, 23H, 14H, 41H, 08H, 7FH, 0FCH, 01H,00H, 01H, 04H, 0FFH, 0FEH, 00H, 00H计 db 00H, 40H, 20H, 40H, 10H, 40H, 10H, 40H, 00H, 40H, 00H, 44H, 0F7H, 0FEH, 10H, 40H, 10H, 40H, 10H, 40H, 10H, 40H, 12H, 40H, 14H, 40H, 18H, 40H, 10H, 40H, 00H, 4
9、0H算 db 20H, 80H, 3EH, 0FCH, 49H, 20H, 9FH, 0F0H, 10H, 10H, 1FH, 0F0H, 10H, 10H, 1FH, 0F0H, 10H, 10H, 1FH, 0F0H, 08H, 24H, 0FFH, 0FEH, 08H, 20H, 08H, 20H, 10H, 20H, 20H, 20H机 db 10H, 00H, 10H, 10H, 11H, 0F8H, 11H, 10H, 0FDH, 10H, 11H, 10H, 31H, 10H, 39H, 10H, 55H, 10H, 51H, 10H, 91H, 10H, 11H, 10H, 1
10、1H, 12H, 12H, 12H, 14H, 0EH, 18H, 00H技 db 10H, 40H, 10H, 40H, 10H, 48H, 13H, 0FCH, 0FCH, 40H, 10H, 40H, 10H, 40H, 13H, 0F8H, 1AH, 08H, 31H, 10H, 0D1H, 10H, 10H, 0A0H, 10H, 40H, 10H, 0B0H, 51H, 0EH, 26H, 04H术 db 01H, 00H, 01H, 40H, 01H, 30H, 01H, 10H, 01H, 04H, 0FFH, 0FEH, 01H, 00H, 03H, 80H, 05H, 40
11、H, 09H, 20H, 11H, 10H, 21H, 0EH, 0C1H, 04H, 01H, 00H, 01H, 00H, 01H, 00H课 db 00H, 08H, 43H, 0FCH, 22H, 48H, 22H, 48H, 03H, 0F8H, 02H, 48H, 0E2H, 48H, 23H, 0F8H, 20H, 40H, 2FH, 0FEH, 20H, 0E0H, 29H, 50H, 32H, 48H, 24H, 4EH, 08H, 44H, 00H, 40H程 db 08H, 04H, 1DH, 0FEH, 0F1H, 04H, 11H, 04H, 11H, 04H, 0F
12、FH, 04H, 11H, 0FCH, 38H, 00H, 37H, 0FEH, 54H, 20H,50H, 28H, 91H, 0FCH, 10H, 20H, 10H, 24H, 17H, 0FEH, 10H, 00H设 db 01H, 0F0H, 21H, 10H, 11H, 10H, 11H, 10H, 01H, 10H, 02H, 0EH, 0F4H, 00H, 13H, 0F8H, 11H, 08H, 11H, 10H, 10H, 90H, 10H, 0A0H, 14H, 40H, 18H, 0B0H, 13H, 0EH, 0CH, 04H计 Db 00H, 40H, 20H, 40
13、H, 10H, 40H, 10H, 40H, 00H, 40H, 00H, 44H, 0F7H, 0FEH, 10H, 40H, 10H, 40H, 10H, 40H, 10H, 40H, 12H, 40H, 14H, 40H, 18H, 40H, 10H, 40H, 00H, 40HDou0 db 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 18H, 00H, 18H, 00H, 10H, 00H, 20H, 00H, 00H, 00H,
14、 00H, 00H点 db 02H, 00H, 02H, 00H, 02H, 08H, 03H, 0FCH, 02H, 00H, 02H, 10H, 3FH, 0F8H, 20H, 10H, 20H, 10H, 20H, 10H, 3FH, 0F0H, 00H, 00H, 29H, 10H, 24H, 0C8H, 44H, 44H, 80H, 04H阵 db 00H, 80H, 78H, 84H, 4FH, 0FEH, 50H, 80H, 50H, 0A0H, 61H, 20H, 51H, 28H, 4BH, 0FCH, 48H, 20H, 48H, 20H, 68H, 24H, 57H, 0
15、FEH, 40H, 20H, 40H, 20H, 40H, 20H, 40H, 20H显 db 00H, 10H, 1FH, 0F8H, 10H, 10H, 10H, 10H, 1FH, 0F0H, 10H, 10H, 10H, 10H, 1FH, 0F0H, 14H, 50H, 44H, 44H, 34H, 4CH, 14H, 50H, 04H, 40H, 04H, 44H, 0FFH, 0FEH, 00H, 00H示 db 00H, 10H, 3FH, 0F8H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 04H, 0FFH, 0FEH, 01H, 00H, 0
16、1H, 00H, 09H, 20H, 19H, 18H, 21H, 0CH, 41H, 04H, 01H, 00H, 05H, 00H, 02H, 00H系 db 00H, 38H, 7FH, 0C0H, 04H, 00H, 04H, 10H, 08H, 20H, 3FH, 0C0H, 01H, 00H, 02H, 20H, 04H, 10H, 3FH, 0F8H, 01H, 08H, 09H, 20H, 09H, 10H, 11H, 08H, 25H, 08H, 02H, 00H统 db 10H, 80H, 10H, 40H, 20H, 48H, 27H, 0FCH, 48H, 80H, 0
17、F9H, 10H, 12H, 08H, 27H, 0FCH, 41H, 24H, 0F9H, 20H, 41H, 20H, 01H, 20H, 1AH, 22H, 0E2H, 22H, 44H, 1EH, 08H, 00HDou2 db 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 18H, 00H, 18H, 00H, 10H, 00H, 20H, 00H, 00H, 00H, 00H, 00HZhang Db 09H, 00H, 0FDH
18、, 08H, 09H, 08H, 09H, 10H, 09H, 20H, 79H, 40H,41H, 04H, 47H, 0FEH, 41H, 40H, 79H, 40H, 09H, 20H, 09H, 20H, 09H, 10H, 09H, 4EH, 51H, 84H, 21H, 00H strmenu DB 'dot matrix display system',0AH,0DH,'1.','L',' left shift display',0AH,0DH,'2.','U',' up sh
19、ift display',0AH,0DH,'3.S stop',0AH,0DH,'4.Esc Exit',0AH,0DH,0AH,0DH,'$'OUTSET DW 0000H;用于存放字符首地址,增加程序可移植性。 COUNT DB 35;用于指示汉字的个数StopFlag DB 00H;暂停标志位:用于辅助实现暂停功能。(1)如果为0收到中断后,可以MoveStep;(2)否则不行。Status DB 00H;辅助实现第一种中断。;为了实现“利用中断来刷屏”,需要用到两个变量。IndexOfLine DW 0006H;行标,用来指示当前
20、刷屏从第几行开始。用于辅助实现ShowUpward范围是0count*16-1。当超过的时候,应该使其等于00IndexOfWord DB 00H;汉字的指针(只能放256个汉字喽),辅助实现ShowLeftward的MoveStep DB 00H;以每个汉字为中心,的位移量,用于Left。:出于我们点阵的数据格式,其范围在016之间。;用于恢复原中断向量INT0A_OFF DW(?)INT0A_SEG DW(?) ;Test:用于辅助做测试的变量。Times DB 00hDATA ENDSCODE SEGMENT 'CODE'ASSUME DS:DATA,CS:CODE;-S
21、tartSTART:MOV DX,DATAMOV DS,DXLEA DX,wEI ;设置字符的开始位置MOV OUTSET,DXCALL InI8255CALL Ini8253MOV AX,3572H ;获取原中断向量 INT 21H MOV INT0A_OFF,BX ;保存原中断向量 MOV BX,ES MOV INT0A_SEG,BX CLI ;关中断 MOV AX,2572H MOV DX,SEG MoveStepLeft ;设置新的中断向量 PUSH DS MOV DS,DX MOV DX,OFFSET MoveStepLeft INT 21H POP DS STI ;开中断 IN A
22、L,0A1H ;打开IRQ10 AND AL,0FBH OUT 0A1H,AL IN AL,21H ;打开IRQ2 AND AL,0FBH OUT 21H,ALLEA DX,strmenuMOV AH,09HINT 21H;刷屏。NOTEND:MOV AH,0BH ;检查是否有键按下 INT 21H INC AL JNZ NOTEND2 ; 若无键按下,则跳过判断 MOV AH,08H ;如有Q或q键按下,则程序退出 INT 21H CMP AL,'s'当键入为's'的时候,停止LED滚动JZ JStopCMP AL,'S'JZ JStopCMP
23、 AL,1BH;当键入为Esc的时候,退出程序JZ JEXITCMP AL,'u'当键入U的时候,调用Up:(1)改变Status变量=2;(2)改变StopFlag;(3)改变中断表向量为“MoveLeftStep",从而实现中断移位JZ JUpCMP AL,'U'JZ JUpCMP AL,'l'当键入L的时候,调用Left:(1)改变Status变量=2;(2)改变StopFlag;(3)改变中断向量表为“MoveLeftStep",从而实现中断移位JZ JLeftCMP AL,'L'JZ JLeft CM
24、P AL,'Q' JZ JEXITCMP AL,'q' JZ JEXITNOTEND2:CMP Status,01HJZ JLeftShow;以向左的方式,刷屏CMP Status,02HJZ JUpShow;以向上的方式刷屏;CALL DELAYCALL DELAYJMP NOTENDJStop:CALL StopJMP NOTENDJLeft:CALL LeftJMP NOTENDJUp:CALL UPJMP NOTENDJEXIT:CALL EXITJLeftShow:CALL ShowLeftward;CALL DELAY;?也许对于cpu位的位移,这个
25、delay最好是放在MoveStepLeft函数的内部;CALL MoveStepLeft;-如果中断没起作用,那就用CUP来位移。MOV AH,2MOV DL,'L'INT 21HJMP NOTENDJUpShow:CALL ShowUpward;CALL DELAY;CALL MoveStepUp;-如果中断没起作用,那就用CUP来位移。MOV AH,2MOV DL,'U'INT 21HJMP NOTEND;-根据键盘输入,改变中断向量表,从而选择是向上,还是向下移动。-Left:;(1)把中断处理程序“向左左位”的中断程序放入中断向量表中。;(2)同时将s
26、tatus置为1,表示的是以向左的方式刷屏;(3)置暂停位为00h;(4)开始循环。PUSH AXPUSH DXMOV AH,2MOV DL,'L'INT 21H CLI ;关中断 MOV AX,2572H MOV DX,SEG MoveStepLeft ;设置新的中断向量 PUSH DS MOV DS,DX MOV DX,OFFSET MoveStepLeft INT 21H POP DS STI ;开中断 IN AL,0A1H ;打开IRQ10 AND AL,0FBH ; OUT 0A1H,AL IN AL,21H ;打开IRQ2 AND AL,0FBH OUT 21H,A
27、LMOV Status,1;(2)MOV StopFlag,00H;(3)置暂停位POP DXPOP AXRETUp:;(1)把中断处理程序“向上位移”的中断程序放入中断向量表中。;(2)同时将status置为,表示的是以向左的方式刷屏;(3)置暂停位为00h;(4)开始循环。PUSH AXPUSH DXMOV AH,2MOV DL,'U'INT 21H CLI ;关中断 MOV AX,2572H MOV DX,SEG MoveStepUp ;设置新的中断向量 PUSH DS MOV DS,DX MOV DX,OFFSET MoveStepUp INT 21H POP DS S
28、TI ;开中断 IN AL,0A1H ;打开IRQ10 AND AL,0FBH ; OUT 0A1H,AL IN AL,21H ;打开IRQ2 AND AL,0FBH OUT 21H,AL ;开中断MOV Status,2;(2)MOV StopFlag,00H;置暂停位POP DXPOP AXRETStop:PUSH AXPUSH DXMOV AH,2MOV DL,'S'INT 21HMOV StopFlag,01H;置暂停位POP DXPOP AXRET;-LED显示的逻辑部分-;-SendWord-SendWord:;计算并送出一行16位数据。;这个数据放在AX中。PUS
29、H AXPUSH BXPUSH CXPUSH DXMOV CX,16cicleSendWord:;测试部分PUSH AXPUSH DXMOV DX,8000H;MOV DX,0001HAND DX,AXSHR DX,15ADD DX,30HMOV AH,2HINT 21HPOP DXPOP AX;1:通过8255的c4口把一位数据给G1PUSH AXMOV DX,303HTEST AX,8000H;如果数据位是0的话,将c0置1;如果数据位是1的话,将c0置0JZ SetOne;将c0置0MOV AL,BOUT DX,ALJMP GoOnSetOne:;将C0置1MOV AL,BOUT DX,
30、ALGoOn:;2:以下代码是为了实现一个"移位脉冲"MOV AL,B;使得C6变成0(低电平);同时不改变数据输入位OUT DX,ALMOV AL,B;使得C6变成1(高电平);同时不改变数据输入位OUT DX,ALPOP AXSHL AX,1;SHR AX,1DEC CXJNZ cicleSendWordPOP DXPOP CXPOP BXPOP AXRET;-ShowLeftWard-ShowLeftWard:PUSH SIPUSH DXPUSH CXPUSH BXPUSH AX;1:根据IndexOfWord2;2:MoveStep决定一个位的位移;3:当Stop为
31、0时,每“刷完一次屏',MoveStep要移动+;否则不移动;4:当MoveStep=16时,IndexOfWord2+;5:当IndexOfWord2=NumOfCharacter-1时,IndexOfWord2归零:因为”索引是从0开始的嘛“。MOV SI,OUTSETMOV AL,32MUL IndexOfWordADD SI,AXMOV CX,16;来一个信号刷一次屏Oneline:;CALL DELAY;Left代码的关键:;(1)CX作为一个临时的“偏移变量使用”;(2)把四个字节(两个字)的数据拼接在一起,并把最终结果放在AX中。PUSH CX ;MOV AH,SIMOV
32、 AL,SI+1MOV CL,MoveStepSHL AX,CL;MOV BH,SI+32;下一个字的对应行;MOV BL,SI+33CALL GetNextLeftWord;-取下一个字对应行的十六位,放在BX中MOV CL,16SUB CL,MoveStepSHR BX,CLOR AX,BXPOP CXADD SI,2;换行;testCALL Enter;(1)移位输出了16位数据CALL SendWord;2)释放锁存,先0后1.采用置位、复位控制字MOV AL,BMOV DX,303H;call delayOUT DX,ALMOV AL,BOUT DX,AL;(3)行选-需要测试选中那
33、一行MOV AL,CL;SHL AL,1DEC AL;?MOV DX,302HOUT DX,ALDEC CXJNZ OnelinePOP AXPOP BXPOP CXPOP DXPOP SI;JMP EXITRET;-GetNextLeftWord-GetNextLeftWord:;取下一字的时候,要考虑一种特殊情况,及当SI已经指向最后一个字的时候,下一个16位,应该取自第一个字PUSH AXPUSH SIPUSH DXMOV AL,IndexOfWordINC ALCMP AL,COUNTJNZ GetNextLeftGetFistLeft:MOV DX,OUTSETMOV AL,32MU
34、L IndexOfWordADD DX,AXMOV AX,SISUB AX,DXMOV SI,OUTSETADD SI,AXMOV BH,SIMOV BL,SI+1;TESTPUSH DXMOV DL,' 'MOV AH,2HINT 21HPOPDXMOV AX,BXCALL SendWordJMP EndGetLeftWordGetNextLeft:MOV BH,SI+32;下一个字的对应行MOV BL,SI+33EndGetLeftWord:POP DXPOP SIPOP AXRET;-MoveStepLeft-MoveStepLeft:;1:根据IndexOfWord2以
35、及MoveStep2确定SI。;2:MoveStep决定一个位的位移;3:当Stop为0时,每“刷完一次屏',MoveStep要移动+;否则不移动;4:当MoveStep=16时,IndexOfWord2+;5:当IndexOfWord2=COUNT时,IndexOfWord2归零:因为”索引是从0开始的嘛“。;当刷完一次屏之后,MoveStep2要变化。;(1)当已经按下暂停建的时候,则不前移动;(2)当移动超过=16的时候PUSH AXCLIMOV AL,01HTEST StopFlag,ALJNZ EndStep;如果等于1,则MoveSteip不前移动INC MoveStepM
36、OV AL,16CMP MoveStep,ALJNZ EndStep;如果EndMoveStep!=16跳过4;MOV MoveStep,00HINC IndexOfWordMOV AL,COUNTCMP IndexOfWord,ALJNZ EndStep;如果IndexOfStep2!=COUNT,则跳过5MOV IndexOfWord,00HEndStep: MOV AL,62H ;发中断结束命令 MOV DX,0A0H OUT DX,AL ;向从片8259发EOI命令 OUT 020H,AL ;向主片8259发EOI命令 STI ;开中断 POP AX IRETRET;-ShowUpWa
37、rd-;1:用到变量:IndexOfLine;:(1)用来指示当前刷屏从第几行开始。(2)范围是0count*16-1。(3)当超过的时候,应该使其等于00(4)用来对SI初始化;2:SI:;:SI动态变化(显示十六行数据过程中),当超过的count*16-1这个地方所对应的地址的时候,使其“重新指向开头”。;ShowUpWard:PUSH SIPUSH DXPUSH CXPUSH BXPUSH AXMOV SI,OUTSETMOV AX,2MUL IndexOfLine ADD SI,AXMOV CX,16;来一个信号刷一次屏AnotherLine:MOV AH,SIMOV AL,SI+1A
38、DD SI,2;(1)换行;(2)如果换行以后>=range=32*count行对应的指针,令其从新指向开头,并继续+进行行扫PUSH AX;定义一个临时变量MOV AX,0MOV AL,32MUL COUNTMOV BX,OUTSETADD BX,AXCMP BX,SIJNZ Continue;如果等于range,则reset;ResetMOV SI,OUTSETContinue:POP AX;TestCALL Enter;(1)移位输出了16位数据-以AX传送数据CALL SendWord;2)释放锁存,先0后1.采用置位、复位控制字MOV AL,BMOV DX,303H;call
39、delayOUT DX,ALMOV AL,BOUT DX,AL;(3)行选-需要测试选中那一行MOV AL,CL;SHL AL,1DEC AL;?MOV DX,302HOUT DX,ALDEC CX;用于实现16行数据的输出JNZ AnotherLinePOP AXPOP BXPOP CXPOP DXPOP SI;JMP NOTENDRET;-MoveStepUp-MoveStepUp:PUSH AX;testPUSH DXCLIINC TimesMOV AH,2MOV DL,TimesADD DL,30HINT 21HMOV AH,2MOV DX,IndexOfLineADD DL,30HI
40、NT 21HCMP StopFlag,1JZ ContinueMoveUpADD IndexOfLine,1;(1)换行;(2)如果换行以后>=range=32*count行对应的指针,令其从新指向开头,并继续+进行行扫MOV AX,16MUL COUNTCMP AX,IndexOfLineJNZ ContinueMoveUp;ResetMOV IndexOfLine,00HContinueMoveUp: MOV AL,62H ;发中断结束命令 MOV DX,0A0H OUT DX,AL ;向从片8259发EOI命令 OUT 020H,AL ;向主片8259发EOI命令 STI ;开中断
41、 POP DX POP AX IRET;JMP NOTENDRET;-辅助函数-INI8253:;对8253C1和C2进行初始化PUSH DXPUSH AXMOV DX,307H;初始化8253,307H为8253控制端口地址MOV AL,B ;计数器1,方式3OUT DX,AL;将初始控制字输出到控制端口MOV DX,305H;计数器1MOV AX,900;先读低8位,OUT DX,ALMOV AL,AH;再读高8位OUT DX,ALMOV DX,307H;再给8253写控制字MOV AL,B;计数器2,方式3OUT DX,ALMOV DX,306H;计数器2MOV AX,900;先读低8位
42、,OUT DX,ALMOV AL,AH;再读高8位OUT DX,ALPOP AXPOP DXRETINI8255:;8255初始化PUSH DXPUSH AX MOV DX,303H;初始化8255 MOV AL,80H;A口输出 OUT DX,AL;将初始控制字输出到控制端口MOV DX,300H ;A端口的地址MOV AL,000HOUT DX,AL MOV DX,302H;C口地址 ? MOV AL,000H OUT DX,ALPOP AXPOP DXRETEXIT: MOV AX,2572H ;恢复中断向量 MOV DX,INT0A_SEG PUSH DS MOV DS,DX MOV
43、DX,INT0A_OFF INT 21H POP DS IN AL,0A1H ;屏蔽IRQ10 OR AL,04H OUT 0A1H,AL IN AL,21H ;屏蔽IRQ2 OR AL,04H OUT 21H,AL MOV AX,4C00H ;程序退出 INT 21H Enter: PUSH AX PUSH DXMOV AH,2MOV DX,0AHINT 21HMOV AH,2MOV DX,0DHINT 21HPOP DXPOP AXRETDELAY PROC PUSH CX PUSH BX MOV BX,0FFFHLOOP2:MOV CX,0FFFHLOOP1:LOOP LOOP1 DEC BX JNZ LOOP2 POP BX POP CX RET DELAY ENDPCODE ENDSEND START6.实验过程中的主要难点(自己遇到的)及解决思路和办法主要难点:利用proteus画电路图时,知道每个芯片怎么连,但是需要多个芯片同时连接时,之间的连线会有些不确定;在试验箱上连线时,没能提前好好布局,连线很混乱很难看清楚,尤其在测试芯片有问题需要更改的时候,很难分清楚;不会编写核心点阵显示程序及功能调用子程序;调试改写程序时,会遇到测试灯和电路不工作的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 神经病考试模拟题+答案
- 资金管理与运作作业指导书
- 信息技术支持下的农业电商平台协议
- 销售提成与售后服务合同书
- 兴业银行招聘面试常见试题及回答
- 浙江国企招聘2025浙江省盐业集团有限公司招聘22人笔试参考题库附带答案详解
- 2025年春季黑龙江大庆油田有限责任公司高校毕业生招聘50人笔试参考题库附带答案详解
- 2025年合肥市产业投资控股(集团)有限公司校园招聘31人笔试参考题库附带答案详解
- 2025内蒙古能源集团智慧运维公司校园招聘(55人)笔试参考题库附带答案详解
- 计量试题库及答案大全
- 脑心健康管理师培训汇报
- 2024年学校安全知识竞赛题库及答案
- JJF 2158-2024 热量表型式评价大纲
- 守护美好家园防灾减灾主题班会课件
- 糖尿病健康教育预防糖尿病课件
- 小班健康教案及教学反思《叠衣服》
- DB34∕T 3269-2018 高聚物注浆技术在高速公路养护工程中的应用实施指南
- 家装设计师个人简介范文
- 神经介入围手术期管理
- 南华大学学生手册
- DL∕T 5210.6-2019 电力建设施工质量验收规程 第6部分:调整试验
评论
0/150
提交评论