数字时钟设计开发项目报告教材Word文档格式.docx
- 文档编号:13756714
- 上传时间:2022-10-13
- 格式:DOCX
- 页数:25
- 大小:384.48KB
数字时钟设计开发项目报告教材Word文档格式.docx
《数字时钟设计开发项目报告教材Word文档格式.docx》由会员分享,可在线阅读,更多相关《数字时钟设计开发项目报告教材Word文档格式.docx(25页珍藏版)》请在冰豆网上搜索。
仪器设备
(参考资料)
计算机、KeiluVision2、ProteusISIS
实训内容
(任务安排)
1-1需求分析、硬件设计方案确定
1-2软件开发与实现
1-3软硬件联调
1-4项目验收总结
1、项目概述
以单片机STC89C52RC作为主控芯片,利用按键、数码管显示模块,结合中断、定时器功能,构成一个数字时钟,通过项目实训掌握单片机基本输入输出系统的设计与应用。
2、项目要求
针对每个项目,教师给出所需背景知识、参考资料、师生交流平台、项目要求、相关案例、开发流程、注意事项等指导学生。
根据项目开发流程组成学生开发团队,创建协作学习环境。
每个团队由6-8人组成,分别担当不同角色。
这种模拟教学法的做法模拟了企业中真实开发情景,使学生在学习过程中感受到公司工作的气氛。
具体要求如下:
1、能够简单分析实际项目的功能需求;
2、能够进行IO接口电路设计与元器件选型;
3、能够使用Proteus绘制电路原理图并仿真;
4、能用C51设计应用程序;
5、能够对系统进行测试与优化;
6、能够编制规范的技术文档;
7、能对系统软硬故障进行检测与排除;
8、培养自主学习能力、收集分析、处理信息能力、团队协作能力;
9、培养职业道德素质、心理素质、沟通、组织和执行任务的能力;
10、培养汇报发言时,条理清晰,表达清楚,体现出认真细致、全面的思维习惯。
11、培养学生良好的工作设计习惯。
12、培养实事求是、客观公正的评价自己,体现在社会交往中的承受挫折与迎接挑战的意识。
3、系统设计
1、框图设计
AT89C51
晶振电路
数码管
复位按键
时分秒按键
2、知识点
1)单片机型号的选择
89C51是最理想的电子时钟开发芯片。
89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,而且它与MCS-51兼容,且具有4K字节可编程闪烁存储器和1000写/擦循环,数据保留时间为10年等特点,是最好的选择。
2)数码管显示工作原理
数码管是一种把多个LED显示段集成在一起的显示设备。
有两种类型,一种是共阳型,一种是共阴型。
共阳型就是把多个LED显示段的阳极接在一起,又称为公共端。
共阴型就是把多个LED显示段的阴极接在一起。
阳极即为二极管的正极,又称为正极,阴极即为二极管的负极,又称为负极。
通常的数码管又分为8段,即8个LED显示段,这是为工程应用方便如设计的,分别为A、B、C、D、E、F、G、DP,其中DP
是小数点位段。
而多位数码管,除某一位的公共端会连接在一起,不同位的数码管的相同端也会连接在一起。
数码管显示方法可分为静态显示和动态显示两种。
静态显示就是数码管的8段输入及其公共端电平一直有效。
动态显示的原理是,各个数码管的相同段连接在一起,共同占用8
位段引管线;
每位数码管的阳极连在一起组成公共端。
利用人眼的视觉暂留性,依次给出各个数码管公共端加有效信号,在此同时给出该数码管加有效的数据信号,当全段扫描速度大于视觉暂留速度时,显示就会清晰显示出来
3)键盘电路设计
该设计用到了个键盘,实现的功能比较完善,减少了硬件资源的损耗,该键
盘可以实现小时和分钟的调节以及复位的控制。
直接按下不松开,则可以通过按键实现分钟的累加,每按一次分钟加一;
而连续两次按下按键不放松,则可实现小时的调节,同样每按一次小时加一。
达到时间调节的目的。
4)晶振振荡器电路
单片机系统里都有晶振,在单片机系统里晶振作用非常大,全程叫晶体振荡器,他结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片接的一切指令的执行都是建立在单片机晶振提供的时钟频率。
在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十。
高级的精度更高。
有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器(VCO)。
晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。
单片机晶振的作用是为系统提供基本的时钟信号。
通常一个系统共用一个晶振,便于各部分保持同步。
有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。
晶振通常与锁相环电路配合使用,以提供系统所需的时钟频率。
如果不同子系统需要不同频率的时钟信号,可以用与同一个晶振相连的不同锁相环来提供。
下面我就具体的介绍一下晶振的作用以及原理,晶振一般采用如图1a的电容三端式(考毕兹)交流等效振荡电路;
实际的晶振交流等效电路如图1b,其中Cv是用来调节振荡频率,一般用变容二极管加上不同的反偏电压来实现,这也是压控作用的机理;
把晶体的等效电路代替晶体后如图1c。
其中Co,C1,L1,RR是晶体的等效电路。
分析整个振荡槽路可知,利用Cv来改变频率是有限的:
决定振荡频率的整个槽路电容C=Cbe,Cce,Cv三个电容串联后和Co并联再和C1串联。
可以看出:
C1越小,Co越大,Cv变化时对整个槽路电容的作用就越小。
因而能“压控”的频率范围也越小。
实际上,由于C1很小(1E-15量级),Co不能忽略(1E-12量级,几PF)。
所以,Cv变大时,降低槽路频率的作用越来越小,Cv变小时,升高槽路频率的作用却越来越大。
这一方面引起压控特性的非线性,压控范围越大,非线性就越厉害;
另一方面,分给振荡的反馈电压(Cbe上的电压)却越来越小,最后导致停振。
通过晶振的原理图你应该大致了解了晶振的作用以及工作过程了吧。
采用泛音次数越高的晶振,其等效电容C1就越小;
因此频率的变化范围也就越小。
微控制器的时钟源可以分为两类:
基于机械谐振器件的时钟源,如晶振、陶瓷谐振槽路;
RC(电阻、电容)振荡器。
一种是皮尔斯振荡器配置,适用于晶振和陶瓷谐振槽路。
另一种为简单的分立RC振荡器。
用万用表测量晶体振荡器是否工作的方法:
测量两个引脚电压是否是芯片工作电压的一半,比如工作电压是51单片机的+5V则是否是2.5V左右。
另外如果用镊子碰晶体另外一个脚,这个电压有明显变化,证明是起振了的。
晶振的类型有SMD和DIP型,即贴片和插脚型。
5)单片机的复位电路
在上电或复位过程中,控制CPU的复位状态:
这段时间内让CPU保持复位状态,而不是一上电或刚复位完毕就工作,防止CPU发出错误的指令、执行错误操作,也可以提高电磁兼容性能。
无论用户使用哪种类型的单片机,总要涉及到单片机复位电路的设计。
而单片机复位电路设计的好坏,直接影响到整个系统工作的可靠性。
许多用户在设计完单片机系统,并在实验室调试成功后,在现场却出现了“死机”、“程序走飞”等现象,这主要是单片机的复位电路设计不可靠引起的。
基本的复位方式单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。
89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。
当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。
单片机系统的复位方式有:
手动按钮复位和上电复位
6)中断
中断就是一个资源面对多项任务的处理方式,由于资源有限,面对多项任务同时要处理时,就会出现资源竞争的现象。
中断技术就是为了解决资源竞争的一个可行的方法,采用中断技术可使多项任务共享一个资源。
CPU正在执行原程序,突然,被意外事情打断,转去执行新程序。
CPU执行新程序结束后,又回到原程序中继续执行。
这样的过程就叫中断。
首先来了解程序的格式:
void函数名()interruptm[usingn]
{}
关键字interruptm[usingn]表示这是一个中断函数
m为中断源的编号,有五个中断源,取值为0,1,2,3,4,中断编号会告诉编译器中断程序的入口地址,执行该程序时,这个地址会传个程序计数器PC,于是CPU开始从这里一条一条的执行程序指令。
n为单片机工作寄存器组(又称通用寄存器组)编号,共四组,取值为0,1,2,3中断号中断源
0外部中断0
1定时器0
2外部中断1
3定时器1中断
4串行口中断
这5个中断源的中断入口地址为:
(在上一篇文章中讲到的ROM前43个存储单元就是他们,这40个地址用来存放中断处理程序的地址单元,每一个类中断的存储单元只有8B,显然不是中断处理的程序,而是存放着中断处理程序的真正地址)
INT0:
0003H0
T0:
000BH1
INT1:
0013H2
T1:
001BH3
串口:
0023H4
中断向量(中断入口地址)=中断号x8+3
前面m意思很清楚,不同的m值表示这个函数是针对不同的中断源,比如m为1是表示它是定时器0的中断函数,
如voidtime0()interrupt1{}
那么后面的usingn又是什么意思呢?
在正在执行一个特定任务时,有更紧急的事情需要CPU来处理,涉及到中断优先权。
高优先权中断低优先权正在处理的程序,所以最好给每个优先程序分配不同的寄存器组。
CPU正在处理某个事件,突然另外一个事件需要处理,于是进入中断后,
而你不想将现在执行的程序的各寄存器状态入栈,那么可以把这个中断程序放入另一个寄存器组,如切换到1组,然后退出中断时,再切回到0组(原来的程序在0组)。
为了更好的了解这里意思,你可以看看工作寄存器组的作用是什么。
下面的注意事项
(1)中断函数不能进行参数传递
(2)中断函数没有返回值
(3)在任何情况下都不能直接调用中断函数
(4)中断函数使用浮点运算要保存浮点寄存器的状态。
(5)如果在中断函数中调用了其它函数,则被调用函数所使用的寄存器必须与中断函数相同,被调函数最好设置为可重入的。
(6)C51编译器对中断函数编译时会自动在程序开始和结束处加上相应的内容,具体如下:
在程序开始处对ACC、B、DPH、DPL和PSW入栈,结束时出栈。
中断函数未加usingn修饰符的,开始时还要将R0~R1入栈,结束时出栈。
如中断函数加usingn修饰符,则在开始将PSW入栈后还要修改PSW中的工作寄存器组选择位。
(7)C51编译器从绝对地址8m+3处产生一个中断向量,其中m为中断号,也即interrupt后面的数字。
该向量包含一个到中断函数入口地址的绝对跳转。
(8)中断函数最好写在文件的尾部,并且禁止使用extern存储类型说明。
防止其它程序调用。
(9)在设计中断时,要注意的是哪些功能应该放在中断程序中,哪些功能应该放在主程序中。
一般来说中断服务程序应该做最少量的工作,这样做有很多好处。
首先系统对中断的反应面更宽了,有些系统如果丢失中断或对中断反应太慢将产生十分严重的后果,这时有充足的时间等待中断是十分重要的。
其次它可使中断服务程序的结构简单,不容易出错。
中断程序中放入的东西越多,他们之间越容易起冲突。
简化中断服务程序意味着软件中将有更多的代码段,但可把这些都放入主程序中。
中断服务程序的设计对系统的成败有至关重要的作用,要仔细考虑各中断之间的关系和每个中断执行的时间,特别要注意那些对同一个数据进行操作
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 时钟 设计 开发 项目 报告 教材