ImageVerifierCode 换一换
格式:DOC , 页数:19 ,大小:279.01KB ,
资源ID:4598986      下载积分:8 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4598986.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(微原课设报告-(开关控制霓虹灯状态).doc)为本站上传会员【快乐****生活】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

微原课设报告-(开关控制霓虹灯状态).doc

1、 微机原理及接口技术课程设计报告 设计题目:开关控制霓虹灯状态 姓名: 班级: 学号: 同组人: 时间: 内容摘要: 课程设计内容为开关控制霓虹灯的状态显示,主要包括8255及8254芯片的使用,源程序代码的编辑以及硬件连接图的绘制和硬件实验箱的演示。 目录 1:设计任务及要求 2:小组成员及分工 3:硬件电路设计 4:软件编程 5:程序运行结果 6:设计过程出现的问题及解决方法 7:设计总结 8:程序清单 9:参考文献 一:设计任务及要求

2、 设计霓虹灯闪烁控制系统,使外设的红、黄、绿三种颜色的发光二极管,在开关的控制下,按照不同规律闪烁。 (1)要求发光二极管的亮、灭变化有一定的规律; (2)发光二极管变化规律要有多种状态。 二:小组成员及分工 1:小组成员: 2:成员分工 软件部分 硬件部分 三:硬件电路设计 8255芯片介绍 8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。 其各口功能可由软件选择,使用灵活,通用性强。8255可作为单片机与多种外设连接时的中间接口电路。   8255作为

3、主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口A、B、C口。由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部 分、控制部分。   1)与CPU连接部分    根据定义,8255能并行传送8位数据,所以其数据线为8根D0~D7。由于8255具有3个通道A、B、C,所以只要两根地址线就能寻址A、B、C口及控制寄存器,故地址线为两根A0~A1。此外CPU要对8255进行读、写与片选操作,所以控制线为片选、复位、读、写信号。各信号的引脚编号如下:    (1)数据总线D

4、B:编号为D0~D7,用于8255与CPU传送8位数据。    (2)地址总线AB:编号为A0~A1,用于选择A、B、C口与控制寄存器。    (3)控制总线CB:片选信号、复位信号RST、写信号、读信号。当CPU要对8255进行读、写操作时,必须先向8255发片选信号选中8255芯片,然后发读信号或写信号对8255进行读或写数据的操作。    2)与外设接口部分   根据定义,8255有3个通道A、B、C与外设连接,每个通道又有8根线与外设连接,所以8255可以用24根线与外设连接,若进行开关量控制,则8255可同时控制24路开关。各通道的引脚编号如下:    (1)A口:编号为PA

5、0~PA7,用于8255向外设输入输出8位并行数据。    (2)B口:编号为PB0~PB7,用于8255向外设输入输出8位并行数据。    (3)C口:编号为PC0~PC7,用于8255向外设输入输出8位并行数据,当8255工作于应答I/O方式时,C口用于应答信号的通信。    3)控制器   8255将3个通道分为两组,即PA0~PA7与PC4~PC7组成A组,PB0~PB7与PC0~PC3组成B组。如图7.5所示,相应的控制器也分为A组控制器与B组控制器,各组控制器的作用如下:    (1)A组控制器:控制A口与上C口的输入与输出。    (2)B组控制器:控制B口与下C口的输

6、入与输出。 8254芯片介绍 8254 芯片是一款使用十分广泛的可编程定时,计数芯片,其主要功能是定时和计数的功能。我们的微机内的动态存储器刷新电路,系统日时钟的技术以及发声系统的声源都是由8254芯片来完成的。 8254的内部结构    8254芯片主要由四部分组成:    1 数据总线缓冲器    数据总线缓冲器是一个三态、双向8位寄存器主要作用是与cpu进行数据交换,8位数据线D7~D0与CPU的系统数据总线连接,构成CPU和8254之间信息传送的通道,CPU通过数据总线缓冲器向8254写入控制命令、计数初始值或读取计数值。    2 读写逻辑    读写逻辑是芯

7、片的控制部分,编程人员通过控制信号的选择来选择芯片的工作方式。读/写控制逻辑用来接收CPU系统总线的读、写控制信号和端口选择信号,用于控制8254内部寄存器的读/写操作。    3 控制字寄存器   控制寄存器是一个只能写不能读的8位寄存器,系统通过指令将控制字写入控制寄存器,设定8254的不同工作方式。    4 计数器   8254内部有三个结构完全相同而又相互独立的16位减“1”计数器,每个计数器有六种工作方式,各自可按照编程设定的方式工作。 8254芯片的工作方式:    8254芯片共有六种工作方式,分别对应与六种不同的用途。    (1)方式0:计数到0结束输出正跃变信

