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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于8086课程设计.docx

1、基于8086课程设计1、电子时钟功能介绍 本电子时钟可以24小时循环计时,并且具有调时功能,操作方法如下:开机运行后,即显示初始时间12:00整。按动一下MIN按键即可启动调分,此时每按动一下MIN按键分位数字加1,完成对分的调整;再按动一下HOU按键启动调时,按动一下HOU按键时位数字加1,完成对时的调整。再按一下HOU按键即关闭功能,正常计时。2、电子时钟系统设计方案2.1、设计要求利用8253定时器设计一个具有时、分、秒显示的电子时钟,并定义一个启动键,当按下该键时时钟从当前设定值(可在显示缓冲区中予置)开始走时。2.2、设计思路电子时钟主要由显示模块、对时模块和时钟运算模块三大部分组成

2、。其中对时模块和时钟运算模块要对时、分、秒的数值进行操作,并且秒计算到60时,要自己清零并向分进1;分计算到60时,要自己清零并向时进1;时计算到24时,要清零。这样,才能循环记时。显示时利用7段显示器显示六位十进制数据。前两个显示小时,中间两个显示分钟,后两个显示秒。时钟的运算是利用中断来实现的,利用8253的模式三输出一定频率的方波作为触发中断的条件。8253A可编程定时/计数器的输入时钟为100KHz,设定时/计数器0的计数初值为100,工作在方式3,即方波发生器,其输出的1KHz方波作定时/计数器2的时钟。定时/计数器2的初值设为1000,工作在方式2,即每隔1s输出负脉冲,取反后用作

3、不可屏蔽中断的中断申请信号,在中断服务程序中计算时间,并通过74ls273并行输出到数码管显示。3、电子时钟的工作原理电子时钟主要由74ls273锁存器、8253定时/计数器、74ls244反相器、LED数码显示管和两个按键组成。主要用8086的NMI的中断服务程序完成秒、分、时的运算即计时功能,两个开关的中断服务程序完成调时、调分功能。8253用来产生1s的脉冲信号作为NMI的中断请求信号。74ls273负责将内存里的时位和分位秒位值输出到数码管。3.1、显示模块利用数码管的显示功能来设计。数码管是由八个条形发光二极管组成的,这些发光二极管的阴极是互相连接在一起的,所以称为共阴极数码管。通过

4、在这八个发光二极管的阳极加+5 V或0 V的电压使不同的二极管发光,形成不同的字符和数字。电子时钟用到的是0到9十个数字,他们所对应的字符表依次是3FH、06H、5BH、4FH、66H、6DH、7DH、07H、7FH、6FH。该模块显示时先将保存在数据单元的当前时间包括小时和分钟读取出来,把十六进制数字转化成十进制用四个字节分别存放小时和分钟,并把这四个数值通过74ls273端口输出给数码管显示。3.2、时钟运算模块该模块的主要功能是对时、分、秒的运算,并把运算出的最终结果存到事先已经开辟的内存单元里,以便显示模块即时地显示出来。该模块可以细分为秒定时模块和运算模块。秒定时模块负责提供中断信号

5、,由于CPU运算模块中的指令消耗一定的时间,所以中断信号最好通过硬件来实现,选择的是8253定时/计数器,但又因为8253所能提供的信号的周期时毫秒级的,因此必须通过软件的方法在运算模块中设置一个统计中断次数的变量,并且这一变量必须事先在内存里开辟存储单元。中断信号是8253的计数器2工作方式为方式2时,同过设置计数器2的初值来产生一个1s的脉冲信号。运算模块负责时、分、秒的计算,该模块主要通过8086的NMI信号中断来实现,首先将秒定时模块提供的中断信号为8086的NMI中断请求信号。但由于每1s一次中断请求。所以在中断服务程序必须利用已申请内存单元count来统计中断请求的次数,只有当co

6、unt的值为1000时,才能让秒单元内的数值加1。另外,在中断服务程序里,必须对秒、分和时的单元内的数值进行判断,当秒加到60时,分必须加1 、秒清零;当分加到60时,时加1、分清零。当时加到24啊,直接清零。3.3、对时模块该模块主要功能是修改小时、分钟内存单元的数值。在对时的时候,秒继续走时,并且在对分进行调整的时,时单元内的数值不变。由以上分析可见,对时、分的调整用两个优先级高于NMI的中断来完成。两个中断源的中断请求信号只需直接接在两个按键即可起到对时作用。4、硬件设计4.1、硬件设计电路图4.1.1、8086最小工作方式4.1.2、秒脉冲发生器4.1.3、时、分调整电路4.1.4、显

