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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(惠州学院微机报告讲解.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

惠州学院微机报告讲解.docx

1、惠州学院微机报告讲解惠州学院计算机科学系课程设计(综合实验)报告( 2015-2016年度第一学期)课程名称: 微型计算机技术 题 目: 多功能实时时钟 班 级: 最牛逼班 学 号: 111111222222 学生姓名: 杰克 指导教师: 老师 设计周数: 1周 同 组 人: 路飞,鸣人 日期: 2015年 12 月 31 日一、课程设计的目的与要求。1.1设计的目的。通过本次课程设计要掌握芯片使用的方法,灵活运用课本知识,加深所学的知识,对所学的相关芯片的原理、内部结构、使用方法等有更加深刻的了解,学会利用课本知识联系实际应用及编程。1.2设计的要求。(1) 实时时钟 由时钟信号产生部分和时

2、间显示部分组成时钟计时器 ,计算中断时间准确计时、分、秒; (2) 小键盘控制多功能选择 采用小键盘输入,通过小键盘LED数码管显示,不同键输入对应不同功能(如时间暂停开始,设置时间等)。1.3 设计的意义。通过了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。二、设计正文。2.1设计的基本原理。2.1.1 设计所用芯片结构 8253的功能用途是:(1)延时中断 (2)可编程频率发生器 (3)事件计数器 (4)二进倍频器 (5)实时时钟(6)数字单稳(7)复杂的电机控制器8253有六种工作方式:(1)方式0:计数结束中断(2)方式

3、1:可编程频率发生器(3)方式2:频率发生器(4)方式3:方波频率发生器(5)方式4:软件触发的选通信号(6)方式5:硬件触发的选通信号8253各引脚功能如下。D7D0八条双向数据线;WR(低电平有效)写输入信号;RD(低电平有效)读输入信号;CS(低电平有效)片选输入信号;A0、A1片内寄存器地址输入信号;CLK计数输入,用于输入定时基准脉冲或计数脉冲;OUT输出信号,以相应的电平指示计数的完成,或输出脉冲波形;GATE选通输入(门控输入),用于启动或禁止计数器的操作,以使计数器和计测对象同步。2.2 设计方案。2.2.1 总体方案。(见附录)2.2.2 硬件原理图。23 具体模块设计。2.

4、3.1主程序模块:;*;* 键盘显示控制实验 *;*;inta00 equ 20h ;8259a port,口地址inta01 equ 21h ;8259a port,口地址port0 equ 2b0h ;8279 data port,8279数据口port1 equ 2b1h ;8279 ctrl port,8279控制口time0 equ 280h ;8253 time0 port,8253定时器0口地址time1 equ 281h ;8253 time1 port,8253定时器1口地址timec equ 283h ;8253 ctrl port,8253控制口地址stacks segm

5、ent stacksta dw 512 dup(?)top equ length stastacks endsdata segmentcsreg dw ?ipreg dw ?irq_times dw 00hbuf db 0 ;count,计数单元sign db 0 ;flage,计数标志sec1 db 0 ;hour hight,秒高位sec2 db 0 ;houp low,秒低位min1 db 0 ;min hight,分高位min2 db 0 ;min low,分低位hour1 db 0 ;sec hight,时高位hour2 db 0 ;sec low,时低位err1 db 0 ;err

6、or flage,出错标志hms db 0 ;00 is hour,11 is min,22 is sec,预置时、分、秒标志led db 3fh,06,5bh,4fh,66h,6dh,7dh,07,7fh,6fh,79h,40hmes db pleas first create the irq pulse!,0ah,0dh,0ah,0dh db in small keybord:,0ah,0dh db c-clear to zero; g-go ahead,0ah,0dh db d-stop the disply;e-exit,0ah,0dh db p-position the beginn

7、ing time,0ah,0dh,$data endscode segmentmain proc far assume cs:code,ds:data,ss:stacks,es:datastart: cli mov ax,data mov ds,ax mov buf,0 mov sign,01 mov sec1,0 mov sec2,0 mov min1,0 mov min2,0 mov hour1,0 mov hour2,0 mov err1,0 mov dx,timec ;8253初始化 mov al,36h out dx,al mov dx,time0 mov ax,1000 out d

8、x,al mov al,ah out dx,al mov dx,timec mov al, 74h out dx,al mov ax,100 mov dx,time1 ;定时器1每0.1秒中断一次 out dx,al mov al,ah out dx,al mov ax,stacks mov ss,ax mov sp,top mov ax,data mov ds,ax mov es,ax mov dx,offset mes mov ah,09 int 21h mov ax,cs mov ds,ax mov dx,offset int_proc mov ax,250bh int 21h in a

9、l,21h and al,0f7h out 21h,al mov dx,port1 mov al,0d3h out dx,al ;8279 clear,清零 mov al,2ah out dx,al ;8279 clock,置时钟命令 mov al,40h out dx,al ;read fifo ram command,fifo ram命令 mov al,00h out dx,al ;keybord disply mode,置键盘显示模式 mov al,80h out dx,al ;write ram command,写ram命令 stikey1: call key2 ;call keybo

10、rd and disply,调键盘显示子命令 cmp hour2,0ah ;err flage jz next2next1: cmp al,0ch ;c command,c命令否 jnz lp0next2: mov sign,00h mov hour2,00h mov hour1,00h mov min2,00h mov min1,00h mov sec2,00h mov sec1,00hlp0: cmp al,0eh ;e command,e命令退出程序 jnz lp1 mov sign,00h jmp exitlp1: cmp al,10h ;g command,g命令否 jnz lp2

11、mov sign,01h jmp key1lp2: cmp al,0dh ;d command,d命令否 jnz seti mov sign,00hkey3: jmp key1seti: cmp al,12h ;p command,p命令否 jnz key1 mov sign,00h ;add 1 flage,00为预置时标志 mov hms,00h ;hour flage call high0 cmp err1,01h jz key3 call low0 cmp err1,01h jz key3 mov hms,11h ;min flage,11为预置分标志 call high0 cmp e

12、rr1,01h jz key3 call low0 cmp err1,01h jz key3 mov hms,22h ;sec flage,22为预置秒标志 call high0 cmp err1,01h jz key3 call low0 jmp key1exit: in al,21h ;关中断IRQ3 or al,08h out 21h,al sti mov ax,4c00h int 21hmain endpint_proc proc far cli push ax push bx push cx push dx push si push di push ds cmp sign,00 ;s

13、ign is add 1 flage,是否允许计数 jz endt1 inc buf ;buf is count,计数单元加1 cmp buf,10 jl endt mov buf,0 inc sec1 cmp sec1,10 jl endt mov sec1,0 inc sec2 cmp sec2,6 jl endt mov sec2,0 inc min1 cmp min1,10 jl endt mov min1,0 inc min2 cmp min2,6 jl endt mov min2,0 inc hour1 cmp hour2,2 jl hh cmp hour1,4 jl endt m

14、ov hour1,0 mov hour2,0endt1: jmp endthh: cmp hour1,10 jl endt mov hour1,0 inc hour2endt: mov al,20h ;send EOI mov dx,inta00 out dx,al mov cx,0ffffhloopx: nop loop loopx ;延时 pop ds pop di pop si pop dx pop cx pop bx pop ax mov al,20h out 20h,al iretint_proc endpkey2 proc near mov dx,port1 mov al,0d1h

15、 out dx,al ;clear display,清显示wrep: call disp ;调显示子程序 mov dx,port1 in al,dx and al,07h jz wrepkeyn: mov dx,port0 ;读状态 in al,dx mov bl,al and al,07h and bl,38h mov cl,03 shr bl,cl cmp bl,00h ;是否第一行键 jnz line1 add al,08h jmp quit1line1: cmp bl,01h jnz line2 ;是否第二行键 jmp quit1line2: add al,10hquit1: retk

16、ey2 endpdisp proc near push cx mov ax,data mov ds,ax mov dx,port1 mov al,90h out dx,al mov si,offset sec1 mov cx,0006 mov bx,offset leddisp1: cld lodsb xlat mov dx,port0 out dx,al loop disp1 pop cx retdisp endperrs proc near mov hour2,0ah mov hour1,0bh ;error mov min2,0bh ;disply E-显示出错标志 mov min1,0

17、bh mov sec2,0bh mov sec1,0bh mov err1,01h ;err flage,标记出错 reterrs endphigh0 proc near call key2 mov err1,00 cmp hms,00h ;hms is hour min sc flage,预置时、分、秒 jnz min0 cmp al,02h ;00 is hour,预置时 jg error ;11 is min,预置分 mov hour2,al ;22 is sec,预置秒 jmp hqut1min0: cmp hms,11h jnz sec0 cmp al,05h jg error mo

18、v min2,al jmp hqut1sec0: cmp al,05h jg error mov sec2,alhqut1: ret error: call errs rethigh0 endplow0 proc near call key2 ;get hour min sec low,预置时、分、秒低位 mov err1,00 cmp hms,00h jnz min3 mov dl,hour2 cmp dl,01 jg hour3 cmp al,09h jg error mov hour1,al jmp lqut1hour3: cmp al,03h jg error mov hour1,al

19、 jmp lqut1min3: cmp hms,11h jnz sec3 cmp al,09h jg error mov min1,al jmp lqut1sec3: cmp al,09h jg error mov sec1,allqut1: retlow0 endpcode endsend start三、课程设计的结论。这次课程设计我学会了很多东西,首先是微机里面有些不懂的东西,小键盘这个设备我们在上课很少接触的东西,在实验时我们发现用小键盘非常的方便,比几个实验箱并起来方便多了,于是我们收集了小键盘的相关用法的资料,着手开始做实验,边做边改实验的代码,最后终于成功了;其次是坚持不懈的去做,

20、实验室里面有的实验箱接触有点不好,我们换了很多个实验箱和电脑,但是怎么做都不行,做了几个小时都不行,代码什么的都是按要求来做的就是不行,我们还开始怀疑我们的思路究竟是不是正确的,最后终于在一个实验箱和一台电脑的组合下有反应了,努力是有回报的;最后是要学会相互合作,有时候一个人是解决不了问题的,个人的能力有限,只有相互合作,共同努力,做事才能更加快,力量才更加大。在这次实验中,开始时我们做得并不好,有很多问题,被退回重做。我们明白做事不能马马虎虎,要做一件事就要认真地做完,所以在第二次做时,我们都很认真地做,功夫不负有心人,最后竟然得到了一个更好的方案,比第一次做得更好更快。能够完成这次课程设计

21、,首先我要感谢老师的指导,其次,要感谢我的队友的合作,没有你们,靠个人的力量是远远不够的,谢谢你们!四、参考文献。1、戴梅萼,史嘉权编著.微型计算机技术及应用(第三版).北京:清华大学出版社,20032、周明德编著.微型计算机系统原理及应用(第四版).北京:清华大学出版社,20023、李顺增,吴国东,赵河明等.微机原理及接口技术.北京:机械工业出版社,20064、杨立新.微型计算机原理和应用M.北京:科学技术文献出版社,1986.11 5、李大友.微型计算机原理M.北京:清华大学出版社,1998.7附录:总体方案开始显示缓冲区初始化8253初始化显示提示信息中断初始化8279初始化调键盘显示子程序KEY2计数标志单元清0,显示缓冲区清0关中断返回DOS计数标志单元=1计数标志单元=00分别调用HIGHO和LOWO,置时、分、秒初值C命令 E命令 G命令 D命令 P命令入口计数标志单元是否为00计数单元加1计数单元值是否为10秒加1秒为60?分加1分为60?时加1时为24?时清零中断返回 Y N N Y N Y N Y N Y入口调键盘显示子程序KEY2预置时?预置分?预置秒键值是否大于2?键值是否大于5?键值是否大于5?出错处理出错处理出错处理键值送秒高位键值送时高位键值送分高位返回 Y Y N N Y Y N N Y Y N N Y Y N N Y Y N N Y Y N N

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

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