




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2009级学生微机原理课程设计微机原理课程设计报告书课题名称数字时钟的设计姓 名学 号0912401-14院、系、部物理与电信工程系专 业通信工程指导教师 2011年 6 月20日 一、 设计任务及要求1. 电子时钟具有二十四小时循环记时功能,走时要准。2. 显示格式为:时:分:秒。3. 利用8253作为定时器。 指导教师签名: 2011年 6 月 6 日 二、指导教师评语指导教师签名: 2011年 6 月 20 日 三、成绩验收盖章 2011年 6 月 20 日 数字时钟的设计一、 设计目的1. 熟练掌握8086/88教学系统的基本操作和调试程序的各种指令。2. 掌握8259中断控制器的工作原理和应用编程方法,练习编写中断程序的方法。3. 掌握8255的各种工作方式及其应用编程。4. 掌握8253定时/计数器的工作原理、工作方式及其应用编程。5. 熟悉编程及调试程序的方法。二、设计要求以8086CPU为核心,利用8259A中断控制器、8253定时/计数器、8255A接口芯片以及键盘和数码显示电路,设计一个电子时钟,由8253中断定时,小键盘控制电子时钟的启停及初始值的预置。电子时钟的显示格式HH:MM:SS由左到右分别为时、分、秒,最大记时59:59:59超过这个时间时分秒位都清零从00:00:00重新开始。三、设计思路此设计的电子时钟主要由显示模块、时钟控制模块和时钟运算模块三大部分组成。以8086微处理器作CPU,用8253做定时器产生时钟频率提供一个频率为10kHz的时钟信号,要求每隔10ms完成一次扫描键盘的工作。在写入控制字与计数初值后,每到10ms定时器就启动工作,即当计数器减到1时,输出端OUT0输出一个CLK周期的低电平,向CPU申请中断,当达到100次时,则输出端OUT1输出1s,向CPU申请中断,由8255控制一个数码管显示,当计数到60s时,则输出端OUT2向CPU申请中断,由另一数码管显示1min,同理由数码管显示1h.CPU处理,使数码管的显示发生变化。此设计由8259A中断控制器、8253定时/计数器、8255A接口芯片、LED数码显示管和两个按键组成。主要用8259A的IRQ7的中断服务程序完成秒、分、时的运算即计时功能,IRQ6的中断服务程序完成调时、调分功能。8253用来产生50ms的脉冲信号作为IRQ7的中断请求信号。按键KK1+和KK2+分别作为IRQ2和IRQ6的中断请求信号。按键KK1+启动/关闭对时功能。它决定是否屏蔽IRQ7和IRQ6中断源。8255A负责将内存里的时位和分位值输出到数码管。电子时钟的显示格式HH:MM:SS由左到右分别为时、分、秒,每百分之一秒对百分之一秒寄存器的内容加一,并依次对秒、分、小时寄存器的内容加一,六个数码管动态显示时、分、秒的当前值。最大记时59:59:59超过这个时间时分秒位都清零从00:00:00重新开始。四、电路及连线设计图1 硬件电路接线图五、程序设计5.1程序流程图8255、8253、8259初始化显示提示信息判断启动键的状态是“1”?开中断并调用中断处理程序开始计时调用显示程序显示系统计时结果开始YN 图2 主程序流程图时、分转化为十进制,存到内存单元中计算时、分的各位数值在TABLE中对应编码依次在61H段输出到LED显示结束开始图3 显示模块流程图计满60秒了吗?NNNNNN保护寄存器秒位加110秒位加1计数单元减1分位加1计满1秒了吗?计满10秒了吗?计满10分了吗?计满60分了吗?10分位加1将字符转换为段码时位加1计满10小时了吗?输出段码输出位码恢复寄存器位码右移1位中断返回10时位加1YYYYYY图4 电子时钟中断处理程序流程图5.2程序code segment assume cs:code,ds:code start: mov ax,cs mov ds,ax mov bp,0064h ;设置计数初值 jmp start1 portbit equ 0ff28h portseg equ 0ff29h start1: mov dx,0ff2bh mov al,10000001b out dx,al ;8255初始化 mov al,34h mov dx,0043h out dx,al ;8253写控制字 mov dx,0040h mov ax,10000d out dx,al mov al,ah out dx,al ;8253初始化 mov al,13h ;8259初始化 mov dx,0ff80h out dx,al ;ICW1初始化 mov al,08h mov dx,0ff81h out dx,al ;ICW2初始化 mov al,01h out dx,al ;ICW4初始化 in al,dx and al,0feh out dx,al ;OCW1打开非屏蔽位 push ds mov ax,0 mov ds,ax mov ax,offset intr mov ds:word ptr4*8,ax mov ax,cs mov ds:word ptr4*8+2,ax ;设置中断向量 pop ds ;主程序开始 ab: mov dx,0ff2ah in al,dx and al,1 cmp al,01h ;判断时钟是否启动 jz intr1 ;若启动,则开中断 call aab ;没启动,则转显示 cli ;关中断 jmp ab intr1: sti ;开中断 jmp ab ;检测时钟状态 ;初始界面显示程序aab: lea bx,TABLE lea di,BUFDA mov cl,11011111b ;位码next: mov dx,0ff28h mov al,cl out dx,al ;输出位码 mov al,di+06 ;取段码 xlat mov dx,0ff29h ;输出段码 out dx,al push cx mov cx,30hdelay1: loop delay1 ;软件延迟 pop cx cmp cl,11111110b ;判断是否扫完一遍 jz aaaa ;显示完一遍则返回 inc di ror cl,1 ;循环右移一位 jmp nextaaaa: ret ;中断处理程序intr proc near push si push ax ;保存寄存器的内容 dec bp ;计数单元减1 jnz display ;如未计到100,则直接转显示 mov di,offset BUFDA mov bp,0064h ;计数单元设置初值 mov al,di+05 inc al ;秒位加1 mov di+05,al cmp al,0ah ;是否引起进位 jnz display ;无进位则转显示 mov al,00 mov di+05,al mov al,di+04 inc al ;有进位,则本位清零,前一位加1 mov di+04,al cmp al,06 ;是否满60秒 jnz display ;否,则转显示 mov al,00 mov di+04,al mov al,di+03 inc al ;是则本位清零,而分位加1 mov di+03,al cmp al,0ah ;是否引起分位有进位 jnz display ;否,则转显示 mov al,00 mov di+03,al mov al,di+02 inc al mov di+02,al cmp al,06 ;是否满60分 jnz display ;否,则转显示 mov al,00 mov di+02,al mov al,di+01 inc al ;有进位,则本位清零,前一位加1 mov di+01,al cmp al,04 ;是否引起时位有进位 jnz display ;否,则转显示 mov al,00 mov di+01,al mov al,di inc al ;是则本位清零,前一位加1 mov si,al cmp al,02 ;是否满24小时 jnz display ;否,则转显示 mov al,00 mov di,al ;是则本位清零display: call displ ;调用显示程序 mov dx,0ff80h mov al,20h out dx,al ;手动结束中断 pop ax pop si iret intr endp ;被中断处理程序调用的显示程序displ proc near push dx push cx push bx push si mov cx,0006 ;显示位数 mov bx,offset TABLE mov si,offset BUFDA mov ah,11011111bdispl1:mov dx,portbit mov al,0ffh out dx,al ;关显示 push cx mov cx,0100hwait1: loop wait1 ;软件延时 mov dx,portseg mov al,si xlat ;转换 out dx,al ;输出段码 mov dx,portbit mov al,ah out dx,al ;输出位码 mov cx,0100hwait2: loop wait2 ;延时 pop cx ror ah,1 inc si loop displ1 pop si pop bx pop cx pop dx ret displ endp TABLE:db 3fh ;“0”的段码db 06h ;“1”的段码db 5bh ;“2”的段码db 4fh ;“3”的段码db 66h ;“4”的段码db 6dh ;“5”的段码db 7dh ;“6”的段码db 07h ;“7”的段码db 7fh ;“8”的段码db 6fh ;“9”的段码db 00h;db 76h ;“H”的段码db 79h ;“E”的段码db 38h ;“L”的段码db 38h ;“L”的段码db 5ch ;“o”的段码BUFDA:db0,2,5,9,5,5,11,12,13,14,15,16code ends end start六、设计总结经过两周努力,在指导老师和同学的帮助下,终于如期完成了该电子时钟的课程设计。当然在课程设计的过程中遇到了许多问题,但是经过查阅有关资料和向老师、同学请教后,还是一一解决了。首先,通过这次课程设计使使我在课堂中学到的东西充分的融入到实践当中。我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。其次,通过本次设计,我系统的了解了时钟的设计流程,尤其是硬、软件的设计方法,掌握了显示电路的基本功能及编程方法,掌握了显示电路的一般原理。开拓了思路,锻炼了实践动手能力,提高了分工协作能力和分析问题,解决问题的能力,达到了本次课程设计的目的。最后,通过该课程设计,我进一步的熟悉了可并行通信接口8255、计数器/定时器8253及中断控制器8259处理器程序的编程方法的编程原理和7段LED数码管显示器的工作原理,为以后独立的设计系统提供了丰富的实践经验。以前对于编程工具的使用还处于一知半解的状态上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个寄存器
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年元宇宙社交平台用户需求预测与发展瓶颈分析报告
- 2025年医院信息化建设电子病历系统优化与医疗信息化应用场景研究报告
- 艺术品数字化交易平台投资价值与风险评估报告
- 2025年医院信息化建设电子病历系统功能优化深度分析报告
- 2025年医院电子病历系统在医院信息化建设中的数据挖掘技术应用报告
- 农村金融服务创新与绿色金融:2025年可持续发展报告
- 文化与科技融合在数字艺术展览中的创新应用与发展趋势报告
- 装备制造业2025年创新型企业商业模式创新报告
- 北京市海淀区师达中学2025年八下英语期末联考模拟试题含答案
- 中国传统色讲解课件
- 读书分享交流会《从一到无穷大》课件
- 汉字的发展(英文版介绍)Chinese-character
- 土地利用现状分类代码表
- 华为“1+X”职业技能等级(网络系统建设与运维)中级考试题库(含答案)
- (完整版)生产车间地面画线标准
- 单位财务内控制度
- 有机硅化合物的基本性质
- “阿里巴巴”并购“饿了么”案例分析
- 口腔完整病历范文(合集27篇)
- 山东省病原微生物实验室及实验活动备案管理系统
- 小学道德与法治-被动物咬伤怎么办教学设计学情分析教材分析课后反思
评论
0/150
提交评论