7、示电路4.2、硬件设计所用芯片介绍、8253的主要功能:可编程定时器/计数器,其定时与计数功能可由程序灵活地设定,设定后与CPU并行工作,不占用CPU的时间。计数器2工作在模式3方式下,提供计算一秒的中断请求信号。、D触发器74LS273管脚排列图及功能表介绍74LS273是一种带清除功能的8D触发器, 1D8D为数据输入端,1Q8Q为数据输出端,正脉冲触发,低电平清除,常用作数据锁存器,地址锁存器。、单向总线驱动器74LS244管脚排列图及功能表介绍74LS244是8路3态单向缓冲驱动,也叫做总线驱动门电路或线驱动。简单地说,它有8个输入端,8个输出端,可以增加信号的驱动能力.为单向驱动。A

8、为输入,Y为输出,高电平有效。5、电子时钟总体程序.MODEL SMALL.8086.STACK.CODE .STARTUPNMI_INIT:PUSH ES;nmi不可屏蔽中断向量表初始化 XOR AX,AX MOV ES,AX MOV AL,02H XOR AH,AH SHL AX,1 SHL AX,1 MOV SI,AX ;相当于cs,ip入栈MOV AX,OFFSET NMI_SERVICE ;调用中断处理程序 MOV ES:SI,AX INC SI INC SI MOV BX,CS ;? MOV ES:SI,BX POP ES ;定时器初始化 MOV AL,00110111B MOV

9、DX,0406H OUT DX,AL MOV DX,0400H MOV AX,0100H OUT DX,AL MOV AL,AH OUT DX,AL MOV AL,10110101B MOV DX,0406H OUT DX,AL MOV DX,0404H MOV AX,1000H OUT DX,AL MOV AL,AH OUT DX,ALLOOP0: ;主任务 CALL KEY CALL DISP JMP LOOP0 NMI_SERVICE: ;中断服务程序 PUSH AX MOV AL,SEC ADD AL,1 DAA MOV SEC,AL CMP SEC,60H JB EXIT MOV S

10、EC,0 MOV AL,MIN ADD AL,1 DAA MOV MIN,AL CMP MIN,60H JB EXIT MOV MIN,0 MOV AL,HOU ADD AL,1 DAA MOV HOU,AL CMP HOU,24 JB EXIT MOV HOU,0EXIT:POP AX IRETDISP PROC NEAR MOV AL,0FFH ;不显示 MOV DX,0201H OUT DX,AL MOV BL,SEC AND BX,000FH MOV SI,BX MOV AL,SITUATIONSI ;段码 MOV DX,0200H OUT DX,AL MOV AL,0FEH ;秒个位

11、 MOV DX,0201H OUT DX,AL CALL DELAY MOV AL,0FFH ;不显示 MOV DX,0201H OUT DX,AL MOV BL,SEC AND BX,00F0H MOV CL,4 SHR BX,CL MOV SI,BX MOV AL,SITUATIONSI ; 段码 MOV DX,0200H OUT DX,AL MOV AL,0FDH ; 秒十位 MOV DX,0201H OUT DX,AL CALL DELAY MOV AL,0FFH ;不显示 MOV DX,0201H OUT DX,AL MOV AL,40H ;段码 MOV DX,0200H OUT D

12、X,AL MOV AL,0FBH ;秒个位 MOV DX,0201H OUT DX,AL CALL DELAY MOV AL,0FFH ;不显示 MOV DX,0201H OUT DX,AL MOV BL,MIN AND BX,000FH MOV SI,BX MOV AL,SITUATIONSI ;段码 MOV DX,0200H OUT DX,AL MOV AL,0F7H ;分个位 MOV DX,0201H OUT DX,AL CALL DELAY MOV AL,0FFH ; 不显示 MOV DX,0201H OUT DX,AL MOV BL,MIN AND BX,00F0H MOV CL,4

