倒计时(唐都试验箱)(共17页)_第1页
倒计时(唐都试验箱)(共17页)_第2页
倒计时(唐都试验箱)(共17页)_第3页
倒计时(唐都试验箱)(共17页)_第4页
倒计时(唐都试验箱)(共17页)_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、倒计时牌方案(fng n)选择:1.1题目(tm)要求:显示(xinsh)距倒计时时刻还有多长时间(显示:时、分、秒)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、序模块主控模块(m kui)是其核心模块,对8255进行初始化,扫描键盘根据按键值作相应的处理。主要(zhyo)由软件实现。它的主要功能是调用其它模块对系统工作进行协调,读小键盘输入键值并执行要做的工作,如图1图12.2小键盘模块(m kui)小键盘模块送入主控模块的子功能模块。由软件和硬件实现,硬件上由小键盘和8255互连,将小键值由8255送入主控模块。软件上使用行扫描法获得键值并送回主控模块。本课题只考虑去抖动。执行一个约10ms的延时程序后再扫描键盘,若F0=1表示真正有键按下,从而消除了抖动影响,如图2图22.3 LED显示模块 显示模块是将显示缓冲区的数值送到LED显示的功能模块,

4、显示缓冲区是由六个字节构成,分别保存时的高位和低位,分的高位和低位,秒的高位和低位。硬件上由六个LED构成,软件上由扫描显示的方法实现,如图3。图3其中,由于实际应用中要求显示为十进制数,而在程序中处理的数据都为十六进制,因此在程序中要对显示缓冲区的数据进行十进制调整。在总的电路图中用8255并行通信接口的PC端口进行片选,位选由PB端口输出,根据如下(rxi)段码表来设计 。 数字0123456789七段代码3FH06H5BH4FH66H6DH7DH07H7FH6FH表1程序设计与分析:各模块(m kui)程序的设计、完整的程序框图:3.1设计(shj)流程图311主程序流程 开 始 对82

5、59初始化 填中断向量表 初始化8253 、 8255 显示时刻 功能键是否按下 N Y 进入时刻设置状态 N 确认键是否按下 YY Y图43.1.2时间程序(chngx)更改流程图开始 秒的个位为0 秒的个位减1 N 秒的个位赋9 Y RET 秒的十位减1秒的十位为0为0 N 秒的十位赋5 Y N 分的个位减1分的个位为0 RET分的个位赋9 Y N 分的十位减1分的十位为0 RET Y 分的十位赋5 时的个位为0 N 时的个位减1 Y 时的十位为0 N 时的十位减1 Y 时的个位赋9 时的个位赋3 RET 时的十位赋2图53.1.3 键盘扫描(somio)程序流程图: 图63.2程序设计(

6、chn x sh j)与分析:3.2.1各模块程序(chngx)的设计(1)8255A初始化程序(chngx)开始时对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 SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV DX,46H ;0100 0110 8255 控制口

7、地址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的端口地址 OUT DX,AL REPEAT0:(2)显示(xinsh)程序模块根据方式控制字和连线可知,B口连接数码管的ADp进行段锁存,C口进行位锁存。显示(xinsh)程序如下

8、:CONVER PROC MOV AX,X MOV CL,10 DIV CL ;按键(n jin)次数除以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 ;将商的值显示 通过PA CALL DELY MOV AL, 01H ;0000 0001 OUT 44H, AL ;点亮各位led 置8255的Pc1为

9、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,商是次数的十位,存在(cnzi)AL中,余数是次数的各位,存在AH中 MOV BX,AX ;AH.BH AL.BL MOV AL,20H OUT 44H, AL ;向8255端口C的Pc0置1 使显示管1工作(gngzu) MOV BP,BX AND BP,0FFH ;清除余数(ysh),保留商 MOV AL,SI+BP ;

10、使显示管显示相应的值 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中,余数是次数的各位,存在AH中 MOV BX,AX ;AH.BH AL.BL MOV AL,80H OU

11、T 44H, AL ;向8255端口C的Pc0置1 使显示管1工作 MOV BP,BX AND BP,0FFH ;清除余数,保留商 MOV AL,SI+BP ;使显示(xinsh)管显示相应的值 OUT 40H,AL ;将商的值显示(xinsh)通过PA CALL DELY MOV AL, 40H ;0100 0000 OUT 44H, AL ;点亮各位led,置8255的Pc1为0 XCHG BH,BL ;交换(jiohun)商和余数 MOV BP,BX AND BP,0FFH ;清除商,保留余数 MOV AL,SI+BPOUT 40H,AL ;将余数的值显示 通过PA CALL DELY

12、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 MOV DS,AX MOV DX,46H ;0100 01

13、10 8255 控制(kngzh)口地址46hMOV AL,82H ;1000 0010 A方式(fngsh) 0输出 B方式 0输入 C输出OUT DX,AL ;向 8255写控制(kngzh)字 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 ;显示子程序 MOV DX,

14、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: CMP Z,0

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

16、OUT 40H,AL ;将商的值显示 通过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

17、;向8255端口C的Pc0置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 ;按键次数

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

19、AND BP,0FFH ;清除商,保留余数 MOV AL,SI+BPOUT 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系统(xtng)评价: 微机原理和接口技术是一门实践性强的学科,其中很多的原理、规则、现象等仅仅靠学习教科书是无法完全掌握的,必须通过实践才能比较直观和深刻的理解。在进行课程设计的过程中,让我们体验分析问题、提出(t ch)解决方案、通过编程等手段实现解决

20、方案、不断调试最终达到设计要求的全过程,从而帮助我们系统地掌握微机原理的接口技术的相关知识,达到将知识融会贯通的目的。本次设计的基于单片的倒计时器相较传统机械式倒计时器具有可以灵活可调、性价比高等优点,有在现实生活中得到广泛应用的发展潜力。用8086,8255,8253等芯片,工作性能稳定,具有很好的实用性。心得体会:微机原理与接口技术一门(y mn)很有些意义的课程。从最初的汇编到组成原理,到现在的微机原理与接口,一步一步的学习,让我学到更多,对计算机的最底层有了更深一步的了解。在做这个课程设计时,比想象的更加困难些,虽然通过许多途径(tjng)找到了相关的资料,但是实现着实不简单。对于我来说编程是一个比较困难的事情,所以做这个课程设计确实很纠结。 不过做完这个课程设计,我学到了很多,在编程方面也有了一定的提升。这门课程设计必须理论和实践相结合。整个的设计过程中,要充分利用软件工程中的模块化设计思想,这样使设计减少了许多繁杂的问题,使程序看起来更加明了,不易混乱。任何事情不可能一下子完成,程序的实现更是要一步一步来完成,急于求成,很大程度上会增加软件开发的难度,造成开发过程中不必要的麻烦。只要坚持去做,努力去做,就会有收获。我在进步,也会继续进步。在经

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论