8-电子时钟的设计与实现
[数电课程设计数字电子时钟的实现] 电子时钟课程设计
![[数电课程设计数字电子时钟的实现] 电子时钟课程设计](https://img.taocdn.com/s3/m/09fa58d0af45b307e9719786.png)
[数电课程设计数字电子时钟的实现] 电子时钟课程设计课程设计报告设计题目:数字电子时钟的设计与实现班级:学号:姓名:指导教师:设计时间:摘要钟表的数字化给人们生产生活带来了极大的方便,大大的扩展了原先钟表的报时。
诸如,定时报警、按时自动打铃、时间程序自动控制等,这些,都是以钟表数字化为基础的。
功能数字钟是一种用数字电路实现时、分、秒、计时的装置,与机械时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。
从原理上讲,数字钟是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。
因此,此次设计与制作数字钟就是为了了解数字钟的原理,从而学会制作数字钟,而且通过数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及使用方法。
通过此次课程设计可以进一步学习与各种组合逻辑电路与时序电路的原理与使用方法。
通过仿真过程也进一步学会了Multisim7的使用方法与注意事项。
本次所要设计的数字电子表可以满足使用者的一些特殊要求,输出方式灵活,如可以随意设置时、分、秒的输出,定点报时。
由于集成电路技术的发展,,使数字电子钟具有体积小、耗电省、计时准确、性能稳定、维护方便等优点。
关键词:数字钟,组合逻辑电路,时序电路,集成电路目录摘要 (1)第1章概述············································3第2章课程设计任务及要求·······························42.1设计任务············································42.2设计要求············································4第3章系统设计··········································63.1方案论证············································63.2系统设计············································63.2.1结构框图及说明·································63.2.2系统原理图及工作原理···························73.3单元电路设计········································83.3.1单元电路工作原理·······························83.3.2元件参数选择···································14第4章软件仿真·········································154.1仿真电路图··········································154.2仿真过程············································164.3仿真结果············································16第5章安装调试··········································175.1安装调试过程········································175.2故障分析············································17第6章结论···············································18第7章使用仪器设备清单··································19参考文献·················································19收获、体会和建议·········································20第1章概述数字集成电路的出现和飞速发展,以及石英晶体振荡器的广泛应用,使得数字钟的精度稳定度远远超过了老式的机械表,用数字电路实现对“时”、“分”、“秒”数字显示的数字钟在数字显示方面,目前已有集成的计数、译码电路,它可以直接驱动数码显示器件,也可以直接采用才COMS--LED光电组合器件,构成模块式石英晶体数字钟。
基于单片机电子时钟的设计与实现

基于单片机电子时钟的设计与实现一、设计目标设计一个基于单片机的电子时钟,能够准确显示时间并能够进行设置和调整。
二、硬件设计1.时钟部分:采用晶振芯片提供准确的时钟信号2.数码管显示部分:使用共阴数码管进行数字显示3.按键部分:设计几个按键用于设置和调整时间4.电源部分:采用直流电源供电三、软件设计1.功能设计a.时间设置功能:通过按键可以设置当前的时间,包括小时、分钟和秒钟。
b.时间调整功能:通过按键可以调整当前的时间,包括小时、分钟和秒钟。
c.时间显示功能:通过数码管可以实时显示当前的时间。
2.代码实现以C语言为例,以下是一个基于单片机的电子时钟的代码实现示例:```c#include <reg51.h>sbit DS18B20=P1^3; // 定义18B20数据线接口sbit beep=P2^3; // 定义蜂鸣器接口unsigned char hour,min,sec; // 定义小时、分钟、秒钟变量//函数声明void Delay_1ms(unsigned int count);bit Ds18b20Init(;unsigned char Ds18b20ReadByte(;void ReadTime(;void WriteTime(;void DisplayTime(;//主函数void mainP2=0x00;WriteTime(; // 写入时间while(1)ReadTime(; // 读取时间DisplayTime(; // 显示时间Delay_1ms(1000); // 延时1秒}//毫秒延时函数void Delay_1ms(unsigned int count) unsigned int i, j;for(i=0; i<count; i++)for(j=0; j<1275; j++);//18B20初始化函数bit Ds18b20Initbit presence;DS18B20=0;Delay_1ms(100); // 延时450us~1000us DS18B20=1;Delay_1ms(10); // 延时15us~60us presence=DS18B20;Delay_1ms(30); // 延时60us~240us return presence;//18B20读取字节函数unsigned char Ds18b20ReadByte unsigned char i, dat;for(i=0; i<8; i++)DS18B20=0;//主机发起读时序_nop_(; // 延时1us_nop_(; // 延时1us_nop_(; // 延时1usDS18B20=1;//主机释放总线_nop_(; // 延时1us_nop_(; // 延时1us_nop_(; // 延时1usdat,=(DS18B20<<i); // 读取数据位,存放在dat变量中Delay_1ms(3); // 读时序完成后等待48us再接收下一位}return dat;//读取时间函数void ReadTimeunsigned char temp;temp=0x00;while(temp!=0xaa)Ds18b20Init(; // 初始化温度传感器Delay_1ms(1);DS18B20=0xcc;Delay_1ms(1);DS18B20=0xbe;Delay_1ms(1);temp=Ds18b20ReadByte(; // 读取时间数组的标志位}for(temp=0; temp<7; temp++)//写入时间函数void WriteTimeunsigned char i,j;while(1)Ds18b20Init(;Delay_1ms(1);DS18B20=0xcc;Delay_1ms(1);DS18B20=0x4e;Delay_1ms(1);for(i=0; i<7; i++)DS18B20=0x55;Delay_1ms(1);DS18B20=0xaa;Delay_1ms(1);Ds18b20Init(;Delay_1ms(1);DS18B20=0xcc;Delay_1ms(1);DS18B20=0x48;Delay_1ms(1);j=Ds18b20ReadByte(; // 判断是否写入成功if(j==0x0a)break;}//显示时间函数void DisplayTimeP1=seg[hour/10]; // 显示十位小时P2=(P2&0xf0),0x08; // 点亮第一个数码管Delay_1ms(5); // 延时一段时间P2=0x0f;//熄灭数码管P1=seg[hour%10]; // 显示个位小时P2=(P2&0xf0),0x04; // 点亮第二个数码管Delay_1ms(5); // 延时一段时间P2=0x0f;//熄灭数码管P1=seg[min/10]; // 显示十位分钟P2=(P2&0xf0),0x02; // 点亮第三个数码管Delay_1ms(5); // 延时一段时间P2=0x0f;//熄灭数码管P1=seg[min%10]; // 显示个位分钟P2=(P2&0xf0),0x01; // 点亮第四个数码管Delay_1ms(5); // 延时一段时间P2=0x0f;//熄灭数码管P1=0x00;//空显示P2=0x00;//熄灭数码管```四、总结通过以上的硬件设计和软件实现,可以实现一个基于单片机的电子时钟。
电子时钟的设计与制作毕业论文

目录中文摘要、关键词 (3)1、绪论 (3)1.1课题研究的背景及意义 (3)1.2国内外研究 (4)1.3电子时钟概述 (5)1.4论文章节构成及安排 (5)2、电子时钟设计方案 (5)2.1两种设计方案的选择 (5)2.2系统电路 (6)3、硬件系统设计 (7)3.1核心控制电路 (7)3.2秒计时电路 (9)3.3显示电路 (11)4、软件系统设计 (12)4.1DS1302子程序 (12)4.2LCD5110子程序 (14)4.3主程序 (14)5、设计系统的调试 (15)5.1硬件调试 (15)5.2软件调试 (15)6、本设计系统小结 (16)6.1系统不足及功能拓展 (16)6.2学习心得与展望 (16)参考文献 (16)英文摘要、关键词 (16)电子时钟的设计与制作信息技术学院电子信息科学与技术专业指导教师 ***作者 ***摘要:从古代的沙漏计时,到现在的机械钟表、石英钟,计时技术得发展经过了一个漫长的完善过程,这充分显现出了时间不论对古人还是现在的我们的重要性。
现在,全球社会都进入了信息化时代,人们更加重了对时间计量精度的依赖,以至于钟表应用越来越广,功能越来越多。
普通的机械表对于当代人复杂繁琐的要求显然早已不太适应,电子时钟应运而生。
电子时钟不仅能满足基本时间要求,而且体积小,成本低廉,最大的亮点在于可以随时根据不同的客户要求进行改进、增加功能,所以电子钟越来越受到人们的青睐。
本课题即着眼于此,研究的主要目的是设计一个基于单片机的电子时钟系统。
由于单片机有价格实惠而且功能齐全的优点,在自动控制产品中广泛应用。
本设计以ATmega16芯片为核心,以实时时钟芯片DS1302为主要依托,通过LCD液晶屏完成其显示、计时功能,本设计实现了所需功能的硬件电路,并应用C语言进行软件编程。
关键词:电子时钟 DS1302 LCD液晶屏1、绪论1.1课题研究的背景及意义时间的宝贵是个亘古不变的真理,然而工作的忙碌性和繁杂性很容易让人忘记当前的时间或是工作中不能及时方便地知晓时间。
单片机课程设计报告--电子时钟(2021整理)

一、设计内容该课程设计是利用MCS-51单片机内部的定时/计数器、中断系统、以及行列键盘和LED显示器等部件,设计一个单片机电子时钟。
设计的电子时钟通过数码管显示,并能通过按键实现设置时间和暂停、启动控制等。
二、电子时钟设计思想:用定时/计数器T0,工作于定时,采用方式1,对12MHZ的系统时钟进行定时计数,初值设为XXYY〔自己计算〕。
形成定时时间为50ms。
用片内RAM的7BH单元对50ms 计数,计20次产生秒计数器78H单元加1,秒计数器加到60那么分计数器79H单元加1,分计数器加到60那么时计数器7AH单元加1,时计数器加到24那么时计数器清0。
然后把秒、分、时计数器分成十位和个位放到8个数码管的显示缓冲区,通过数码管显示出来。
显示格式为小时十位、小时个位---分十位、分个位---秒十位、秒个位。
在处理过程中加上了按键判断程序,能对按键处理。
三、MCS-51单片机系统简介单片机应用系统由硬件系统和软件系统两局部组成。
硬件系统是指单片机以及扩展的存储器、I\O接口、外围扩展的功能芯片以及接口电路。
软件系统包括监控程序和各种应用程序。
在单片机应用系统中,单片机是整个系统的核心,对整个系统的信息输入、处理、信息输出进行控制。
与单片机配套的有相应的复位电路、时钟电路以及扩展的存储器和I\O接口,使单片机应用系统能够运行。
在一个单片机应用系统中,往往都会输入信息和显示信息,这就涉及键盘和显示器。
在单片机应用系统中,一般都根据系统的要求配置相应的键盘和显示器。
配置键盘和显示器一般都没有统一的规定,有的系统功能复杂,需输入的信息和显示的信息量大,配置的键盘和显示器功能相对强大,而有些系统输入/输出的信息少,这时可能用几个按键和几个LED 指示灯就可以进行处理了。
在单片机应用系统在中配置的键盘可以是独立键盘,也可能是矩阵键盘。
显示器可以是LED指示灯,也可以是LED数码管,也可以是LCD显示器,还可以使用CRT显示器。
基于单片机的电子时钟设计与实现

基于单片机的电子时钟设计与实现电子时钟是现代人生活中不可或缺的一部分。
随着现代科技的发展,基于单片机的电子时钟已经成为人们常见的选择。
本文将详细介绍基于单片机的电子时钟设计与实现。
一、基于单片机的电子时钟的原理基于单片机的电子时钟是通过控制晶体振荡器的频率来实现时钟的精度。
当晶体振荡器振荡周期稳定时,控制晶体振荡器的频率就可以实现时钟的精确。
二、基于单片机的电子时钟的设计1、硬件设计(1)时钟芯片:MCU常用的计时器是AT89S52,这是一个高性能的、低功耗的8位CMOS微控制器,使用半导体工艺方案,集成了66个I/O口和4个定时/计数器。
MCU的定时器的时钟源要保证准确,采用低失真、低相位噪声的晶振可以保证这一点。
(2)显示器件:本设计采用单片机驱动数码管来显示时间,以节省成本。
数码管是由点阵组成的,共有八段,其中七段是用来表示数字的,而第八段是用来显示小数点、时间标志等字符。
(3)按键及配套链路:按键和链路的作用是用来调整电子时钟的计时和校准。
采用常开或常闭接触式按钮即可实现这一功能。
2、软件设计(1)时钟芯片:AT89S52时钟芯片采用C语言编程,最终生成.HEX文件,充当芯片程序的载体,烧录进芯片后即可实现自动扫描、计时、纠偏、时间显示、闹铃、定时关闭等多项功能。
(2)扫描及计时:8个数码管需要进行扫描的操作,程序运行时根据八个位选信号,依次驱动八个共阳数码管的位选脚。
在每次扫描完成后即进行时钟计时的工作,判断闹钟时间是否到达,若到达则执行闹铃程序。
(3)时间设置:根据按键的输入状态,进行时间值的修改,来实现时钟时间的设置。
(4)闹铃:当当前时间与闹钟设置时间相等时,启动闹铃程序,进行可选的led闪烁、蜂鸣器响声等提醒操作。
三、基于单片机的电子时钟的实现将设计好的电路板焊接好,控制程序烧录进入AT89S52芯片,并将电子时钟放置在合适的位置或固定于墙壁上即可使用。
四、基于单片机的电子时钟的优缺点优点:精度高、误差小、易于校对和设置、功能多样化、体积小、寿命长。
多功能电子钟毕业设计

多功能电子钟毕业设计本文主要介绍了一款多功能电子钟的设计方案,其中包括时钟、定时器、闹钟、日历、温度显示等多种功能。
通过硬件和软件的相结合,实现了这种多功能的电子钟,具有易操作、准确显示、功能多样等特点。
本设计可用于家庭、实验室、工作室等多种场合。
一、设计目标随着现代科技的发展,电子钟成为人们生活中不可缺少的一部分。
因此,本文设计了一款多功能电子钟,集时钟、定时器、闹钟、日历、温度显示等多种功能于一身,方便人们的日常生活。
二、设计原理该电子钟的各项功能均用单片机控制实现。
电子钟的控制部分是基于51单片机进行设计。
时钟的原理是通过一个晶振来控制芯片的工作频率,从而达到时钟的准确显示。
使用DS1302进行存储和控制时间。
定时器的原理是通过定时器中断进行实现,通过设定定时器的计数值即可实现定时器的功能。
闹钟的原理是通过设定一个“警报时间”来实现,当时间到达“警报时间”时,闹钟就会开始响铃。
日历的原理是通过读取DS1302中存储的日期信息进行实现。
温度显示的原理是通过使用DS18B20传感器实现对温度的检测。
三、硬件设计本设计的硬件主要由以下部分组成:显示部分、按键部分、计时器部分、DS1302时钟芯片、DS18B20温度传感器、单片机及其外设(如LCD12864液晶屏等)。
1.显示部分本设计采用LCD12864液晶屏进行显示。
2.按键部分本设计采用4个按键T1~T4,T1键用于切换时间制式;T2键用于设定时间和日期等;T3键用于设定闹钟;T4键用于定时器的设定。
3.计时器部分本设计采用计时器555进行固定时间的计时。
4. DS1302时钟芯片DS1302时钟芯片是一种用于实现实时时钟的芯片,本设计将其用于控制电子钟的时间。
5. DS18B20温度传感器DS18B20温度传感器是一种用于测量温度的芯片,本设计将其用于温度显示功能。
6. 单片机及其外设本设计采用AT89C52单片机进行控制,其外设包括LCD12864液晶屏、DS1302时钟芯片、DS18B20温度传感器等。
八位数显示时钟的设计方案与制作

毕业设计<论文)题目:八位数显示时钟的设计与制作2018年8月28日毕业设计任务书1.毕业设计题目:八位数显时钟题目类型实验研究题目来源教师科研题毕业设计内容要求:<一)设计任务:1、用单片机设计8位数显电子时钟;2、走时,误差精度控制在1s/天;3、调时,小时、分钟加减调整及闪烁显示;4、闹铃,可以设置三组闹铃,默认闹铃时间为1分钟,可按任意键推出闹铃。
<二)涉及要求:1、总体方案设计及框图;2、设计原理电路图及分析;3、独立编写程序;4、完成protues仿真设计;5、使用protel设计pcb并制作、调试电路。
2.主要参考资料[1]电子工业出版社[51单片机典型系统开发实例精讲]白延敏;[2]复旦大学出版社[单片微型机原理、应用和实验] 张友德;[3]海纳电子资讯网[IC中文资料];摘要时间是现代社会中不可缺少的一项参数,无论是平时生活还是社会生产都需要对时间进行控制,有的场合对其精确性还有很高的要求.采用单片机进行计时,对于社会生产有着十分重要的作用。
本文首先介绍了电子时钟的特点和功能,然后对单片机和LCD 显示做了详细的介绍,提出了系统总体设计方案,并设计了各部分硬件模块和软件流程,再用Protues软件进行了仿真和调试,结果证明了该设计系统的可行性。
由于AT89S52系列单片机的控制器运算能力强,处理速度快,可以精确计时,很好地解决了实际生产生活中对计时高精确度的要求,因此该设计在现代社会中具有广泛的适用性。
关键字:单片机;LCD1602液晶显示器;C程序设计目录第一章系统设计要求及功能51.1设计本电子定时闹钟的目的和意义51.2本LCD电子闹钟的特点和功能介绍51.2.1本电子钟设计特点51.2.2本电子钟的主要功能5第二章方案设计与比较62.1数字时钟方案62.2显示方案7第三章系统硬件的设计83.1单片机的选择及管脚介绍83.1.1单片机的选择及主要性能83.1.2单片机管脚介绍93.2LCD1602的管脚及功能介绍113.2.1引脚说明113.2.2控制器接口说明123.3总体设计133.3.1系统说明133.3.2整体系统框图133.4各部分功能实现143.5元件清单143.6电子钟电路原理图153.7时钟仿真各功能分析及图解16第四章软件总体设计方案204.1主程序流程图:204.2、闹钟的实现22第五章课程设计结果分析23致谢24参考文献25附录26<1)控制电路的C语言源程序26<2)8位数显时钟成品展示图35第一章系统设计要求及功能1.1 设计本电子定时闹钟的目的和意义1、复习和巩固所学过的知识,利用此毕业设计正好可以对所学过的知识进行系统的回顾和总结。
单片机电子时钟课程设计实验报告(1)

