单片机应用系统设计实例

单片机应用系统设计实例

ID:27212954

大小:251.01 KB

页数:18页

时间:2018-12-01

单片机应用系统设计实例_第1页
单片机应用系统设计实例_第2页
单片机应用系统设计实例_第3页
单片机应用系统设计实例_第4页
单片机应用系统设计实例_第5页
资源描述:

《单片机应用系统设计实例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第十一章单片机应用系统设计实例11.1单片机电子时钟的设计通常通过用单片机设计电子时钟有两种方法:一是通过单片机内部的定时器/计数器。这种方法硬件线路简单,采用软件编程实现时钟计数,一般称为软时钟。系统的功能一般与软件设计相关,通常用在对时间精度要求不高的场合;二是采用时钟芯片,它的功能强大,功能部件集成在芯片内部,自动产生时钟等相关功能。硬件成本相对较高,软件编程简单。通常用在对时钟精度要求较高的场合。11.1.1软时钟的基本原理软时钟是利用单片机内部的定时器/计数器来实现,它的处理过程如下:首先设定单片机内部的一个定时器/计数器工作于定时方式,对机器周期计数形

2、成基准时间(如10ms),然后用另一个定时器/计数器或软件计数的方法对基准时间计数形成秒(对10ms计数100次),秒计60次形成分,分计60次形成小时,小时计24次则计满一天。然后通过数码管把它们的内容在相应位置显示出来即可。11.1.2系统硬件电路的设计11.1.3系统软件程序的设计电子时钟的软件系统由主程序和子程序组成,主程序程序包含初始化参数设置、按键处理、数码管显示模块等,在设计时各个模块都采用子程序结构设计,在主程序中调用。由于定时器/计数器采用中断方式处理,因此还要编写定时器/中断服务子程序,在定时器/计数器中断服务程序中对时钟进行调整。一.主程序主

3、程序执行流程如图,主程序先对显示单元和定时器/计数器初始化,然后重复调用数码管显示模块和按键处理模块,当有键按下,则转入相应的功能程序。开始显示单元清零T0、T1设为16位计数模式允许T0中断调用显示子程序进入功能程序按下键否?否是二.数码管显示模块本系统共用8个数码管,从右到左依次显示秒个位、秒十位、横线、分个位、分十位、横线、时个位和时十位。数码管显示的信息用8个内存单元存放,这8个内存单元称为显示缓冲区,其中秒个位和秒十位、分个位和分十位、时个位和时十位分别由秒数据、分数据和小时数据分拆得到。在本系统中数码管显示采用软件译码动态显示。在存储器中首先建立一张显

4、示信息的字段码表,显示时,先从显示缓冲区中取出显示的信息,然后通过查表程序在字段码表中查出所显示的信息的字段码,从P0口输出,同时在P2口将对应的位选码输出选中显示的数码管,就能在相应的数码管上显示显示缓冲区的内容。三.定时器/计数器T0中断服务程序定时器/计数器T0用于时间计时。选择方式1,重复定时,定时时间设为50ms,定时时间到则中断,在中断服务程序中用一个计数器对50ms计数,计20次则对秒单元加1,秒单元加到60则对分单元加1,同时秒单元清0;分单元加到60则对时单元加1,同时分单元清0;时单元加到24则对时单元清0,标志一天时间计满。在对各单元计数的同

5、时,把它们的值放到存储单元的指定位置。定时器/计数器T0中断服务程序流程图如图开始现场保护,重置初值启动下一个50ms50ms计数器加1秒单元加1,50ms计数器清0,秒写入秒个位和秒十位50ms计数器=20?否是分单元加1,秒单元清0,分写入分个位和分十位秒单元=60?时单元加1,分单元清0,时写入时个位和时十位分单元=60?时单元清0时单元=24?中断返回否否否是是是四.按键处理模块按键处理设置为:如没有按键,则时钟正常走时。当按下K0按键时,进入调分状态,时钟停止走动;按K1可K2按键可进行加1或减1操作;继续按K0键可分别进行分和小时的调整;最后按K0键将

6、退出调整状态,时钟开始计时运行。五.汇编语言源程序清单(略)六.C语言源程序清单(略)11.2多路数字电压表的设计11.2.1多路数字电压表的原理及功能多路数字式电压表应用系统主要利用A/D转换器,处理过程如下:先用A/D转换器对各路电压值进行采样,得到相应的数字量,再按数字量与模拟量成正比关系运算得到对应的模拟电压值,然后把模拟值通过显示器显示出来。设计时假设待测的输入电压为8路,电压值的范畴为0~5V,要求能在四位LED数码管上轮流显示或单路选择显示。测量的最小分辨率为0.019V,测量误差为0.02V。根据系统的功能要求,控制系统采用AT89C52单片机,

7、A/D转换器采用ADC0809。ADC0809是8位的A/D转换器。当输入电压为5.00V时,输出的数据值为255(0FFH),因此最大分辨率为0.0196V(5/255)。ADC0809的具有8路模拟量输入端口,通过3位地址输入端能从8路中选择一路进行转换。如每隔一段时间轮流依次改变3位地址输入端的地址,就能依次对8路输入电压进行测量。LED数码管显示采用软件译码动态显示。通过按键选择可8路循环显示,也可单路显示,单路显示可通过按键选择显示的通道数。11.2.2系统硬件电路的设计11.2.3系统软件程序的设计一.主程序主程序包含初始化部分、调用A/D转换子程序和

8、调用显示程

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。