版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、兵工自动化 测控技术 O. I. Automation 2005年第24卷第4期 Measurement and Control Technique 2005, Vol. 24, No. 4文章编号:1006-1576(2005)04-0082-03多功能智能电子钟的设计何宏森(西南科技大学 信息工程学院,四川 绵阳 621010)摘要:多功能智能电子钟以AT89C2051芯片为核心,采用静态与动态相结合的扫描方式显示。系统软件包括主程序和中断模块,基本时间、总天数、星期、公历、阴历等日历算法模块。其显示模块采用单片机串行输出,以分时动态扫描方式点亮21块LED数码管和4个发光二极管。关键词:
2、电子钟;单片机;日历算法;动态显示 中图分类号:TP216.2 文献标识码:ADesign of Intellectual Electronic-Clock of MultifunctionHE Hong-sen(College of Information Engineering, Southwest University of Science & Technology, Mianyang 621010, China) Abstract: The chip of AT89C2051 is based on as the core of intellectual electronic-
3、clock, and the scanning mode is applied to display by combining dynamic scan with static scan. The system software includes: main program, interrupt program and the programmed algorithm about calendar of basic time, total days, week, the Gregorian calendar and the lunar calendar. The displaying modu
4、le is designed with serial output of one chip computer, 21 pieces of LED nixie light and 4 pieces of LBDs were lighted up by the way of dynamic time-sharing scan.Keywords: Electronic-clock; Chip computer; Calendar algorithm; Dynamic display1 引言万年历阴历算法以往都使用数据表。通过查询实现,但所占空间较大。故从公农历间的关系入手,设计电子万年历,时间长度是
5、100年(即从20002100年)。主程序对各单元初始化,计数器溢出后进入中断程序。调用子程序,中断返回后又继续计数,再次溢出后再进入中断程序,如此周而复始执行。进入中断程序(图2)后,先重新对T0赋初值,再调用各算法子程序,记数初值保证子程序执行完后不发生第二次中断。2 硬件电路设计图1 电子钟的硬件框图3.2 日历算法采用AT89C2051芯片为核心,具有自动计算和显示公农历日历、星期、时间和气温。显示部分用分时动态扫描方式点亮LED数码管,单片机通过P1口发出位码并经PNP三极管驱动对需显示的LED供电,显示数据由单片机从串口发出经74LS164进行串并转换,采用静态与动态相结合的扫描方
6、式显示。温度监测电路采用热敏电阻和555定时器及辅助电路构成多谐振荡器,根据热敏电阻阻值随温度变化的曲线,单片机可以根据1s内555定时器输出的方波个数来计算气温值。(1) 基本时间算法设定4ms中断一次,即一秒要中断250次。通过判断预定数据缓冲单元的值,此值一到250,秒单元就加一,否则中断返回继续计数。判断秒单元,只要秒单元到60,分单元就加一,否则中断返回继续计数。再判断分单元,只要分单元到60,小时单元就加一,否则中断返回继续计数。然后再判断小时单元,小时单元一满24,那么天单元就加一,否则中断返回继续计数。如循环计算如图3。(2) 总天数算法为实现公历向农历的转换须进行总天数计算。
7、公历3 软件实现3.1 主程序及中断模块收稿日期:2005-02-19;修回日期:2005-03-25 作者简介:何宏森,作者未提供。·82·兵工自动化 测控技术 O. I. Automation 2005年第24卷第4期 Measurement and Control Technique 2005, Vol. 24, No. 4计算定义2000年1月1日为起始年,总天数计为Day1。农历计算中定义农历1999年1月1日为起始年(即公历1999年2月16日,相差319天),总天数计为Day2Day1319天。 低8位不够除的时候,就要向高8位借位。此时,高8位减1,低8位就
8、可以加4再除7(因为256/7余4),同时要判断高8位是不是小于0。如果是则完成除法,如果不是则继续除到真正不够除为止。表1 余数与星期信息对照表余数 星期信息(5) 农历算法农历算法基本上和公历一样,也是逐月递减的方法(此处是减一个的天数,比如29天或者30天)。要保存一年的信息,只要三个信息:农历每月,是否有闰月,闰几月以及闰月的大小。用相邻的两个内存单元来保存这些信息。农历算法如图4。图3 基本时间的程序流程如要计算今天2004.6.1距2000.1.1的总天数,只要从内存单元提出年份的十位和个位的信息,用它减去0(00年)。得X104。提取月份信息X26-15。可算出前5个月经过的天数
9、X2。日信息X31-10。还需要考虑闰年的年份信息和月份信息,如果有闰年就需要把多出的天数加上。因此,总天数TOTLE(X1×365X11)X2(每年基本上是一样的只有闰年和非闰年差一天)X3。用年份信息除以4,令商为K,余数为M。M0时为闰年,那么X11K。如果M0,说明不是闰年,那么X11K1。这样Day1就求得。设计中预留两个内存单元(即高8位和低8位)存放总天数。(3) 公历算法公历算法基本上和农历一样都用逐月递减法(每减12个月存放年份信息的单元的内容就加1)。这个年份信息加上“起始年信息”就是现在的年份信息,月和日的信息在根据公农历不同而得到不同的结果。每年各月份的天数基
10、本上是固定的如下表,除了2月可能有28天或者29天。设置两个标识,一个R1内存放即将减的月号,一个R0存放当前年信息,当R1到12时R0就加1。当R1为2时,判断当时的R0内的年份信息是否闰年了。如果是闰年就减29天,反之则减28天。其余月份则就减相应的30和31。(4) 星期算法星期算法有两种。一种是当小时信息满24时,存放星期信息的内存单元就加1,满7归1,如此循环获得某天为星期几。另外一种算法是:总天数(初始值1)/7的余数,就是当天的星期信息,见表1。但该算法要考虑除法的高8位借位问题,当图4 农历算法流程3.3 显示模块显示部分用分时动态扫描方式点亮LED数码管,故需分时点亮21块L
11、ED数码管和4个发光二极管。用单片机串行输出,一次传送数据给三块74LS164(一组点亮三块LED),74LS164再并行输出进行动态扫描。三块74LS164首尾相接,前面164的Q7脚连接在下一个164的A,B输入脚。扫描一次就需要送三组数据到三块164中,前8个周期送最后一块164的信息,中间8个周期送中间一块164的信息,最后一个8个周期就完成排在最前面的164的信息的传送。此时再通过单片机的P1口给相应要点亮的LED的驱动电路的三极管的基极送低电平即可。在每组LED点亮后稍微的延时·83·兵工自动化 测控技术 O. I. Automation 2005年第24卷第4
12、期 Measurement and Control Technique 2005, Vol. 24, No. 4(如延时80us),然后立即关断以解决残影问题。表2是程序中用到的内存单元中对应的信息表2 显示程序中用到的内存单元内存单元信息 信息 30H 31H 公历年的前两位 公历年的后两位 32H 33H 公历月 公历日 34H 35H 公历星期 算出的总天数高位36H 37H 算出的总天数高位 356的高位(1H)38H 356的低位(6DH) 40H 天的进位42H 43H 运算时月份信息高低位44H 45H 运算时日信息 作乘法暂用 46H 47H 作乘法暂用 48H 4AH 319
13、的高位(1H)4BH 319的低位(3FH) R0 显示移位指针(60H)50H 53H 55H 60H 62H农历月 小时 秒运算时总天数高位温度高位公历年前两位高位51H 54H 56H 61H 63H农历日分 百分秒运算时总天数低位小时的高位 温度低位66H 68H 6AH 6CH 72H 74H 76H 小时低位 农历月高位 公历年后两位高位分高位 农历日高位公历月高位 秒高位 随机数 公历日高位 四个二极管 67H 69H 6BH 6DH 73H 75H 77H 公历年前两位低位星期 农历月低位 公历后两位低位分低位农历日低位公历月低位 秒低位 随机数 公历日低位4 结论在电子钟硬件
14、电路基础上,用汇编语言编写程序写入芯片后,成品已交付使用,达到了预期效果。参考文献:1 李朝青. PC机与单片机&DSP数据通信技术选编2M.北京: 北航出版社, 2003.2 吕能元, 孙育才. MCS-51单片机原理/接口技术/应用实例M. 北京: 科学出版社, 1996.*(上接第81页)图7 2通道方式字若写驱动板地址为300H30FH,8253端地址为300303H,要求定时0通道输出端OUT。得到250Hz的方波信号,并输出65535个脉冲,震荡器提供0通道计数脉冲频率为125kHz。 确定工作方式:要求OUT0端输出的是连续方波,所以定时器0通道应工作在方式3。OUT1输
15、出接0通道GATE0,OUT0输出65535个脉冲后就由OUT1封锁,停止输出。所以1通道计数器设置初始值为65535,工作方式为0。 计算初值:8253的0通道工作在方式3,OUT0端输出信号的频率是由CLK0端的信号经定时器分频得到的,而分频系数就是从计数器初值开始减1时所计得的时钟周期数。因此初值分频系数fclk/fout。采用二进制计数,定时器0:Nfclk0/fout0125000/250500。化为十六进制数01F4H,控制字如图8。0 二进制计数MOV AL,01OUT DX,AL;写定时器0计数初值高8位 MOV DX,303HMOV AL,70H;写定时器1控制字 OUT DX,AL MOV DX,301HMOV AL,OFFH;写定时器1计数初值低8位 OUT DX,AL MOV AL,OFFHOUT DX,AL;写定时器1计数初值高8位 MOV DX,304H MOV AL,01HOUT DX,AL;把定时器1的控制条件GATE1通过304H口地址送到74LS273锁存器3 结束语该项目的控制系统已用于低速风洞流场校测中,无论从安全性能上还是精度上都达到了标准。参考文献:1 施洪昌. CS16100高速高精度数据采集与处理系统J.测控系统, 1998.2 李大友.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 咖色欧美商务商业计划书模板
- 安钢总医院2026年成熟型人才招聘备考题库附答案详解
- 2型糖尿病早期β细胞功能保护策略
- 2025年江苏经贸职业技术学院公开招聘工作人员26人备考题库(第二批)含答案详解
- 2025年关于招聘急需专业兼职教师的备考题库及参考答案详解
- 基于区域协同的人工智能教育质量评价体系与教育评价标准体系研究教学研究课题报告
- 攀枝花市兴东投资建设集团有限责任公司关于2025年公开招聘工作人员的备考题库及答案详解参考
- 初中生物教师教学画像与数字化教育资源精准投放的实践探索教学研究课题报告
- 2025年郑州市第十五人民医院人员招聘备考题库参考答案详解
- 2025年新疆额河矿业有限责任公司公开招聘备考题库及答案详解1套
- 施工质量安全环保工期售后服务保障措施及相关的违约承诺
- JJF(蒙) 真空测量系统在线校准规范
- 沟槽施工安全培训课件
- 送餐车采购方案范本
- 110kv高压配电网设计
- 水上作业事故预防与应急处理措施
- 液流电池原理讲解
- 公司发展三年规划方案
- 银保监会健康险政策解读
- 《山东省市政工程消耗量定额》2016版交底培训资料
- 2025至2030中国DSP芯片行业产业运行态势及投资规划深度研究报告
评论
0/150
提交评论