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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(8086数字电子钟的设计 附程序代码文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

8086数字电子钟的设计 附程序代码文档格式.docx

1、图.七段数码管图1.2伟福实验台六位LED的电路图及寻址空间实验箱提供了6位八段数码LED显示电路,只要按地址输出相应数据,就可以实现对显示器的控制。将KEY/LED CS接到CS0上,则实验箱中八位段码输出地址为08004H,位码输出地址为08002H。实验箱提供了一个64的小键盘,将KEY/LED CS信号接到CS0上,则列扫描地址为08002H,行码地址为08001H。向列扫描码地址逐列输入低电平,然后从行码地址读回。如果有键按下,则相应行的值应为低,如果无键按下,由于上拉的作用,行码为高。这样就可以通过输出的列码和读取的行码来判断按下的是什么键。在判断有键按下后,要有一定的时延,防止键

2、盘抖动。2.硬件连接图2.1伟福实验台内部总线连接8253用定时器/计数器1,8253片选接CS1,地址为09000H,8253时钟源CLK1接分频电路的F/64输出,频器的Fin接4MHz时钟,8253的GATE1接VCC;8259中断INT0接8253的OUT1,片选接CS2,地址为0A000H。显示电路的KEY/LED CS 接CS0,地址为08000H。如下图:D.运行界面三、课程设计总结或结论四、参考文献 1 王保义, 张少敏 接口与通信. 北京-中国电力出版社, 20082 沈美明, 温冬婵 IBM-PC汇编语言程序设计. 清华大学出版社,第二版. 20023 陆红伟 微机原理实验

3、与课程设计指导书. 中国电力出版社, 2006.8附录(设计流程图、程序等)CONTROL EQU 09003H COUNT1 EQU 09001H IN_KEY EQU 08001H ; 键盘读入口 OUTBIT EQU 08002H ; 位控制口 OUTSEG EQU 08004H ; 段控制口 ICW1 EQU 00010011B ; 单片8259, 上升沿中断, 要写ICW4 ICW2 EQU 00100000B ; 中断号为20H ICW4 EQU 00000001B ; 工作在8086/88 方式 OCW1 EQU 11111110B ; 只响应INT0 中断 CS8259A EQ

4、U 0A000H ; 8259地址 CS8259B EQU 0A001HDATA SEGMENT CNT DB 0;闹铃显示 RHOUR DB 1 RMINUTE DB 0 HOUR DB 0 MINUTE DB 0 SECOND DB 0 NUM DB 0;判断闹铃 LEDBUF DB 6 DUP(?) ; 显示缓冲 RINGBUF DB 6 DUP(?) SETBUF DB 6 DUP(? LEDMAP: ; 八段管显示码 DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H DB 7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 71H

5、KEYTABLE: ; 键码定义 DB 16H, 15H, 14H, 0FFH DB 13H, 12H, 11H, 10H DB 0DH, 0CH, 0BH, 0AHDB 0EH, 03H, 06H, 09H DB 0FH, 02H, 05H, 08H DB 00H, 01H, 04H, 07H SET: DB 6DH, 79H, 07H, 01H, 00H, 00H;字符显示SET BELL: DB 7FH, 79H, 38H, 38H, 00H, 00H;字符显示BELLDATA ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATA DELAY PROC NEA

6、R PUSH AX ; 延时子程序 PUSH CX MOV AL, 0 MOV CX,AX LOOP $ POP CX POP AX RET DELAY ENDP DISPLAYLED PROC NEAR MOV CL, 6 ; 共6个八段管 MOV AH, 00100000B ; 从左边开始显示 DLOOP: MOV DX, OUTBIT MOV AL, 0 OUT DX,AL ; 关所有八段管 MOV AL, BX MOV DX, OUTSEG OUT DX,AL MOV DX, OUTBIT MOV AL, AH OUT DX, AL ; 显示一位八段管 PUSH AX MOV AH,

7、01H CALL DELAY SHR AH, 1 INC BX DEC CL JNZ DLOOP OUT DX,AL ; DISPLAYLED ENDP TESTKEY PROC NEAR 输出线置为0 MOV DX, IN_KEY IN AL, DX ; 读入键状态 NOT AL AND AL, 0FH ; 高四位不用 TESTKEY ENDP GETKEY PROC NEAR MOV CH, 00100000B MOV CL, 6 KLOOP: MOV AL, CH ; 找出键所在列 OUT DX, AL SHR CH, 1 IN AL, DX AND AL, 0FH JNE GOON_

8、; 该列有键入 JNZ KLOOP MOV CL, 0FFH ; 没有键按下, 返回 0FFH JMP EXIT1 GOON_: SHL CL, 2 ; 键值 = 列 * 4 +行 MOV CH, 4 LOOPC: TEST AL, 1 JNZ EXIT1 SHR AL, 1 INC CL DEC CH JNZ LOOPC EXIT1: MOV CH, 0 MOV BX, OFFSET KEYTABLE ADD BX, CX MOV AL, BX ; 取出键码 MOV BL, AL WAITRELEASE: 等键释放 MOV AH, 10 CALL TESTKEY JNE WAITRELEAS

9、E MOV AL, BL GETKEY ENDP IENTER PROC NEAR PUSH DX MOV NUM,0 INC SECOND MOV AL, SECOND CMP AL, 60 JNE J0 MOV SECOND, 0 INC MINUTE MOV AL, MINUTE MOV MINUTE, 0 INC HOUR MOV AL, HOUR CMP AL, 24 MOV HOUR, 0 J0: MOV AL,HOUR CMP AL, RHOUR JNE J1 INC NUM J1: MOV AL,MINUTE CMP AL, RMINUTE JNE J2 J2: CMP NUM

10、, 2 JNE EXIT MOV CNT, 0EH L33:MOV DX,0D000HOUT DX,AL MOV BX, OFFSET BELL CALL DISPLAYLED DEC CNT JNE L33 EXIT: MOV DX, CS8259A MOV AL, 20H ; 中断服务程序结束指令 POP DX IRET IENTER ENDP IINIT PROC MOV AL, ICW1 MOV DX, CS8259B MOV AL, ICW2 MOV AL, ICW4 MOV AL, OCW1 IINIT ENDP START PROC NEAR MOV AX, DATA MOV D

11、S, AX MOV NUM, 0 MOV LEDBUF, 03FH ; 显示 00.00.00 MOV LEDBUF+1, 03FH MOV LEDBUF+2, 03FH MOV LEDBUF+3, 03FH MOV LEDBUF+4, 03FH MOV LEDBUF+5, 03FH CLI ;关中断 MOV AX, 0 MOV AL, 76H; 01110110B ; 计数器1,16位,方式3,二进制 MOV DX, CONTROL MOV AX, 65500 MOV DX, COUNT1 计数器低字节 计数器高字节 MOV BX, 4*ICW2 ; 中断号 MOV AX, CODE SHL

12、 AX, 4 ; *16 ADD AX, OFFSET IENTER ;中断入口地址(段地址为0) MOV BX, AX INC BX INC BX MOV BX, AX ; 代码段地址为0 CALL IINIT STI ;开中断 LOOP2: MOV AH, 0 MOV CL, 10 DIV CL MOV CH, AH MOV BX, OFFSET LEDMAP ADD BX, AX MOV LEDBUF, AL MOV AL, CH OR AL, 80H MOV LEDBUF+1, AL MOV LEDBUF+2, AL OR AL, 80H MOV LEDBUF+3, AL JMP L3

13、 LOOP1: JMP LOOP2 L3: MOV LEDBUF+4, AL MOV LEDBUF+5, AL MOV BX, OFFSET LEDBUF D0: MOV BX, OFFSET LEDBUF CALL DISPLAYLED ; 显示 CALL TESTKEY ; 有键入? JE LOOP1 ; 无键入, 继续显示 CALL GETKEY ; 读入键码 显示键码 MOV AH,0 CMP AL,0AH JE SET0 CMP AL,0BH JE BELL01 CMP AL,0CH JE STOP1 CMP AL,0DH JE CLEAR1 JMP D0 STOP1: CLI ST

14、OP2: JE STOP2 CALL GETKEY CMP AL, 0CH JNE STOP2 STI CLEAR1: MOV HOUR,0 MOV MINUTE,0 MOV SECOND,0 SET0: MOV BX, OFFSET SET JE SET0 MOV SETBUF0,ALMOV BX, OFFSET LEDMAPADD BX, AXMOV AL, BXMOV LEDBUF, ALSET1:MOV BX, OFFSET LEDBUFCALL DISPLAYLEDCALL TESTKEYJE SET1CALL GETKEYAND AL, 0FHMOV AH, 0MOV SETBUF

15、1,ALMOV LEDBUF+1, ALJMP SET2BELL01:JMP BELL02SET2:JE SET2MOV SETBUF2,ALMOV LEDBUF+2, ALSET3:JE SET3MOV SETBUF3,ALMOV LEDBUF+3, ALJMP SET6BELL02:JMP BELL03SET6:JE SET6CMP AL,0AHJE TIMESETJMP D0TIMESET:MOV AL , SETBUF0MOV CL,10DMUL CLMOV BL,SETBUF1ADD AL,BLMOV HOUR,ALCMP HOUR,24JL LP1MOV HOUR ,0LP1:MO

16、V AL ,SETBUF2MOV BL ,SETBUF3MOV MINUTE ,ALCMP MINUTE ,60JL LP2MOV MINUTE ,0LP2:MOV SECOND, 0BELL03:MOV BX, OFFSET BELLCALL DISPLAYLED ;CALL TESTKEY ;JE BELL03 ;CALL GETKEY ;AND AL, 0FH ;MOV RINGBUF0,ALBELL1:JE BELL1 ;MOV RINGBUF1,ALBELL2:JE BELL2 ;MOV RINGBUF2,ALBELL3:JE BELL3 ;MOV RINGBUF3,ALBELL4:JE BELL4CMP AL,0BHJE BELLSETBELLSET:MOV NUM,0MOV AL , RINGBUF0MOV BL,RINGBUF1MOV RHOUR,ALCMP RHOUR,24JL LP3MOV RHOUR ,0LP3:MOV AL ,RINGBUF2MOV BL ,RINGBUF3MOV RMINUTE ,ALCMP RMINUTE ,60JL LP4MOV RMINUTE ,0LP4:START ENDP CODE ENDS END START

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1