微机基础原理课程教学设计电子时钟设计.docx
- 文档编号:24831933
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:20
- 大小:148.75KB
微机基础原理课程教学设计电子时钟设计.docx
《微机基础原理课程教学设计电子时钟设计.docx》由会员分享,可在线阅读,更多相关《微机基础原理课程教学设计电子时钟设计.docx(20页珍藏版)》请在冰豆网上搜索。
微机基础原理课程教学设计电子时钟设计
2010级微机原理课程设计
实验报告
设计题目:
电子时钟设计
班级:
电信10102班
分组名单:
2012-6-28
第一章设计部分
1.1设计目的…………………………………………………………………………1
1.2设计要求…………………………………………………………………………1
1.3设计思路…………………………………………………………………………1
第二章实现部分
2.1、分析论证
2.1.1显示模块……………………………………………………………………1
2.1.2时钟运算模块………………………………………………………………1
2.1.3对时模块……………………………………………………………………2
2.2、原理说明………………………………………………………………………2
2.3、设计电路图……………………………………………………………………2
2.3.18086最小工作方式…………………………………………………………2
2.3.2秒脉冲发生器………………………………………………………………3
2.3.3时、分调整电路……………………………………………………………3
2.3.4.显示电路………………………………………………………………………4
2.4、元件功能说明
2.4.1.8253的主要功能……………………………………………………………4
2.4.2.D触发器74ls273管脚排列图及功能表介绍………………………………5
2.4.3单向总线驱动器74ls244功能介绍…………………………………………5
2.5、程序清单…………………………………………………………………………6
2.6、调试过程遇到问题及解决方法…………………………………………………9
第三章电子时钟使用说明
3.1电子时钟按键说明
第四章学习心得
附录
参考文献………………………………………………………………………………9
第一章设计部分
1.1设计目的
学习掌握protues软件功能及其使用方法
熟练掌握TND86/88教学系统的基本操作和调试程序的各种指令。
熟练掌握8086CPU的使用与编程调试程序的方法。
掌握8253定时/计数器的工作原理、工作方式及其应用编程。
练习7SEG-MPX8-CA-RED数码管的显示编程方法。
1.2、设计要求
利用8253定时器设计一个具有时、分、秒显示的电子时钟,并定义一个启动键,当按下该键时时钟从当前设定值(可在显示缓冲区中予置)开始走时。
1.3、设计思路
电子时钟主要由显示模块、对时模块和时钟运算模块三大部分组成。
其中对时模块和时钟运算模块要对时、分、秒的数值进行操作,并且秒计算到60时,要自己清零并向分进1;分计算到60时,要自己清零并向时进1;时计算到24时,要清零。
这样,才能循环记时。
显示时利用7段显示器显示六位十进制数据。
前两个显示小时,中间两个显示分钟,后两个显示秒。
时钟的运算是利用中断来实现的,利用8253的模式三输出一定频率的方波作为触发中断的条件。
8253A可编程定时/计数器的输入时钟为100KHz,设定时/计数器0的计数初值为100,工作在方式3,即方波发生器,其输出的1KHz方波作定时/计数器2的时钟。
定时/计数器2的初值设为1000,工作在方式2,即每隔1s输出负脉冲,取反后用作不可屏蔽中断的中断申请信号,在中断服务程序中计算时间,并通过74ls273并行输出到数码管显示。
第二章实现部分
2.1、分析论证
2.1.1、显示模块
利用数码管的显示功能来设计。
数码管是由八个条形发光二极管组成的,这些发光二极管的阴极是互相连接在一起的,所以称为共阴极数码管。
通过在这八个发光二极管的阳极加+5V或0V的电压使不同的二极管发光,形成不同的字符和数字。
电子时钟用到的是0到9十个数字,他们所对应的字符表依次是3FH、06H、5BH、4FH、66H、6DH、7DH、07H、7FH、6FH。
该模块显示时先将保存在数据单元的当前时间包括小时和分钟读取出来,把十六进制数字转化成十进制用四个字节分别存放小时和分钟,并把这四个数值通过74ls273端口输出给数码管显示。
2.1.2、时钟运算模块
该模块的主要功能是对时、分、秒的运算,并把运算出的最终结果存到事先已经开辟的内存单元里,以便显示模块即时地显示出来。
该模块可以细分为秒定时模块和运算模块。
秒定时模块负责提供中断信号,由于CPU运算模块中的指令消耗一定的时间,所以中断信号最好通过硬件来实现,选择的是8253定时/计数器,但又因为8253所能提供的信号的周期时毫秒级的,因此必须通过软件的方法在运算模块中设置一个统计中断次数的变量,并且这一变量必须事先在内存里开辟存储单元。
中断信号是8253的计数器2工作方式为方式2时,同过设置计数器2的初值来产生一个1s的脉冲信号。
运算模块负责时、分、秒的计算,该模块主要通过8086的NMI信号中断来实现,首先将秒定时模块提供的中断信号为8086的NMI中断请求信号。
但由于每1s一次中断请求。
所以在中断服务程序必须利用已申请内存单元count来统计中断请求的次数,只有当count的值为1000时,才能让秒单元内的数值加1。
另外,在中断服务程序里,必须对秒、分和时的单元内的数值进行判断,当秒加到60时,分必须加1、秒清零;当分加到60时,时加1、分清零。
当时加到24啊,直接清零。
2.1.3、对时模块
该模块主要功能是修改小时、分钟内存单元的数值。
在对时的时候,秒继续走时,并且在对分进行调整的时,时单元内的数值不变。
由以上分析可见,对时、分的调整用两个优先级高于NMI的中断来完成。
两个中断源的中断请求信号只需直接接在两个按键即可起到对时作用。
2.2、原理说明
电子时钟主要由74ls273锁存器、8253定时/计数器、74ls244反相器、LED数码显示管和两个按键组成。
主要用8086的NMI的中断服务程序完成秒、分、时的运算即计时功能,两个开关的中断服务程序完成调时、调分功能。
8253用来产生1s的脉冲信号作为NMI的中断请求信号。
74ls273负责将内存里的时位和分位秒位值输出到数码管。
2.3、设计电路图
电子时钟的完整电路图如下:
2.3.1.8086最小工作方式
2.3.2秒脉冲发生器
2.3.3时、分调整电路
2.3.4.显示电路
2.4、元件功能说明
2.4.1、8253的主要功能:
可编程定时器/计数器,其定时与计数功能可由程序灵活地设定,设定后与CPU并行工作,不占用CPU的时间。
计数器2工作在模式3方式下,提供计算一秒的中断请求信号。
2.4.2、D触发器74ls273管脚排列图及功能表介绍
74LS273是一种带清除功能的8D触发器,1D~8D为数据输入端,1Q~8Q为数据输出端,正脉冲触发,低电平清除,常用作数据锁存器,地址锁存器。
2.4.3、单向总线驱动器74ls244功能介绍
74LS244是8路3态单向缓冲驱动,也叫做总线驱动门电路或线驱动。
简单地说,它有8个输入端,8个输出端,可以增加信号的驱动能力.为单向驱动。
A为输入,Y为输出,高电平有效。
2.5、程序清单
.MODELSMALL
.8086
.STACK
.CODE
.STARTUP
NMI_INIT:
PUSHES
;nmi不可屏蔽中断向量表初始化
XORAX,AX
MOVES,AX
MOVAL,02H
XORAH,AH
SHLAX,1
SHLAX,1
MOVSI,AX;相当于cs,ip入栈
MOVAX,OFFSETNMI_SERVICE
;调用中断处理程序
MOVES:
[SI],AX
INCSI
INCSI
MOVBX,CS;?
MOVES:
[SI],BX
POPES
;定时器初始化
MOVAL,00110111B
MOVDX,0406H
OUTDX,AL
MOVDX,0400H
MOVAX,0100H
OUTDX,AL
MOVAL,AH
OUTDX,AL
MOVAL,10110101B
MOVDX,0406H
OUTDX,AL
MOVDX,0404H
MOVAX,1000H
OUTDX,AL
MOVAL,AH
OUTDX,AL
LOOP0:
;主任务
CALLKEY
CALLDISP
JMPLOOP0
NMI_SERVICE:
;中断服务程序
PUSHAX
MOVAL,SEC
ADDAL,1
DAA
MOVSEC,AL
CMPSEC,60H
JBEXIT
MOVSEC,0
MOVAL,MIN
ADDAL,1
DAA
MOVMIN,AL
CMPMIN,60H
JBEXIT
MOVMIN,0
MOVAL,HOU
ADDAL,1
DAA
MOVHOU,AL
CMPHOU,24
JBEXIT
MOVHOU,0
EXIT:
POPAX
IRET
DISPPROCNEAR
MOVAL,0FFH;不显示
MOVDX,0201H
OUTDX,AL
MOVBL,SEC
ANDBX,000FH
MOVSI,BX
MOVAL,SITUATION[SI];段码
MOVDX,0200H
OUTDX,AL
MOVAL,0FEH;秒个位
MOVDX,0201H
OUTDX,AL
CALLDELAY
MOVAL,0FFH;不显示
MOVDX,0201H
OUTDX,AL
MOVBL,SEC
ANDBX,00F0H
MOVCL,4
SHRBX,CL
MOVSI,BX
MOVAL,SITUATION[SI];段码
MOVDX,0200H
OUTDX,AL
MOVAL,0FDH;秒十位
MOVDX,0201H
OUTDX,AL
CALLDELAY
MOVAL,0FFH;不显示
MOVDX,0201H
OUTDX,AL
MOVAL,40H;段码
MOVDX,0200H
OUTDX,AL
MOVAL,0FBH;秒个位
MOVDX,0201H
OUTDX,AL
CALLDELAY
MOVAL,0FFH;不显示
MOVDX,0201H
OUTDX,AL
MOVBL,MIN
ANDBX,000FH
MOVSI,BX
MOVAL,SITUATION[SI];段码
MOVDX,0200H
OUTDX,AL
MOVAL,0F7H;分个位
MOVDX,0201H
OUTDX,AL
CALLDELAY
MOVAL,0FFH;不显示
MOVDX,0201H
OUTDX,AL
MOVBL,MIN
ANDBX,00F0H
MOVCL,4
SHRBX,CL
MOVSI,BX
MOVAL,SITUATION[SI];段码
MOVDX,0200H
OUTDX,AL
MOVAL,0EFH;分十位
MOVDX,0201H
OUTDX,AL
CALLDELAY
MOVAL,0FFH;不显示
MOVDX,0201H
OUTDX,AL
MOVAL,40H;段码
MOVDX,0200H
OUTDX,AL
MOVAL,0DFH;秒个位
MOVDX,0201H
OUTDX,AL
CALLDELAY
MOVAL,0FFH;不显示
MOVDX,0201H
OUTDX,AL
MOVBL,HOU
ANDBX,000FH
MOVSI,BX
MOVAL,SITUATION[SI];段码
MOVDX,0200H
OUTDX,AL
MOVAL,0BFH;时个位
MOVDX,0201H
OUTDX,AL
CALLDELAY
MOVAL,0FFH;不显示
MOVDX,0201H
OUTDX,AL
MOVBL,HOU
ANDBX,00F0H
MOVCL,4
SHRBX,CL
MOVSI,BX
MOVAL,SITUATION[SI];段码
MOVDX,0200H
OUTDX,AL
MOVAL,07FH;时十位
MOVDX,0201H
OUTDX,AL
CALLDELAY
RET
DISPENDP
KEYPROCNEAR
MOVDX,0600H
INAL,DX
TESTAL,01H
JNZNEXTHOU
CALLDISP;消抖
CALLDISP
CALLDISP
MOVDX,0600H
INAL,DX
TESTAL,01H
JNZNEXTHOU
MOVAL,MIN
ADDAL,1;分调整
DAA
MOVMIN,AL
CMPMIN,60H
JBNEXTHOU
MOVMIN,0
NEXTHOU:
MOVDX,0600H
INAL,DX
TESTAL,02H
JNZEXITKEY
CALLDISP;消抖
CALLDISP
CALLDISP
MOVDX,0600H
INAL,DX
TESTAL,02H
JNZEXITKEY
MOVAL,HOU
ADDAL,1
DAA;时调整
MOVHOU,AL
CMPHOU,24H
JBNEXTHOU
MOVHOU,0
EXITKEY:
RET
KEYENDP
DELAYPROCNEAR;定时子程序
PUSHBX
PUSHCX
MOVBX,1
LP1:
MOVCX,469
LP2:
LOOPLP2
DECBX
JNZLP1
POPCX
POPBX
RET
DELAYENDP
.DATA
SECDB00H
MINDB00H
HOUDB23H
SITUATION
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H
SIT_END=$
END
2.6、调试过程遇到问题及解决方法
将编写好的源程序输入,编译后出现很多问题,经过反复修改程序终于运行通过。
数码管显示的数字并不与理论计算值相符合,经过反复分析源程序发现问题出现在内存单元里时位和分位在转化为十进制时出错,经过更改内存但愿数据。
一开始数字闪动,后来请教同学,原因应该出在显示子程序里,缺少延时程序。
编写延时子程序,并在显示子程序调用它;编译源程序,装入生成的可执行文件,并运行。
数码管显示的数字与理论值相符合,并能正常计时。
第三章电子时钟使用说明
3.1电子时钟按键说明
本电子时钟可以24小时循环计时,并且具有调时功能,操作方法如下:
开机运行后,即显示初始时间12:
00整。
按动一下MIN按键即可启动调分,此时每按动一下MIN按键分位数字加1,完成对分的调整;再按动一下HOU按键启动调时,按动一下HOU按键时位数字加1,完成对时的调整。
再按一下HOU按键即关闭功能,正常计时。
第四章学习心得
在这次课程设计过程中,我们逐步养成了发现、提出、分析和解决实际问题的习惯;这不但锻炼提高了我们的实践能力,更是对我们实际工作能力的具体训练和考察过程。
对于此次电子时钟课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在这短短两个星期的日子里,不仅让我们巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中也发现了自己对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说触发器的运用还是不怎么熟识,但是通过这次课程设计,我们对8086CPU,8253定时器74LS273,74LS244等一些芯片有了更深刻的理解与认识。
同时也看到了自己基础知识还是不够扎实,实践经验还是比较缺乏,理论联系实际的能力还待急需提高。
通过这次课程设计之后,一定把以前所学过的知识重新温故。
在这个过程中,也曾经因为实践经验的缺乏失落过,也曾经仿真成功而热情高涨。
生活就是这样,汗水预示着结果也见证着收获。
虽然这只是一次的较简单的课程设计,可是也耗费了我们不少的心血,让我们真正的体会到了对于设计者来说,钻研精神是何等的重要。
经历过了这次课程设计,我们不但在知识上有了重要收获,精神上的丰收更加难能可贵。
这让我明白,我们每一个人做任何事,都需要探索精神,不管前方的道路有多艰险,走过,你才能知道自己的能力,人不能停留于眼前,因为学无止境。
一次挫折是一份财富,一次成功是一份动力,一次跨步就是一次飞跃,人生贵在拼搏!
毋庸置疑,这次课程设计必将是大学里一个新的起点!
附录
参考文献:
1、《微型计算机技术及应用》
2、《微机原理与接口技术实验指导书》
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 基础 原理 课程 教学 设计 电子 时钟