8、号方式。    (2)方式1:硬件可重触发单稳方式。    (3)方式2:频率发生器方式。    (4)方式3:方波发生器。    (5)方式4:软件触发选通方式。    (6)方式5:硬件触发选通方式。 硬件连接图: 四:软件编程 1:软件流程图 开始 显示提示信息 设置8254控制字 设置8255控制字设置为90H 有键按下? 工作方式1:从左到右同色亮0.25秒, 工作方式2:从右向左依次亮0.25:秒, 工作方式3:从中间依次向两边亮0.25秒 工作方式4:左边三个一起亮0.25秒,然后右边三个一起亮0.25秒, 工作方式5:六个LED一

9、起亮0.25秒,然后熄灭0.25秒, 结束 N Y K3拨到1 K4拨到1 K5拨到1 K6拨到1 K7拨到1 当开关拨到0,状态延时四次停止 2:软件源程序: DATA SEGMENT ;数据段 IOPORT EQU 0D880H-280H ;PCI外设I/O基地址 IO8255K EQU IOPORT+283H ;定义8255控制端口的地址 IO8255A

10、EQU IOPORT+280H ;定义8255A端口地址 IO8255B EQU IOPORT+281H ;定义8255B端口地址 IO8255C EQU IOPORT+282H ;定义8255C端口地址 IO8254K EQU IOPORT+28BH ;定义8254控制端口地址 IO82542 EQU IOPORT+28AH

11、 ;定义8254A计数器2端口地址 IO82540 EQU IOPORT+288H ;定义8254A计数器0端口地址 MESS DB 'ENTER ANY KEY CAN EXIT TO DOS!',0DH,0AH,'$' ;定义提示信息 DATA ENDS ;数据段结束 STACK SEGMENT STACK ;堆栈段 STA DW

12、 1000 DUP(?) ;预留1000字节的存储空间 TOP EQU LENGTH STA ;将堆栈STA的长度付给TOP作为栈顶地址 STACK ENDS ;堆栈段结束 CODE SEGMENT ;代码段 ASSUME CS:CODE,DS:DATA,SS:STACK ;段分配 START: M

13、OV AX,DATA ;初始化 MOV DS,AX ;将寄存器AX中的地址给DS作为段基地 MOV AH,09H ;9号功能调用 MOV DX,OFFSET MESS ;显示提示信息 INT 21H MOV DX ,IO8254K ;设置8254

14、控制字,计数器0,方式3 MOV AL,36H OUT DX,AL ;输出AL中的信息00110110 MOV DX, IO82540 ;设置闪烁频率 MOV AX, 50000 ;设定初始值50000,输出时钟周期50ms OUT

15、DX, AL ;8254输出50ms的方波信号 NOP ;空操作 NOP ;空操作 MOV AL, AH ;将AX寄存器的AH高8位给AL低八位 OUT DX, AL ;输出高8位信息

16、 MOV DX, IO8255K ;设置8255控制字 MOV AL, 90H ;控制字为10010000定义ABC端口,A口工作方式0输入,B口方式0输出C口输出,B口控制数码管C口控制灯 OUT DX, AL ;输出控制字10010000 LLL: MOV AH, 01H ;有键按下则退出

17、 INT 16H ;显示提示信息 JNZ QUIT ;结果为0跳到QUIT程序 KAIGUAN: MOV DX,IO8255A ;开关控制 IN AL,DX JIANCE: TEST AL,80H

18、 ;检测是否T1状态 JNZ T1 TEST AL,40H ;检测是否T2状态 JNZ T2 TEST AL,20H ;检测是否T3状态 JNZ T3 TEST AL,10H ;检测是否T4状态 JNZ T4

19、 TEST AL,08H ;检测是否T5状态 JNZ T5 JMP KAIGUAN ;转到开关检测状态 T1: MOV CX, 0004H ;将4付给CX寄存器,每种工作方式循环4次 T11: MOV DX, IO8255B ;8255B口地址给DX寄存器 MOV AL, 06H

20、 ;将00000110付给AL OUT DX, AL ;输出00000110,高电平点亮灯 MOV DX, IO8255C ;8255C口地址给DX寄存器 MOV AL, 24H ;将00100100付给AL, OUT

21、 DX, AL ;输出001000100 CALL DELAY ;调用延时程序,相邻灯闪所需要的时间0.25秒 MOV AL, 12H ;将00010010付给AL, 相同颜色的灯一次点亮 OUT DX, AL ;输出00010010 CALL DELAY ;调用延时程序,相邻灯闪所需要的时间0.25秒

