2022年微机原理走马灯课程设计 .pdf
武汉理工大学自动化综合实验实验报告书1 走马灯的设计与实现一 实验目的通过走马灯的设计与制作,深入了解与掌握利用可编程8255A进行开关量控制的原理与方法。二 实验要求1产生 8 种彩灯 8 位 LED 的走马灯把戏;2键控 ( 或拨码开关控制 ) 发光实验。键控是在键盘上定义8 个数字键 07 ,每按1 个数字键,使 LED的 1 位发光,按 Q或 q 键,停止发光。拨码开关控制, 是通过改变各位开关 , 来进行控制 , 使 LED的 1 位发光,按 Q或 q 键,停止发光。三 实验内容1进行走马灯的系统电路硬件设计,画出电路原理图;2安装或焊接元器件;3进行走马灯的控制程序设计采用ASM 语言 ;4系统联调,提交一个符合上述3 种要求的走马灯的作品。四 实验原理8255A 是一种通过可编程并行I/O接口芯片。广泛用于几乎所有系列的微机系统中,8255A 具有三个带锁存或缓冲的数据端口, 可与外设并行进行数据交换,8255A 有多种操作方式 , 通用性较强 , 可为 CPU 与外设之间提供输入 / 输出通道。8255A和各端口内具有中断控制逻辑 , 在外设与CPU之间可用中断方式进行信息交换, 使用条件传输方式时可用“联络”线进行控制。在实验中, 我们运用 8255 为 CPU 与外设之间提供输入输出输出通道来实现对走马灯把戏变换的控制。走马灯驱动模块电路原理如图1 所示。模块包括 8 个 LED彩灯、两个 74LS04 、和两个个排阻。用 LED可以观测在不同按键输入下,走马灯把戏的变化效果。如图 1 所示我们利用软件输入信号,通过8255 端口扩展芯片和 74LS04芯片,调节输出端口的电平变化,来控制共阳极的LED灯的亮与灭,实现走马灯把戏变化。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 9 页武汉理工大学自动化综合实验实验报告书2 图 1 走马灯驱动模块电路原理图五 试验设备1PC兼容机2Windows 98以上3MFID多功能微机实验平台含PCI 总线驱动板4MFPCI98 集成开发环境5面包板或外设功能模块板6安装或焊接工具六 元器件清单元器件清单如表 1 所示。序号名称数量1 74LS04 2 片2 RESPACK3 排阻 8 1502 只3 LED 8 只4 拨码开关1 只5 面包板1 个6 T型转接板1 个7 导线假设干表 1 实验元器件清单七 实验步骤精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 9 页武汉理工大学自动化综合实验实验报告书3 根据图 1 的实验原电路图,走马灯电路结构电路接线如图2 所示。1044.7kVCCVCCVCCGND1SPK3.3vGND1220vf1vfGND135764821LM386AGND1S134121213101189563412L1L2L3L4L5L6L7L012345678161514131211109R1RESPACK312345678161514131211109R2RESPACK312345678161514131211109U6SW-DIP8GND14.7kD034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC710RD5WR36A09A18RESET35CS6U-78255图 2 走马灯电路结构电路接线图接线说明: 8255A共有三个 8 位端口 A口、B口和 C口。其中 A口和 B 口为输出端精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 9 页武汉理工大学自动化综合实验实验报告书4 口,C口为输入端口。在本电路中,A 口 8 个输出管脚 PA7-PA0分别接 8 个并联的 LED彩灯反馈走马灯的发光方式;B口 8 个管脚 PB7-PB0分别接 8 个并联的开关控制选择走马灯的发光方式。 C口接输入控制电路, PC2管脚接控制电路中放大器的6 管脚,PC6接控制电路中放大器的3 管脚, PC7管脚接电源,其余管脚悬空。为了安全起见,先用万用表检测8255A 的端口中的阳极与接地极以及其它端口是中有短路现象,检测确认线路安全之后再接到实验箱上,以免烧坏硬件。根据实验原理与实验电路,初步写出程序的步骤,再绘制出完整的流程图,然后根据流程图编写汇编程序。流程图和程序见报告后的附录。打开 MF2KP 微机实验集成开发环境,在“文件”菜单下粘贴自己编写的ASM 文件进行调试与运行。八 实验现象与说明运行程序,通过键盘输入,输入数字18 时 8 个 LED灯,按照程序设定的方式进行把戏变化,运行完一个周期后停止等待键盘的再次输入,输入不同的数字LED的变化把戏不同,输入的不是数字也不是字母Q或 q 时,显示错误信息, 等待键盘输入正确信息,当输入字母 Q或 q 时退出程序。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 9 页武汉理工大学自动化综合实验实验报告书5 九 实验小结与心得体会附录一:程序流程图精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 9 页武汉理工大学自动化综合实验实验报告书6 附录二:程序代码:;* ; zmd.asm 走马灯灯光变幻程序* ; 内容:用键盘输入数字键1-8 控制走马灯变幻方式,按Q或者 q 退出* ; 运行步骤 : 1.按下数字键1-8 控制走马灯进行8 种不同的把戏闪烁* ; 2.按下 q或者 Q, 退出* ; 3.按下了除数字键1-8 以及 q 和Q 之外的字母,显示输入错误提示* ; 4.可重复进行直到按q 或Q 退出* ;* sseg segment para stack stack dw 200 dup (?) sseg ends dseg segment para public data message db press the number key from 1 to 8 and display various light- patterns!;提示信息db 0ah,0dh db if you want to quit, please hit q or Q!,0ah,0dh,$ message1 db 0ah,0dh,you have pressed a wrong key !,0ah,0dh db 0ah,0dh,$ num dw 0 ;初始化数字变量为0 data1 db 0aah,55h,0aah,55h,0aah,55h,0aah,55h ;八种不同的灯光变幻组合data2 db 01h,02h,04h,08h,10h,20h,40h,80h data3 db 80h,20h,08h,02h,40h,10h,04h,01h data4 db 01h,04h,10h,40h,02h,08h,20h,80h data5 db 0c0h,30h,0ch,03h,0c0h,30h,0ch,03h data6 db 03h,0ch,30h,0c0h,03h,0ch,30h,0c0h data7 db 81h,42h,24h,18h,81h,42h,24h,18h data8 db 18h,24h,42h,81h,18h,24h,42h,81h dseg ends cseg segment para public code assume ss:sseg,cs:cseg,ds:dseg m proc far start: mov ax,ds push ax mov ax,00h push ax ;保留程序数据段地址mov dx,303h ;取 8255 的控制端口的地址mov al,83h ;初始化 8255 的 A 口为输出模式out dx,al exut: mov dx,seg message mov ds,dx mov dx,offset message 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 9 页武汉理工大学自动化综合实验实验报告书7 mov ah,9 int 21h ;初始化灯LED 全灭mov dx,300h ;取 8255 的端口 A 的地址mov al,00h ;使 8255 的 PA0-PA7 全为 0 out dx,al ;使所有的灯LED 全灭mov ah,08h int 21h ;调用 DOS 21H 功能 08H 进行键盘输入判断cmp al,q jz quit ;检测到 q,退出cmp al,Q jz quit ;检测到 Q, 退出begin: call ledflash ;调用灯光变幻过程jmp exut quit: ;灯 LED 全灭mov dx,300h ;取 8255 的端口 A 的地址mov al,00h ;使 8255 的 PA0-PA7 全为 0 out dx,al ;使所有的灯LED 全灭mov ah,4ch ;DOS 功能调用int 21h ;返回 DOS m endp delay2 proc push cx push bx mov cx,0ffffh dl4: mov bx,0ffffh dl3: dec bx jnz dl3 dec cx jnz dl4 pop bx pop cx ret delay2 endp ;检测键盘输入了字符,以便确定哪种闪烁方式ledflash proc choice1: cmp al,1 jne choice2 mov si,offset data1 ;置第一种灯光变幻组合jmp here choice2: cmp al,2 jne choice3 mov si,offset data2 ;置第二种灯光变幻组合jmp here choice3: cmp al,3 jne choice4 mov si,offset data3 ;置第三种灯光变幻组合精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 9 页武汉理工大学自动化综合实验实验报告书8 jmp here choice4: cmp al,4 jne choice5 mov si,offset data4 ;置第四种灯光变幻组合jmp here choice5: cmp al,5 jne choice6 mov si,offset data5 ;置第五种灯光变幻组合jmp here choice6: cmp al,6 jne choice7 mov si,offset data6 ;置第六种灯光变幻组合jmp here choice7: cmp al,7 jne choice0 mov si,offset data7 ;置第七种灯光变幻组合jmp here choice8: cmp al,8 jne choice0 mov si,offset data8 ;置第七种灯光变幻组合jmp here ;按错键提示,并重新开始接受输入choice0: lea dx,message1 mov ah,9 int 21h jmp exut ;送加电数据here: push bx mov bx,num mov al,si+bx pop bx mov dx,300h ;取 8255 的端口 A 的地址out dx,al ;输出加电数据到端口A inc num ;改变数字变量的值cmp num,09h je exit call delay2 jmp here exit: mov num,0 ret ledflash endp cseg ends end start 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 9 页武汉理工大学自动化综合实验实验报告书9 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 9 页