单片机电子时钟课程设计实验报告(1)单片机电子时钟课程设计实验报告一、实验内容本次实验的主要内容是使用单片机设计一个电子时钟,通过编程控制单片机,实现时钟的显示、报时、闹钟等功能。
二、实验步骤1.硬件设计根据实验要求,搭建电子时钟的硬件电路,包括单片机、时钟模块、显示模块、按键模块等。
2.软件设计通过C语言编写单片机程序,用于实现时钟功能。
3.程序实现(1)时钟显示功能通过读取时钟模块的时间信息,在显示模块上显示当前时间。
(2)报时功能设置定时器,在每个整点时,通过发出对应的蜂鸣声,提示时间到达整点。
(3)闹钟功能设置闹钟时间和闹铃时间,在闹钟时间到达时,发出提示蜂鸣,并在屏幕上显示“闹钟时间到了”。
(4)时间设置功能通过按键模块实现时间的设置,包括设置小时数、分钟数、秒数等。
(5)年月日设置功能通过按键模块实现年月日的设置,包括设置年份、月份、日期等。
三、实验结果经过调试,电子时钟的各项功能都能够正常实现。
在运行过程中,时钟能够准确、稳定地显示当前时间,并在整点时提示时间到达整点。
在设定的闹铃时间到达时,能够发出提示蜂鸣,并在屏幕上显示“闹钟时间到了”。
同时,在需要设置时间和年月日信息时,也能够通过按键进行相应的设置操作。
四、实验感悟通过本次实验,我深刻体会到了单片机在电子设备中的广泛应用以及C 语言在程序设计中的重要性。
通过实验,我不仅掌握了单片机的硬件设计与编程技术,还学会了在设计电子设备时,应重视系统的稳定性与可靠性,并善于寻找调试过程中的问题并解决。
在今后的学习和工作中,我将继续加强对单片机及其应用的学习与掌握,努力提升自己的实践能力,为未来的科研与工作做好充分准备。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计题目电子时钟的设计与实现学院自动化学院专业电气工程及其自动化班级姓名指导教师2014 年 1 月9 日课程设计任务书学生姓名:专业班级:指导教师:工作单位:自动化学院题目:电子时钟的设计与实现初始条件:掌握8086汇编语言程序设计方法,设计一个电子时钟,实现分、秒、时的显示与刷新功能。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1. 定义显示界面。
2. 调用系统时间,并将调用的用二进制表示的时间数转换成ASCII码,并将时间数存入内存区。
3. 将存在系统内存区的时间数用数字式或指针式钟表的形式显示出来。
4. 获取键盘的按键值,判断键值并退出系统。
5. 撰写课程设计说明书。
内容包括:摘要、目录、正文、参考文献、附录(程序清单)。
正文部分包括:设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。
时间安排:12月26日----- 12月28日查阅资料及方案设计12月29日----- 1月2日编程1月3日----- 1月7日调试程序1月8日----- 1月9日撰写课程设计报告指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要 (1)1 设计任务及要求 (2)1.1 设计题目 (2)1.2 设计要求 (2)1.3 设计过程 (2)1.4 设计目的 (2)2 设计方案论述 (3)2.1 设计方案概括 (3)2.2 设计方案具体说明 (3)2.2 设计思路介绍 (3)3 软件设计说明 (5)3.1. 理论知识介绍 (5)3.1.1 DOS中断与BIOS中断的功能及调用 (5)3.1.2 子程序的设计 (7)3.1.3 中断概述 (7)3.2 设计流程 (8)3.2.1 主流程图及说明 (9)3.2.2.显示系统时间子流程图及说明 (9)3.3. 程序设计 (10)3.3.1 清屏程序 (10)3.3.2. 光标定位程序 (10)3.3.3 多字符显示程序 (11)3.3.4 读取键盘状态程序 (12)3.3.5 读取键盘值程序 (12)3.3.6 调用系统时间显示程序 (12)3.3.7 将二进制数转换为ASCII码程序 (13)3.4 软硬件环境要求 (14)4 调试结果及分析 (15)5 收获与体会 (17)参考文献 (18)附录:设计源程序 (19)本科生课程设计成绩评定表 (25)摘要本程序用计算机最基本的语言---汇编语言,实现电子时钟系统。
程序通过调用DOS 中断,得到系统当前时间,并将其二进制转换成ASCII码,再调用DOS字符串显示功能将时间显示在显示器上,通过调用屏幕的I/O中断,把程序设计成用刷新的方式来不断获取系统的时间,这样就有了会一秒一秒走动的电子时钟。
为了使时间更加精确,在此过程需要用到延时程序,所以把延时程序单独做成一个子程序,然后在需要的时候调用它,使得时间的显示程序更加精炼,使时间显示更加准确。
关键词:8086汇编语言程序电子时钟DOS中断1 设计任务及要求1.1 设计题目掌握8086汇编语言程序设计方法,设计一个电子时钟,实现分、秒、时的显示与刷新功能。
1.2 设计要求小组内各位同学界面不能雷同,可以设计数字式时钟,也可以设计指针式时钟。
本次设计成数字时钟。
1.3 设计过程(1)定义显示界面。
(2)调用系统时间,并将调用的用二进制表示的时间数转换成ASCII码。
将时间数存入内存区。
(3)将存在系统内存区的时间数用显示字符串的形式显示出来。
(4)获取键盘的按键值,判断键值并退出系统。
(5)撰写课程设计说明书。
内容包括:目录、摘要、正文、参考文献、附录(程序清单)。
正文部分包括:设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。
1.4 设计目的(1)理解掌握定时/计数器和中断的使用方法。
(2)掌握微机常用的输入输出方式及接口技术。
(3)掌握一定的汇编语言知识,培养自己的动手操作能力。
(4)学习程序设计的基本思路和方法。
(5)熟练掌握编程软件(如Masm)基本操作和调试程序的各种指令。
(6)培养学生理论与实践相结合以及实践创新的能力2 设计方案论述2.1 设计方案概括根据此次课程设计的要求为电子时钟的设计与制作,通过8086汇编语言程序设计方法,设计一个电子时钟,实现分、秒、时的显示与刷新功能。
在此次电子时钟的设计中,主要功能是显示系统时间,通过DOS中断调用进行系统时间的提取,然后进行输出至屏幕。
2.2 设计方案具体说明(1)用汇编语言编写程序,使其能实现在PC机上用电子时钟时、分、秒的格式显示时间的功能。
(2)调用DOS中断,得到系统当前时间,并将其二进制转换成ASCII码。
(3)能用键盘输入的方法修改电子时钟的时间。
(4)把程序设计成用刷新的方式来不断获取系统的时间,这样就有了会一秒一秒走动的电子时钟。
(5)获取键盘的按键值,以“Q”键退出系统返回DOS。
时间显示的重点分为三部分,第一部分是如何调用系统时间,此次电子时钟的设计通过AH=2CH;INT 21H的DOS中断调用进行系统时间的提取。
提取的时间为二进制的存储模式,而系统的输出需要的是ASCII码,因而第二部分的重点为将二进制数转换成为ASCII码。
第三部分即为将转换的时间的ASCII码输出至屏幕,调用AH=09H;INT 21H 中断,将存储的时间作为字符输出。
2.3 设计思路介绍首先在数据段开辟一显示缓冲区,用来存储系统时间。
调用DOS中断,返回系统时间,并将来返回的二进制时间转换成ASCII码,方便时间显示时的调用。
分别将来小时数、分钟数、秒数存入显示缓冲区,并最终存入一结束字符号’$’。
调用DOS字符串显示功能将时间显示出来。
并调用屏幕I/O中断,定位光标的开始位置,结合着将时间显示在我们预先定义好的位置上。
由于获取了的系统时间不会自动刷新,所以我们要设计成刷新的方式来不断获取系统的时间,这样就形成了会跳动的电子钟了。
调用延时TIME延时中断服务程序,累加到存放秒值的寄存器DL中,并进行十进制调整。
在累加的过程中,不断地对时、分、秒值进行比较,秒不能等于60,分不能等于60,时不能等于24。
秒等于限制值时,则使秒值为0分值加1;分等于限制值时,则使分值为0时值加1;时等于限制值时,则使时值为0;时、分、秒值都不超过限制值时,就转显示屏输出。
时间显示的刷新要配合延时程序进行,为了得到良好的显示效果,延时程序要尽量接近1秒,但又不能超过一秒,所以本程序调用了一段较精确的时间延迟程序,屏幕显示延迟一段时间后再提取系统时间,然后显示,由此循环下去。
所有的按键都采取了判断键值ASCII码确定输入字符的方法确定按键值。
为了显示的美观,还设计一个字符图界面,通过显示字符串的方法显示出来。
程序一旦进入运行,就将不间断地在显示屏显示时间。
要想程序停止运行,可按“Q”键退出。
3 软件设计说明3.1. 理论知识介绍3.1.1 DOS中断与BIOS中断的功能及调用(1)DOS中断类型DOS中断类型分为13种,如表3-1所示。
表3-1 DOS中断类型中断号中断名称中断号中断名称20 程序终止27 结束并驻留内存21 功能调用28 键盘忙循环22 终止地址29 快速写字符23 Ctr l_C 中断向量2A 网络接口24 严重错误向量2E 执行命令25 绝对磁盘读2F 多路转接接口26 绝对磁盘写30-3F 保留给DOS(2)BIOS中断类型BIOS中断类型分为14种,如表3-2所示。
表3-2 BIOS中断类型10 显示器I/ O 16 键盘I/ O11 取设备信息17 打印机I/ O12 取内存容量18 ROM BASIC13 磁盘I/ O 19 引导装入程序14 RS-232 串行口I/ O 1A 时钟15 磁带I/ O 40 软盘BIOSDOS 功能与BIOS 功能都通过软件中断调用。
在中断调用前需要把功能号装入AH 寄存器,把子功能号装入AL 寄存器,除此而外,通常还需在CPU 寄存器中提供专门的调用参数。
本例中需要的BIOS中断类型有9中,如表3-3所示。
表3-3本例所用BIOS中断类型一般地说,调用DOS 或BIOS 功能时,有以下几个基本步骤:1)将调用参数装入指定的寄存器中;2)如需功能号,把它装入AH;3)如需子功能号,把它装入AL;4) 按中断号调用DOS 或BIOS 中断;5) 检查返回参数是否正确。
3.1.2 子程序的设计子程序又称为过程,它相当于高级语言中的过程和函数。
在一个程序的不同部分,往往要用到类似的程序段,这些程序段的功能和结构形式都相同,只是某些变量的赋值不同,此时就可以把这些程序段写成子程序形式,以便需要时可以调用它。
过程定义伪操作用在过程(子程序) 的前后,使整个过程形成清晰的、具有特定功能的代码块。
其格式为:procedure name PROC Attribute…procedure name ENDP其中,过程名为标识符,它又是子程序入口的符号地址。
它的写法和标号的写法相同。
属性(attribute) 是指类型属性,它可以是NEAR 或FAR。
段内调用使用NEAR 属性,段间调用使用FAR 属性。
为了使用户的工作更加方便,80x86 的汇编程序用PROC 伪操作的类型属性来确定CALL 和RET 指令的属性。
这样,用户只需在定义过程时考虑它的属性,而CALL 和RET 的属性可以由汇编程序来确定。
3.1.3 中断概述CPU在执行某一程序的过程中,出现了内部或外部某些事件的请求,CPU暂时停止当前程序的正常执行,转去执行请求事件的处理工作,CPU在事件处理结束后又继续原来的程序,这个过程称作中断。
中断程序的入口地址称作中断向量。
8086中断系统最多可以支持256个中断源,系统将这些中断向量按照中断类型码的顺序依次存放在内存RAM的最低地址区的1024个内存单元中,这就构成了中断向量表。
中断向量表的逻辑地址范围为0000H:0000H-0000H:03FF。
另外,中断向量在中断向量表中的位置就是中断向量地址,它与中断类型码之间的关系可以表示如下:中断向量地址=0000H:中断类型码*4 (1)CPU在响应中断后,根据中断源提供的中断类型码,首先计算出中断向量地址,然后根据中断向量地址在表中查找到相应的中断服务程序的入口地址。
3.2 设计流程根据电子时钟功能要求,利用汇编语言完成其程序设计。
电子时钟程序流程图如图3-1所示。
图3-1 电子时钟程序流程3.2.1 主流程图及说明在主流程图中可以了解到,进入程序后首先清屏,设置屏幕的显示,使得界面整体布局安排以及功能的提示信息出现在屏幕上。