22、 MOV AL, 09H ;将00001001付给AL OUT DX, AL ;输出00001001 CALL DELAY ;调用延时程序 LOOP T11 ;循环T11状态, MOV DX, IO8255B

23、 ;8255B口地址给DX寄存器 MOV AL, 00H ;所有灯灭 OUT DX, AL ;输出01011011,显示1 MOV DX, IO8255C ;8255C口地址给DX寄存器 MOV AL, 00H ;所有灯灭 OUT

24、 DX, AL JMP KAIGUAN ;转到检测状态 T2: MOV CX, 0004H ;将4付给CX寄存器,每种工作方式循环4次 T22: MOV DX, IO8255B ;8255B口地址给DX寄存器 MOV AL, 5BH ;将01011011付给AL, OUT DX, AL

25、 ;输出01011011,显示1 MOV DX, IO8255C ;8255C口地址给DX寄存器 PUSH CX ;压入CX寄存器 MOV CX, 0006H ;依次点亮六个灯 MOV AL, 01H ;将00000

26、001付给AL, T: OUT DX, AL ;输出00000001 PUSH AX ;把AX中的内容压入堆栈 CALL DELAY ;调用延时程序 POP AX ;弹出AX寄存器 SHL AL,1

27、 ;将AL中信息左移位,第二次00000010,一次左移 LOOP T ;AL中的信息不为0就继续循环T POP CX ;弹出CX寄存器 LOOP T22 ;循环T22状态, MOV DX, IO8255B ;8255B口地址给DX寄存器

28、 MOV AL, 00H OUT DX, AL ;所有灯灭 MOV DX, IO8255C ;8255C口地址给DX寄存器 MOV AL, 00H OUT DX, AL ;所有灯灭 JMP KAIGU

29、AN ;转到检测状态 T3: MOV CX, 0004H ;将4付给CX寄存器,循环4次 T33: MOV DX, IO8255B ;8255B口地址给DX寄存器 MOV AL, 4FH ;将01001111付给AL OUT DX, AL ;输出

30、01001111 MOV DX, IO8255C ;8255C口地址给DX寄存器 MOV AL, 21H ;将00100001付给AL 由中间向两边 OUT DX, AL ;输出00100001 CALL DELAY ;调用延时程序 MOV AL,1

31、2H ;将00010010付给AL OUT DX,AL ;输出00010010 CALL DELAY ;调用延时程序 MOV AL, 0CH ;将00001100付给AL OUT DX, AL ;输出

32、00001100 CALL DELAY ;调用延时程序 MOV AL, 00H ;将00000000付给AL OUT DX, AL ;输出00000000 CALL DELAY ;调用延时程序 MOV AL, 0CH

33、 ;将00001100付给A OUT DX, AL ;输出00001100 CALL DELAY ;调用延时程序 MOV AL, 21H ;将00100001付给AL OUT DX, AL ;输出0010000

34、1 CALL DELAY ;调用延时程序 LOOP T33 ;循环T33状态, MOV DX, IO8255B ;8255B口地址给DX寄存器 MOV AL, 00H OUT DX, AL ;所有灯灭

35、MOV DX, IO8255C ;8255C口地址给DX寄存器 MOV AL, 00H OUT DX, AL ;所有灯灭 JMP KAIGUAN ;转到检测状态 T4: MOV CX, 0004H ;循环T4状态,直到CX为0即循环4次 T44: MOV DX, IO8255B

36、 ;8255B口地址给DX寄存器 MOV AL, 66H ;将01100110付给AL OUT DX, AL ;输出01100110 MOV DX, IO8255C ;8255C口地址给DX寄存器, 三个三个亮 MOV AL, 07H ;

37、将00000111付给AL OUT DX, AL ;输出00000111 CALL DELAY ;调用延时程序 MOV AL, 38H ;将00111000付给AL OUT DX, AL ;输出00111000 C

38、ALL DELAY ;调用延时程序 LOOP T44 ;循环T44状态 MOV DX, IO8255B ;8255B口地址给DX寄存器 MOV AL, 00H OUT DX, AL ;所有灯灭 MOV DX

39、 IO8255C ;8255C口地址给DX寄存器 MOV AL, 00H OUT DX, AL ;所有灯灭 JMP KAIGUAN ;转到检测状态 T5: MOV CX, 0004H ;循环T5状态,直到CX为0即循环4次 T55: MOV DX, IO8255B

40、 ;8255B口地址给DX寄存器 MOV AL, 6DH ;将01101011付给AL OUT DX, AL ;输出01101011 MOV DX, IO8255C ;8255C口地址给DX寄存器,六个灯同时闪烁 MOV AL, 3FH ;将00111111付给AL

