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

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-2998870.html】到电脑端继续下载(重复下载不扣费)。

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

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(倒计时唐都试验箱.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

倒计时唐都试验箱.docx

1、倒计时唐都试验箱倒计时牌一、方案选择:1.1题目要求:显示距倒计时时刻还有多长时间(显示:时、分、秒)1.2总体初设方案和理由 1.2.1处理器芯片选择8086微处理器的主要特点:8086为16位微处理器,数据总线16位,地址总线20位,可寻址1MB存储空间,时钟频率为510MHz。8086 CPU的内部结构由执行单元EU(execution unit)和总线接口部件BIU(bus interface unit)两部分组成。我们最熟悉的微处理器就是8086,所以选择8086CPU。1.2.2通信接口芯片选择可编程并行通信接口8255,PA端口作为信号输入,PB端口做为数码管的位选信号输出端口,

2、PC端口作为数码管的片选信号输出端口。本系统设计以8086微处理器作为CPU, 8255做可编程并行接口显示时钟和键盘电路,接LED显示倒计时及小时、分钟、秒(各2位)和扩展调整键盘。系统一运行就从23时59分59秒开始计时,并在数码管上显示当前值,而且,可以用键盘设置当前时间。基本工作原理:每1秒对寄存器的内容减一,当减60次时,分减一,秒恢复到59;当分减60次时,时减一,分恢复到59;6个数码管动态显示时、分、秒的当前值二、硬件原理电路图的设计及分析:各部分电路的设计思想及功能特性及原理电路图:系统分为3个功能模块,分别为:主程序模块,小键盘控制模块,LED显示模块。 2.1主程序模块主

3、控模块是其核心模块,对8255进行初始化,扫描键盘根据按键值作相应的处理。主要由软件实现。它的主要功能是调用其它模块对系统工作进行协调,读小键盘输入键值并执行要做的工作,如图1图12.2小键盘模块小键盘模块送入主控模块的子功能模块。由软件和硬件实现,硬件上由小键盘和8255互连,将小键值由8255送入主控模块。软件上使用行扫描法获得键值并送回主控模块。本课题只考虑去抖动。执行一个约10ms的延时程序后再扫描键盘,若F0=1表示真正有键按下,从而消除了抖动影响,如图2图22.3 LED显示模块 显示模块是将显示缓冲区的数值送到LED显示的功能模块,显示缓冲区是由六个字节构成,分别保存时的高位和低

4、位,分的高位和低位,秒的高位和低位。硬件上由六个LED构成,软件上由扫描显示的方法实现,如图3。图3其中,由于实际应用中要求显示为十进制数,而在程序中处理的数据都为十六进制,因此在程序中要对显示缓冲区的数据进行十进制调整。在总的电路图中用8255并行通信接口的PC端口进行片选,位选由PB端口输出,根据如下段码表来设计 。 数字0123456789七段代码3FH06H5BH4FH66H6DH7DH07H7FH6FH表1三、程序设计与分析:各模块程序的设计、完整的程序框图:3.1设计流程图311主程序流程 显示时刻 功能键是否按下 进入时刻设置状态 确认键是否按下 N Y N YY Y图43.1.

5、2时间程序更改流程图 N Y N Y N Y N Y 时的个位为0 时的个位减1 N时的十位为0 时的个位赋3 时的十位赋2 RET 时的十位减1 时的个位赋9 Y N Y图53.1.3 键盘扫描程序流程图: 图63.2程序设计与分析:3.2.1各模块程序的设计(1)8255A初始化程序开始时对8255A进行初始化,PA、PB、PC组控制工作在方式0,PA端口为输入端口。PB、PC为输出端口。DATA SEGMENT LED DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H X DW ? Y DW ? Z DW ? DATA ENDS CODE S

6、EGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV DX,46H ;0100 0110 8255 控制口地址46hMOV AL,82H ;1000 0010 A方式 0输出 B方式 0输入 C输出OUT DX,AL ;向 8255写控制字 NEXT: MOV X,59 ;记录按键次数 MOV Y,59 MOV Z,23 LEA SI ,LED MOV AL,00010111B ;定时器 0方式 0 OUT 4EH,AL ;向 8253写控制字 MOV AL,255 ;计数初值为 1 MOV DX,48H ;计数器 0的端

7、口地址 OUT DX,AL REPEAT0:(2)显示程序模块根据方式控制字和连线可知,B口连接数码管的ADp进行段锁存,C口进行位锁存。显示程序如下:CONVER PROC MOV AX,X MOV CL,10 DIV CL ;按键次数除以10,商是次数的十位 存在AL中,余数是次数的各位,存在AH中 MOV BX,AX ;AH:BH AL:BL MOV AL,02H OUT 44H,AL ;向8255端口C的Pc0置1 使显示管 1工作 MOV BP,BX AND BP,0FFH ;清除余数,保留商 MOV AL,SI+BP ;使显示管显示相应的值 OUT 40H,AL ;将商的值显示 通

8、过PA CALL DELY MOV AL, 01H ;0000 0001 OUT 44H, AL ;点亮各位led 置8255的Pc1为0 XCHG BH,BL ;交换商和余数 MOV BP,BX AND BP,0FFH ;清除商,保留余数 MOV AL,SI+BP OUT 40H,AL ;将余数的值显示 通过PA CALL DELY MOV AX,Y MOV CL,10 DIV CL ;按键次数除以10,商是次数的十位,存在AL中,余数是次数的各位,存在AH中 MOV BX,AX ;AH.BH AL.BL MOV AL,20H OUT 44H, AL ;向8255端口C的Pc0置1 使显示管

9、1工作 MOV BP,BX AND BP,0FFH ;清除余数,保留商 MOV AL,SI+BP ;使显示管显示相应的值 OUT 40H,AL ;将商的值显示 通过PA CALL DELY MOV AL, 10H ;0000 0010 OUT 44H, AL ;点亮各位led 置8255的Pc1为0 XCHG BH,BL ;交换商和余数MOV BP,BX AND BP,0FFH ;清除商,保留余数 MOV AL,SI+BP OUT 40H,AL ;将余数的值显示 通过PA CALL DELY MOV AX,Z MOV CL,10 DIV CL ;按键次数除以10,商是次数的十位,存在AL中,余

10、数是次数的各位,存在AH中 MOV BX,AX ;AH.BH AL.BL MOV AL,80H OUT 44H, AL ;向8255端口C的Pc0置1 使显示管1工作 MOV BP,BX AND BP,0FFH ;清除余数,保留商 MOV AL,SI+BP ;使显示管显示相应的值 OUT 40H,AL ;将商的值显示通过PA CALL DELY MOV AL, 40H ;0100 0000 OUT 44H, AL ;点亮各位led,置8255的Pc1为0 XCHG BH,BL ;交换商和余数 MOV BP,BX AND BP,0FFH ;清除商,保留余数 MOV AL,SI+BPOUT 40H

11、,AL ;将余数的值显示 通过PA CALL DELY RET CONVER ENDP(3)延时程序模块控制一个循环程序循环以到达延时的目的。具体语句如下:DELY PROC PUSH CX MOV CX,1000 L: LOOP L POP CX RET DELY ENDP 3.3 程序代码:DATA SEGMENT LED DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H X DW ? Y DW ? Z DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA M

12、OV DS,AX MOV DX,46H ;0100 0110 8255 控制口地址46hMOV AL,82H ;1000 0010 A方式 0输出 B方式 0输入 C输出OUT DX,AL ;向 8255写控制字 NEXT: MOV X,59 ;记录按键次数 MOV Y,59MOV Z,23 LEA SI ,LED MOV AL,00010111B ;定时器 0方式 0 OUT 4EH,AL ;向 8253写控制字 MOV AL,255 ;计数初值为 1 MOV DX,48H ;计数器 0的端口地址 OUT DX,AL REPEAT0: REPEAT1: CALL CONVER ;显示子程序

13、MOV DX,42H IN AL,DX ;将 PB中的值输入到 AL PB的值取决于 PB7 CMP AL,0FEH JZ NEXT TEST AL,80H ;判断计数是否结束 TEST相与但不改变相应的值 JNZ REPEAT1 REPEAT2: CALL CONVER MOV DX,42H IN AL,DX CMP AL,7EH JZ NEXT TEST AL,80H JZ REPEAT2 DEC X ;计数结束 ,按键次数减 1 CMP X,0 JNZ NEXT1 MOV X,59 DEC Y NEXT1: CMP Y,0 JNZ NEXT2 MOV Y,59DEC Z NEXT2: C

14、MP Z,0 JNZ NEXT3 MOV Z,23 NEXT3: CALL CONVER ;显示子程序 JMP REPEAT0 ;重新初始化定时器,为下一次按键准备CONVER PROC MOV AX,X MOV CL,10 DIV CL ;按键次数除以10,商是次数的十位 存在AL中,余数是次数的各位,存在AH中 MOV BX,AX ;AH:BH AL:BL MOV AL,02H OUT 44H,AL ;向8255端口C的Pc0置1 使显示管 1工作 MOV BP,BX AND BP,0FFH ;清除余数,保留商 MOV AL,SI+BP ;使显示管显示相应的值 OUT 40H,AL ;将商

15、的值显示 通过PA CALL DELY MOV AL, 01H ;0000 0001 OUT 44H, AL ;点亮各位led 置8255的Pc1为0 XCHG BH,BL ;交换商和余数 MOV BP,BX AND BP,0FFH ;清除商,保留余数 MOV AL,SI+BP OUT 40H,AL ;将余数的值显示 通过PA CALL DELY MOV AX,Y MOV CL,10 DIV CL ;按键次数除以10,商是次数的十位,存在AL中,余数是次数的各位,存在AH中 MOV BX,AX ;AH.BH AL.BL MOV AL,20H OUT 44H, AL ;向8255端口C的Pc0置

16、1 使显示管1工作 MOV BP,BX AND BP,0FFH ;清除余数,保留商 MOV AL,SI+BP ;使显示管显示相应的值 OUT 40H,AL ;将商的值显示 通过PA CALL DELY MOV AL, 10H ;0000 0010 OUT 44H, AL ;点亮各位led 置8255的Pc1为0 XCHG BH,BL ;交换商和余数MOV BP,BX AND BP,0FFH ;清除商,保留余数 MOV AL,SI+BP OUT 40H,AL ;将余数的值显示 通过PA CALL DELY MOV AX,Z MOV CL,10 DIV CL ;按键次数除以10,商是次数的十位,存

17、在AL中,余数是次数的各位,存在AH中 MOV BX,AX ;AH.BH AL.BL MOV AL,80H OUT 44H, AL ;向8255端口C的Pc0置1 使显示管1工作 MOV BP,BX AND BP,0FFH ;清除余数,保留商 MOV AL,SI+BP ;使显示管显示相应的值 OUT 40H,AL ;将商的值显示通过PA CALL DELY MOV AL, 40H ;0100 0000 OUT 44H, AL ;点亮各位led,置8255的Pc1为0 XCHG BH,BL ;交换商和余数 MOV BP,BX AND BP,0FFH ;清除商,保留余数 MOV AL,SI+BPO

18、UT 40H,AL ;将余数的值显示 通过PA CALL DELY RET CONVER ENDP DELY PROC PUSH CX MOV CX,1000 L: LOOP L POP CX RET DELY ENDP CODE ENDS END START四、总电路图:图7五、系统评价: 微机原理和接口技术是一门实践性强的学科,其中很多的原理、规则、现象等仅仅靠学习教科书是无法完全掌握的,必须通过实践才能比较直观和深刻的理解。在进行课程设计的过程中,让我们体验分析问题、提出解决方案、通过编程等手段实现解决方案、不断调试最终达到设计要求的全过程,从而帮助我们系统地掌握微机原理的接口技术的相关

19、知识,达到将知识融会贯通的目的。本次设计的基于单片的倒计时器相较传统机械式倒计时器具有可以灵活可调、性价比高等优点,有在现实生活中得到广泛应用的发展潜力。用8086,8255,8253等芯片,工作性能稳定,具有很好的实用性。六、心得体会:微机原理与接口技术一门很有些意义的课程。从最初的汇编到组成原理,到现在的微机原理与接口,一步一步的学习,让我学到更多,对计算机的最底层有了更深一步的了解。在做这个课程设计时,比想象的更加困难些,虽然通过许多途径找到了相关的资料,但是实现着实不简单。对于我来说编程是一个比较困难的事情,所以做这个课程设计确实很纠结。 不过做完这个课程设计,我学到了很多,在编程方面

20、也有了一定的提升。这门课程设计必须理论和实践相结合。整个的设计过程中,要充分利用软件工程中的模块化设计思想,这样使设计减少了许多繁杂的问题,使程序看起来更加明了,不易混乱。任何事情不可能一下子完成,程序的实现更是要一步一步来完成,急于求成,很大程度上会增加软件开发的难度,造成开发过程中不必要的麻烦。只要坚持去做,努力去做,就会有收获。我在进步,也会继续进步。在经过那段设计困难时期后,经过查阅大量的参考书籍,同学之间不断的探讨以及老师的细心讲解,及时的指导后,设计的思路终于有了眉目。接下来就是了解各种芯片的功能,然后画出设计草图,分析。虽然最终出来的结果并不是十分完整,但毕竟是辛苦劳动的结果,我

21、仍然感到欣慰。课程设计结束了,但期间同学之间的合作和老师的耐心指导,让我体会很深,在此我要感谢同学以及指导老师的帮助。这次课程设计,给了我们将学过的理论知识付诸实践的机会,让我发现,理论和实践其实确实是不一样的。通过编写程序,增加了学习的积极性和趣味性。通过课程实践,巩固加深对课堂教学内容的理解,提高我们运用汇编语言进行程序设计和动态调试程序的能力,培养同学克服困难的毅力和精神。七、参考文献:1温冬蝉沈美明IBM-PC汇编程序设计北京:清华大学出版社,2002.32戴梅萼史嘉权微型计算机接口及应用(第4版)北京:清华大学出版社,2008.33沈美明IBM-PC汇编语言程序设计例题习题集(第1版 )清华大学出版社,1991.64朱世鸿 微机系统和接口应用技术清华大学出版社(第1版),2006.9

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2