




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机课程设计设计(论文)用纸摘 要 数字电子钟的设计方法有多种,其中,利用单片机实现的电子钟具有编程灵活,便于电子钟功能的扩充,即可用该电子钟发出各种控制信号,精确度高等特点,同时可以用该电子钟发出各种控制信号。本文主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片机AT89C51芯片、DS18B20芯片和8位LCD液晶显示屏为核心,辅以必要的电路和74LS164、74LS244等芯片,构成了一个单片机电子时钟。它的计时周期为24小时,另外具有校时功能、闹铃功能和显示温度功能等特点。此电子钟严格按照要求设计,最终达到预期的效果,能够正确显示时、分、秒的计时,以及温度的显示,算是一次比较成功的设计。关键词:电子钟 单片机 温度测量 DS18B20芯片 液晶目 录摘 要第1章 概述21.1 基本要求21.2 原理描述21.2.1 原理框图21.2.2 基本原理3第2章 硬件电路的设计42.1 时钟基本电路42.2 温度传感器芯片42.2.1 DS18B20特性42.2.2 DS18B20D的外形和内部结构42.2.3 DS18B20工作原理52.3 数码管驱动电路52.4 键盘接口电路62.5 电路原理图6第3章 软件程序的设计73.1 软件仿真73.2 程序调试7结论9参考文献9附录11致谢23II第1章 概述1.1 基本要求数字电子钟设计与制作可采用数字电路实现,也可以采用单片机来完成。若用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。若用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,那么就降低了硬件电路的复杂性,而且其成本也有所降低,所以在该设计与制作中采用单片机AT89C51,它是低功耗、高性能的CMOS型8位单片机。另外, 我们采用了能采集温度的DS18B20温度采集芯片和一些芯片组成的一个简单的外围电路,构成一个完整的电路。实现以下功能:1.24小时计时功能用6位LCD液晶屏显示时、分、秒。2. 时间调整功能用功能移位键、功能加键和功能减键实现时间的调整。3. 闹铃功能用定闹键配合功能移位键、功能加键和功能减键三个按键设定闹铃,并用蜂鸣器实现响铃功能。4. 环境温度采集与显示功能选用温度传感器DS18B20采集环境温度,并用2位LCD液晶屏显示环境温度。1.2 原理描述1.2.1 原理框图本设计的总图原理框图如图1.1所示:图1.1 系统总体框图1.2.2 基本原理C51单片机作为微处理器MCU,是系统设计的核心部分。显示模块为八位的数码管,前六位用于时间的显示,后两位显示当前的温度值。按键部分位5个独立的按键,用于时间的调整和定时。温度采集模块的核心部件是数字温度传感器DS1820。闹铃部分用蜂鸣器来实现。系统的工作原理是单片机的内部定时器模拟时钟信号,作为时间信息传给数码管的前六位,同时单片机一定的时间间隔分别采集温度传感器的温度信息并送至数码管的后两位和扫描键盘,若发现某个键盘被按下,则作出相应的处理。定时时间到时,蜂鸣器发出响声,响1分钟后自动停止。第2章 硬件电路的设计2.1 时钟基本电路该电子钟是以单片机AT89C51为核心来完成的,在硬件电路中采用P0口作为8位LCD液晶屏的驱动接口。因为共阳的LCD液晶屏它的驱动电流是分开的,在单片机进行动态扫描的时候不会影响彼此的电流,故该电路中的8位LCD液晶屏均用共阳极。在8位LCD显示时,为了简化电路,降低成本, 8个LCD液晶显示器共用一个8位的I/O, 8位LCD液晶的位选线分别由相应的P0. 0P0. 7控制,而将其相应的段选线并联在一起,由一个8位的I/O口控制,即P2口。在电路中还设有五个按键分别用来进行定时、选时和调时的选择,他们分别与单片机的P3.2, P2.4, P2.5,P2.6,P2.7口相连接。P2.2口与蜂鸣器相连接。2.2 温度传感器芯片2.2.1 DS18B20特性1. 适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数据线供电。 2. 独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。 3. DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。 4. DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。 5. 温范围55125,在-10+85时精度为0.5。 6. 可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温。 7. 在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。 8. 测量结果直接输出数字温度信号,以一线总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。 9. 负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。 2.2.2 DS18B20D的外形和内部结构 DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的外形及管脚排列如下图:图2.1 DS18B20引脚图DS18B20引脚定义: (1)DQ为数字信号输入/输出端; (2)GND为电源地; (3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。2.2.3 DS18B20工作原理DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。 DS18B20测温原理如图3所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图3中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。2.3 数码管驱动电路本设计用的数码管为LG5641BH,是四位一体的共阳极红色数码管。数码管采用动态扫描的方式显示。寄存器74LS244用与数码管的位选信号的控制,移位寄存器74LS164用于段信号的产生,即若要某一位数码管点亮,需要74LS244产生该位的选通信号同时需要74LS164产生一定的段点亮信号。这些信号都是有单片机控制产生的。本设计使用的数码管是共阳极的,要点亮某一位数码管,需要74LS244产生一个高电平的位选通信号,同时74LS164的八个输出引脚输出对应的数码管编码信号。2.4 键盘接口电路第一个按键用于时间的调整,接在了单片机的外部中断0端,按键信号的产生由外部中断源产生,把时间调整键设为外部中断是因为,调整时间的时候时间不应该仍在走动,而中断正好符合这一特点。其余四个键盘分别接单片机的P2.4P2.7口,用扫描的方式检测按键是否被按下。具体的操作如下:调整时间:SetTime用于调整时间,Hour用于“时”的设定,Minute用于“分”的设定,最后OK用于确认设定有效。定时:Clocking用于定时,Hour用于“时”的设定,Minute用于“分”的设定,最后OK用于确认设定有效。2.5 电路原理图图2.2 电路原理图第3章 软件程序的设计3.1 软件仿真仿真软件使用的是proteus,使用该软件仿真系统可以将程序代码加载进单片机内,实现较好的仿真效果。加载的文件要以.hex为后缀的文件。加载的方法是在单片机上双击,打开Edit Component对话框,在Program File项选择要加载的文件,加载完单击对话框右侧的OK键即可。加载完文件以后,就可以进行系统仿真了。仿真的方法是分别单击软件界面左下方的 可以开启仿真、单步执行、暂停仿真和停止仿真。系统仿真图如图3.1所示:图3.1 电路仿真图3.2 程序调试编译软件使用Keil软件,调试的基本步骤为:新建一个工程命名并保存、新建一个源程序文件命名并保存、将源文件添加进工程、向源文件中输入源程序、编译调试。若出现什么错误,修改后重新编译,直至最后没有错误为止。用Keil软件调试程序的界面如图3.2所示:图3.2 程序调试界面结论经过二周的单片机课程设计,我组成员已基本完成课题要求。功能上基本达标:时钟的显示,秒表显示,定时功能,调时功能。时钟显示功能,精确度完全可以满足日常生活显示时间的需要;调时功能,方便快捷;定时功能准确可靠,还有扩展成音乐闹钟的余地。硬件设施合乎要求,软件设计可以配合硬件实现要求功能。从这次的课程设计中,我们真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的练习的过程中才能提高,我想这就是我在这次课程设计中的最大收获。参考文献1 张迎新.单片微型计算机原理、应用接口技术. 北京:国防工业出版社,2004.12 何利民.单片机高级教程. 北京:航空航天大学出版社,2000.83 谢维成.单片机原理及应用与51程序设计. 北京:清华大学出版社,2006.84 曹洪奎,马莹莹.基于Proteus单片机系统设计与仿真.辽宁工学院学报07年04期5 侯玉宝.基于Proteus的51系列单片机设计与仿真M.电子工业出版社,2008.2702886 蔡希彪,曹洪奎.单片机电子时钟系统的设计与仿真J.中国科技信息,2007年04期附录源程序如下/*电子钟设计源程序*/#include/*位定义*/sbit bee=P22;sbit DQ=P21;sbit R=P20;sbit K2=P24;/按键sbit K3=P25;sbit OK=P26;sbit Ring=P27;bit mark1,mark2;/*数码管编码*/char hour,minute,second,A,clockH,clockMin,aa;char code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/*函数原型声明*/void display_hour(char);void display_minute(char);void display_second(char);void display_temp(char);void display(char,char,char,char);void chu_shi_hua();void Clocking();void delay(int);unsigned char templow_byte,temphi_byte;unsigned char ow_reset(void);unsigned char read_bit(void);void write_bit(char bitval);unsigned char read_byte(void);void write_byte(char val);void wendu();/main函数/void main()char choice;chu_shi_hua();while(1)wendu();if(Ring=0)delay(100);if(Ring=0)choice=1; /定时键按下,则定时 else choice=0;switch(choice)case 0:display(hour,minute,second,A);break;case 1: Clocking();/*函数名:display(char hour,char minute,char second,char A)*调用:display_hour(hour)、display_minute(minute)、display_second(second) display_temp(A)*作用:显示时间信息和温度信息*/void display(char hour,char minute,char second,char A)display_hour(hour); display_minute(minute);display_second(second);display_temp(A);if(hour=clockH&minute=clockMin) /闹钟bee=0;delay(100);bee=1;/*函数名:display_hour(char hour)*调用:delay()*作用:显示时*/void display_hour(char hour) /显示时char h1,h2;h1=hour/10;h2=hour%10;R=0;R=1;SBUF=tableh1;while(!TI);P1=0x01;delay(20);P1=0;TI=0;R=0;R=1;SBUF=tableh2;while(!TI);P1=0x02;delay(20);P1=0;TI=0;/*函数名:display_minute(char minute) *调用:delay()*作用:显示分*/void display_minute(char minute) /显示分char min1,min2;min1=minute/10;min2=minute%10;R=0;R=1;SBUF=tablemin1;while(!TI);P1=0x04;delay(20);P1=0;TI=0;R=0;R=1;SBUF=tablemin2;while(!TI);P1=0x08;delay(20);P1=0;TI=0;/*函数名:display_second(char second)*调用:delay()*作用:显示秒*/void display_second(char second) /显示秒char sec1,sec2;sec1=second/10;sec2=second%10;R=0;R=1;SBUF=tablesec1;while(!TI);P1=0x10;delay(20);P1=0;TI=0;R=0;R=1;SBUF=tablesec2;while(!TI);P1=0x20;delay(20);P1=0;TI=0;/*函数名:display_temp(char A)*调用:delay()*作用:显示温度*/void display_temp(char A) /显示温度char shi,ge;shi=A/10;ge=A%10;R=0;R=1;SBUF=tableshi; /向发送缓冲器SBUF中写数据while(!TI); /直到发送完8位数据P1=0x40;delay(20);P1=0;TI=0;R=0;R=1;SBUF=tablege;while(!TI);P1=0x80;delay(20);P1=0;TI=0;/*函数名:chu_shi_hua() *调用:*作用:初始化一些参数*/void chu_shi_hua() /初始化函数SM0=0; /串行口设置为工作方式0SM1=0;aa=0;mark1=1;mark2=1;hour=12;minute=0;second=30;clockH=0;clockMin=0;K2=1; /键盘读之前先置1K3=1;OK=1;TMOD=0X01;TH0=(65535-50000)/256;TL0=(65535-50000)%256;EA=1;ET0=1;TR0=1;EX0=1;IT0=0; /外部中断0为电平触发方式PX0=1; /外部中断为高优先级中断/*函数名:SetTime()*调用:*作用:中断函数,用于调整时间*/void SetTime() interrupt 0 /调整时间函数while(OK) display_hour(hour); display_minute(minute);if(K2=0)delay(100);if(K2=0)while(!K2);delay(100);while(!K2);hour+;if(hour=24)hour=0;if(K3=0)delay(100);if(K3=0)while(!K3);delay(100);while(!K3);minute+;if(minute=60)minute=0;/*函数名:timer0()*调用:*作用:中断函数,用于模拟时间信息*/void timer0() interrupt 1 /定时器0中断函数TH0=(65535-50000)/256;TL0=(65535-50000)%256;aa+;if(aa=20)aa=0;second+;if(second=60)second=0;mark1=0;if(mark1=0)mark1=1;minute+;if(minute=60)minute=0;mark2=0;if(mark2=0)mark2=1;hour+;if(hour=24)hour=0;/*函数名:Clocking()*调用:display_hour(clockH)、display_minute(clockMin)*作用:用于定时*/void Clocking() /定时函数while(OK) display_hour(clockH); display_minute(clockMin);if(K2=0)delay(100);if(K2=0)while(!K2);delay(100);while(!K2);clockH+;if(clockH=24)clockH=0;if(K3=0)delay(100);if(K3=0)while(!K3);delay(100);while(!K3);clockMin+;if(clockMin=60)clockMin=0;/温度采集函数/延时函数void delay(int us)int s;for(s=0;sus;s+);/复位函数unsigned char ow_reset(void)unsigned char presence;DQ=0;delay(29);DQ=1;delay(3);presence=DQ;delay(25)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广东惠州市龙门县乡村公益性岗位招聘26人模拟试卷附答案详解(典型题)
- 2025安徽中医药大学专职辅导员招聘10人模拟试卷及答案详解一套
- 2025年湖南高速土地资源经营有限公司第二批任务型劳动合同人员招聘考前自测高频考点模拟试题及答案详解(典优)
- 2025广西南宁市司法局招聘工作人员3人考前自测高频考点模拟试题有完整答案详解
- 2025年西北(西安)电能成套设备有限公司招聘(4人)考前自测高频考点模拟试题及一套参考答案详解
- 2025北京市朝阳区教育委员会所属事业单位招聘毕业生394人模拟试卷及答案详解(新)
- 2025河北中核二四劳务有限公司招聘200人考前自测高频考点模拟试题及1套完整答案详解
- 2025辽宁盘锦建设投资有限责任公司招聘工作人员和考前自测高频考点模拟试题完整参考答案详解
- 2025年三门峡黄河明珠(集团)有限公司公开招聘高校毕业生8人模拟试卷附答案详解(突破训练)
- 2025年杭州淳安县第二人民医院公开招聘合同制工作人员2人模拟试卷及答案详解(历年真题)
- 1 《中国人民站起来了》课件高二上学期语文大单元教学同步备课课件(统编版选择性必修上册)
- 2024-2030年中国橡塑密封件行业发展分析及发展趋势预测与投资风险研究报告
- 闽2023-G-01先张法预应力高强混凝土管桩DBJT13-95
- 安全事故应急处置流程
- 玻璃纤维模压成型工艺
- 新生儿呕吐护理查房课件
- 高级茶艺师理论知识试题
- 【高中地理】中国的耕地资源与粮食安全+课件+地理人教版(2019)选择性必修3
- APD自动化腹膜透析机的使用
- 食品的生物保藏技术
- 中海油劳动合同范本
评论
0/150
提交评论