41、 OUT DX, AL ;输出00111111 CALL DELAY ;调用延时程序 MOV AL, 00H ;所有灯灭 OUT DX, AL CALL DELAY ;调用延时程序 LOOP T55

42、 ;循环T55状态 MOV DX, IO8255B ;8255B口地址给DX寄存器 MOV AL, 00H OUT DX, AL ;所有灯灭 MOV DX, IO8255C ;8255C口地址给DX寄存器 MOV AL, 00H

43、 OUT DX, AL ;所有灯灭 JMP KAIGUAN ;转到检测状态 QUIT: MOV AH, 4CH ;返回DOS INT 21H DELAY PROC NEAR ;延时 PUSH DX

44、 ;将DX中的内容压入堆栈 MOV DX, IO8254K ;8254设置控制字 MOV AL, 90H ;将10010000付给AL,计数器2只读写低字节工作在方式2,采用二进制计数 OUT DX, AL ;输出10010000 MOV DX, IO82542 ;8254计

45、数器2地址给DX寄存器 MOV AL, 5 ;将5付给AL, 5个50ms的方波信号即闪烁间隔0.25秒 OUT DX, AL ;每五个周期记一次即输出0.25秒周期的方波信号 MOV DX, IO8255A ;8255A口地址给DX寄存器 A1: IN AL, DX ;将8254中的信号送到8255的A端口 AND AL, 01H

46、 ;将AL中的信息与1想与, JZ A1 ;结果为0跳到A1继续读入A口输入信号,不为0则继续延时 POP DX ;弹出DX寄存器 RET ;段内子程序返回 DELAY ENDP ;延时程序结束

47、 CODE ENDS ;数据段结束 END START ;整个程序结束 五:程序运行结果 六:设计过程出现的问题及解决方法 在课程设计过程中,开始编辑程序代码时,由于分块实现功能。所有组合时出现了衔接的问题,由于软件与硬件的衔接,开始时霓虹灯的闪烁状态并不符合一定的规律,甚至出现了杂乱现象,通过检验代码和检查硬件演示实验箱,检查接线的顺序解决了灯的闪烁规律,由于用开关控制霓虹灯的闪烁

48、状态,演示时,开关拨动一下,能够显示状态并且能够按照设定的规律闪烁,但是当开关关闭后,灯还是不停地闪烁,并且拨动其他开关时,状态也不会发生变化,数码管显示的状态次数也不变,通过检查发现代码段出现了问题,缺少了控制代码。由于我们开始用的延时程序是软件延时,没有用8254,后来,我们选择用8254芯片进行延时,上机调试时,遇到了一个问题,就是第二种LED闪烁状态显示不对,且数码管有个状态显示不对,经过检查,发现数码管显示问题是因为那个数字段代码写错了,但是第二个状态的LED闪烁规律还有问题,经过仔细检查发现是因为我们在利用那个左移循环时,然后调用子程序,其中对AX没有保护,导致结果不对,然后加了一

49、对PUSH和POP入栈保护和出栈保护。由于霓虹灯的闪烁延时开始较长,每个状态在开关拨到0状态时很长时间才停止,开始以为程序有问题,状态不能停止,后来发现是延时太长,缩短了延时周期后,闪烁延迟周期及开关关闭后停止的时间变短,每个状态变得更加明显。 七:设计总结 这次课程设计过程中有不少挑战,对于对理论知识尚不能充分领会的,开始实际地运用知识来完成任务,对于只会走马看花的读程序的,要实际的编辑一段程序代码,并且要实现一些功能,但是,正是这样一次机会才能使我们认识我们认识到我们所学的知识的用处,认识的脚踏实地的重要,我们可以进一步加强对所学芯片的认识和运用。本次课题中用到了8255.、8254、

50、数码管、LED灯等,初步熟练地掌握了通过汇编语言来使用这些硬件获得特定的功能,熟悉了微机系统的硬件开发工具的使用方法 ,微机系统硬件设计的方法、原理、设计步骤,事实求是和严肃认真的工作态度, 实际动手能力, 培养了在实际的工程设计中查阅资料,撰写设计报告表达设计思想和结果的能力。经过这次课设,我们更加深刻的理解了出栈和入栈保护,最重要的是,通过课设,使我们意识到对于程序,原本看起来容易的事情但是真正到了让自己独立写程序时是困难多多的,作为一个学生不能眼高手低,应该扎扎实实的从基础做起,认真学习基础知识,打好基础,多学多练,日积月累,多写程序,编程能力才能有所提高,课设是对学习的知识加以实际应用

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

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

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

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

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

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

客服