微机原理走马灯课程设计报告书.doc

上传人:李司机 文档编号:1119658 上传时间:2022-06-27 格式:DOC 页数:9 大小:108KB
返回 下载 相关 举报
微机原理走马灯课程设计报告书.doc_第1页
第1页 / 共9页
微机原理走马灯课程设计报告书.doc_第2页
第2页 / 共9页
微机原理走马灯课程设计报告书.doc_第3页
第3页 / 共9页
微机原理走马灯课程设计报告书.doc_第4页
第4页 / 共9页
微机原理走马灯课程设计报告书.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《微机原理走马灯课程设计报告书.doc》由会员分享,可在线阅读,更多相关《微机原理走马灯课程设计报告书.doc(9页珍藏版)》请在三一办公上搜索。

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是

2、一种通过可编程并行I/O接口芯片。广泛用于几乎所有系列的微机系统中,8255A具有三个带锁存或缓冲的数据端口,可与外设并行进行数据交换,8255A有多种操作方式,通用性较强,可为CPU与外设之间提供输入/输出通道。8255A和各端口具有中断控制逻辑,在外设与CPU之间可用中断方式进行信息交换,使用条件传输方式时可用“联络”线进行控制。在实验中,我们运用8255为CPU与外设之间提供输入输出输出通道来实现对走马灯花样变换的控制。走马灯驱动模块电路原理如图1所示。模块包括8个LED彩灯、两个74LS04、和两个个排阻。用LED可以观测在不同按键输入下,走马灯花样的变化效果。如图1所示我们利用软件输

3、入信号,通过8255端口扩展芯片和74LS04芯片,调节输出端口的电平变化,来控制共阳极的LED灯的亮与灭,实现走马灯花样变化。图1 走马灯驱动模块电路原理图五 试验设备1PC兼容机2Windows 98以上3MFID多功能微机实验平台(含PCI总线驱动板)4MFPCI98集成开发环境5面包板或外设功能模块板6安装或焊接工具六 元器件清单元器件清单如表1所示。序号名称数量174LS042片2RESPACK3排阻 81502只3LED8只4拨码开关1只5面包板1个6T型转接板1个7导线若干表1 实验元器件清单七 实验步骤7.1硬件连线根据图1的实验原电路图,走马灯电路结构电路接线如图2所示。图2

4、 走马灯电路结构电路接线图接线说明: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程序设计根据实验原理与实验电路,初

5、步写出程序的步骤,再绘制出完整的流程图,然后根据流程图编写汇编程序。流程图和程序见报告后的附录。7.4调试运行打开MF2KP微机实验集成开发环境,在“文件”菜单下粘贴自己编写的ASM文件进行调试与运行。八 实验现象与说明运行程序,通过键盘输入,输入数字18时8个LED灯,按照程序设定的方式进行花样变化,运行完一个周期后停止等待键盘的再次输入,输入不同的数字LED的变化花样不同,输入的不是数字也不是字母Q或q时,显示错误信息,等待键盘输入正确信息,当输入字母Q或q时退出程序。九 实验小结与心得体会附录一:程序流程图附录二:程序代码:;*; zmd.asm 走马灯(灯光变幻)程序 *; 容:用键盘

6、输入数字键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 endsdseg segment para public datamessage db press the number key from 1 to 8 and display various light- patterns!;提

7、示信息 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 ;初始化数字变量为0data1 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 dat

8、a4 db 01h,04h,10h,40h,02h,08h,20h,80hdata5 db 0c0h,30h,0ch,03h,0c0h,30h,0ch,03hdata6 db 03h,0ch,30h,0c0h,03h,0ch,30h,0c0hdata7 db 81h,42h,24h,18h,81h,42h,24h,18h data8 db 18h,24h,42h,81h,18h,24h,42h,81hdseg endscseg segment para public code assume ss:sseg,cs:cseg,ds:dsegm proc farstart: mov ax,dspus

9、h axmov ax,00hpush 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 进行键盘

10、输入判断 cmp al,q jz quit ;检测到q,退出 cmp al,Q jz quit ;检测到Q,退出 begin: call ledflash ;调用灯光变幻过程 jmp exutquit: ;灯LED全灭 mov dx,300h ;取8255的端口A的地址 mov al,00h ;使8255的PA0-PA7全为0 out dx,al ;使所有的灯LED全灭 mov ah,4ch ;DOS功能调用 int 21h ;返回DOSm endpdelay2 proc push cx push bx mov cx,0ffffhdl4: mov bx,0ffffhdl3: dec bx jn

11、z dl3 dec cx jnz dl4 pop bx pop cx retdelay2 endp ;检测键盘输入了字符,以便确定哪种闪烁方式ledflash procchoice1: cmp al,1 jne choice2 mov si,offset data1 ;置第一种灯光变幻组合 jmp herechoice2: cmp al,2 jne choice3 mov si,offset data2 ;置第二种灯光变幻组合 jmp herechoice3: cmp al,3 jne choice4 mov si,offset data3 ;置第三种灯光变幻组合 jmp herechoice

12、4: cmp al,4 jne choice5 mov si,offset data4 ;置第四种灯光变幻组合 jmp herechoice5: cmp al,5 jne choice6 mov si,offset data5 ;置第五种灯光变幻组合 jmp herechoice6: cmp al,6 jne choice7 mov si,offset data6 ;置第六种灯光变幻组合 jmp herechoice7: cmp al,7 jne choice0 mov si,offset data7 ;置第七种灯光变幻组合 jmp here choice8: cmp al,8 jne cho

13、ice0 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+bxpop bx mov dx,300h ;取8255的端口A的地址 out dx,al ;输出加电数据到端口A inc num ;改变数字变量的值 cmp num,09h je exitcall delay2jmp hereexit: mov num,0retledflash endpcseg ends end start9 / 9

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号