收藏 分销(赏)

微机原理走马灯课程设计范文.doc

上传人:快乐****生活 文档编号:4409245 上传时间:2024-09-19 格式:DOC 页数:15 大小:115KB 下载积分:8 金币
下载 相关 举报
微机原理走马灯课程设计范文.doc_第1页
第1页 / 共15页
微机原理走马灯课程设计范文.doc_第2页
第2页 / 共15页


点击查看更多>>
资源描述
微机原理走马灯课程设计 15 2020年4月19日 文档仅供参考 走马灯的设计与实现 一 实验目的 经过走马灯的设计与制作,深入了解与掌握利用可编程8255A进行开关量控制的原 理与方法。 二 实验要求 1.产生8种彩灯(8位LED)的走马灯花样; 2.键控(或拨码开关控制)发光实验。键控是在键盘上定义8个数字键(0~7),每按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 走马灯驱动模块电路原理图 五 试验设备 1.PC兼容机 2.Windows 98以上 3.MFID多功能微机实验平台(含PCI总线驱动板) 4.MFPCI98集成开发环境 5.面包板或外设功能模块板 6.安装或焊接工具 六 元器件清单 元器件清单如表1所示。 序号 名称 数量 1 74LS04 2片 2 RESPACK3排阻 8×150Ω 2只 3 LED 8只 4 拨码开关 1只 5 面包板 1个 6 T型转接板 1个 7 导线 若干 表1 实验元器件清单 七 实验步骤 7.1硬件连线 根据图1的实验原电路图,走马灯电路结构电路接线如图2所示。 图2 走马灯电路结构电路接线图 接线说明:8255A共有三个8位端口A口、B口和C口。其中A口和B口为输出端口,C口为输入端口。在本电路中,A口8个输出管脚PA7-PA0分别接8个并联的LED彩灯反馈走马灯的发光方式;B口8个管脚PB7-PB0分别接8个并联的开关控制选择走马灯的发光方式。C口接输入控制电路,PC2管脚接控制电路中放大器的6管脚,PC6接控制电路中放大器的3管脚,PC7管脚接电源,其余管脚悬空。 7.2硬件检测 为了安全起见,先用万用表检测8255A的端口中的阳极与接地极以及其它端口是中有短路现象,检测确认线路安全之后再接到实验箱上,以免烧坏硬件。 7.3程序设计 根据实验原理与实验电路,初步写出程序的步骤,再绘制出完整的流程图,然后根据流程图编写汇编程序。流程图和程序见报告后的附录。 7.4调试运行 打开MF2KP微机实验集成开发环境,在“文件”菜单下粘贴自己编写的ASM文件进行调试与运行。 八 实验现象与说明 运行程序,经过键盘输入,输入数字1~8时8个LED灯,按照程序设定的方式进行花样变化,运行完一个周期后停止等待键盘的再次输入,输入不同的数字LED的变化花样不同,输入的不是数字也不是字母Q或q时,显示错误信息,等待键盘输入正确信息,当输入字母Q或q时退出程序。 九 实验小结与心得体会 附录一: 程序流程图 附录二: 程序代码: ;************************************************************************* ; 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 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 ;置第三种灯光变幻组合 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
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服