13、 SHR BX,CL MOV SI,BX MOV AL,SITUATIONSI ; 段码 MOV DX,0200H OUT DX,AL MOV AL,0EFH ;分十位 MOV DX,0201H OUT DX,AL CALL DELAY MOV AL,0FFH ;不显示 MOV DX,0201H OUT DX,AL MOV AL,40H ; 段码 MOV DX,0200H OUT DX,AL MOV AL,0DFH ;秒个位 MOV DX,0201H OUT DX,AL CALL DELAY MOV AL,0FFH ;不显示 MOV DX,0201H OUT DX,AL MOV BL,HOU

14、AND BX,000FH MOV SI,BX MOV AL,SITUATIONSI ; 段码 MOV DX,0200H OUT DX,AL MOV AL,0BFH ;时个位 MOV DX,0201H OUT DX,AL CALL DELAY MOV AL,0FFH ; 不显示 MOV DX,0201H OUT DX,AL MOV BL,HOU AND BX,00F0H MOV CL,4 SHR BX,CL MOV SI,BX MOV AL,SITUATIONSI ;段码 MOV DX,0200H OUT DX,AL MOV AL,07FH ; 时十位 MOV DX,0201H OUT DX,A

15、L CALL DELAY RETDISP ENDPKEY PROC NEAR MOV DX,0600H IN AL,DX TEST AL,01H JNZ NEXTHOU CALL DISP ;消抖 CALL DISP CALL DISP MOV DX,0600H IN AL,DX TEST AL,01H JNZ NEXTHOU MOV AL,MIN ADD AL,1 ;分调整 DAA MOV MIN,AL CMP MIN,60H JB NEXTHOU MOV MIN,0NEXTHOU:MOV DX,0600H IN AL,DX TEST AL,02H JNZ EXITKEY CALL DISP

16、 ;消抖 CALL DISP CALL DISP MOV DX,0600H IN AL,DX TEST AL,02H JNZ EXITKEY MOV AL,HOU ADD AL,1 DAA ;时调整 MOV HOU,AL CMP HOU,24H JB NEXTHOU MOV HOU,0EXITKEY:RETKEY ENDPDELAY PROC NEAR ;定时子程序 PUSH BX PUSH CX MOV BX,1 LP1:MOV CX,469 LP2:LOOP LP2 DEC BX JNZ LP1 POP CX POP BX RET DELAY ENDP.DATASEC DB 00HMIN

17、DB 00HHOU DB 23HSITUATION DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40HSIT_END=$END 6、调试过程遇到问题及解决方法将编写好的源程序输入,编译后出现很多问题,经过反复修改程序终于运行通过。数码管显示的数字并不与理论计算值相符合,经过反复分析源程序发现问题出现在内存单元里时位和分位在转化为十进制时出错,经过更改内存但愿数据。一开始数字闪动,后来请教同学,原因应该出在显示子程序里,缺少延时程序。编写延时子程序,并在显示子程序调用它;编译源程序,装入生成的可执行文件,并运行。数码管显示的数字与理论值相符合,并能正常计

18、时。7、总结与体会在这次课程设计过程中,我们逐步养成了发现、提出、分析和解决实际问题的习惯;这不但锻炼提高了我们的实践能力,更是对我们实际工作能力的具体训练和考察过程。 对于此次电子时钟课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在这短短两个星期的日子里,不仅让我们巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中也发现了自己对以前所学过的知识理解得不够深刻,掌握得不够牢

19、固,比如说触发器的运用还是不怎么熟识,但是通过这次课程设计,我们对8086CPU,8253定时器74LS273,74LS244等一些芯片有了更深刻的理解与认识。同时也看到了自己基础知识还是不够扎实,实践经验还是比较缺乏,理论联系实际的能力还待急需提高。通过这次课程设计之后,一定把以前所学过的知识重新温故。在这个过程中,也曾经因为实践经验的缺乏失落过,也曾经仿真成功而热情高涨。生活就是这样,汗水预示着结果也见证着收获。虽然这只是一次的较简单的课程设计,可是也耗费了我们不少的心血,让我们真正的体会到了对于设计者来说,钻研精神是何等的重要。经历过了这次课程设计,我们不但在知识上有了重要收获,精神上的丰收更加难能可贵。这让我明白,我们每一个人做任何事,都需要探索精神,不管前方的道路有多艰险,走过,你才能知道自己的能力,人不能停留于眼前,因为学无止境。一次挫折是一份财富,一次成功是一份动力,一次跨步就是一次飞跃,人生贵在拼搏!毋庸置疑,这次课程设计必将是大学里一个新的起点!

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

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