单片机时钟温度实训报告_第1页
单片机时钟温度实训报告_第2页
单片机时钟温度实训报告_第3页
单片机时钟温度实训报告_第4页
单片机时钟温度实训报告_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、·单片机实训报告系 别: 电气信息工程学院 姓 名: 胡 猛 专 业: 电气自动化1133 绪 论计算机的产生加快了人类改造世界的步伐,但是它毕竟体积大。单片机在这种情况下诞生了。截止今日,单片机应用技术飞速发展,纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。 单片计算机即单片微型计算机。(Single-Chip Microcomputer ),是集CPU ,RAM ,ROM ,定时,计数和多种接口于一体的微控制器。它体积

2、小,成本低,功能强,广泛应用于智能产业和工业自动化上。而51系列单片机是各单片机中最为典型和最有代表性的一种。这次毕业设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。二、实训任务1.在Proteus环境下建立原理图。2.在Keil环境下编写程序实现电子钟和温度显示。3.系统功能要求:(1)使用四位LED数码管显示器实现小时、分钟显示,小时和分钟之间用小数点隔开,秒的显示利用最后一位数字的小数点代表秒。小时调整使用按键K1实现,分钟调整使用按键K2实现。当K3按下时显示DS18B20所测温度。其他附加功能不限。(2)扩展功能:在完成功能(1)的基础上可利用蜂鸣器实现整点报时,超温

3、报警等功能。4.焊接电路板,完成硬件电路的焊接烧写程序,完成系统功能要求。硬件元件清单:显示原理硬件介绍  PDIP封装的AT89C52引脚图AT89C52为8 位通用微处理器,采用工业标 准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd(9 脚)为复位输入端口,

4、外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。P0P3 为可编程通用I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(3239 脚)被定义为N1 功能控制端口,分别与N1的相应功能管脚相连接,13 脚定义为IR输入端,10 脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连接主板CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。1、兼容MCS51指令系统2、8kB可反复擦写(大于1000次)Flash ROM;3

5、、32个双向I/O口;4、256x8bit内部RAM;5、3个16位可编程定时/计数器中断;6、时钟频率0-24MHz;7、2个串行中断,可编程UART串行通道;8、2个外部中断源,共8个中断源;9、2个读写中断口线,3级加密位;10、低功耗空闲和掉电模式,软件设置睡眠和唤醒功能;温度显示DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢   封装式,型号多种多样,有LTM8877,LTM8874等等。主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温

6、,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。1: 技术性能描述、 独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。 、测温范围 55+125,固有测温误差(注意,不是分辨率,这里之前是错误的)0.5。、支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。、工作电源: 35V/DC (可以数据线寄生电源) 、在使用中不需要任何外围元件、 测量结果以9

7、12位数字量方式串行传送 、不锈钢保护管直径 6 、适用于DN1525, DN40DN250各种介质工业管道和狭小空间设备测温、 标准安装螺纹 M10X1, M12X1.5, G1/2”任选数码管 原理图 实物图数码管是一种半导体发光器件,其基本单元是发光二极管,是单片机系统中最常用的一种显示输出,主要用于单片机控制中的数据输出和状态信息显示。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到

8、一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。仿真图:三、软件设计1.主程序流程图图1 主程序流程图图2. 1s中断服务子程序流程图2.电子时钟:利用定时器T0实现1s定时,T0设置为方式1,时间50ms,利用软件计数20次,实现1s定时。

9、中断服务子程序流程图如图2参考以上流程图编写程序。使用Proteus和Keil仿真。使用定时器中断T0实现。 图3. 显示子程序流程图 图4. 按键扫描子程序流程图3.显示子程序流程图:参考以上流程图3,编写显示时间的子程序或函数。小时和分钟之间利用显示器的小数点隔开,秒的显示用显示器最后一位的小数点来表示,1秒闪一次。使用Proteus和Keil仿真调试。4.按键扫描子程序功能:扫描按键K1、K2和K3,当K1按下时,小时加1,当K2按下时分钟加1,使用K3实现,时间/温度切换显示。按以下流程图4编写程序。4.焊接电路板,完成硬件电路的焊接烧写程序,完成系统功能要求。硬件元件清单:名称引脚数

10、量名称引脚数量瓷片电容22蜂鸣器21电解电容21电阻2254位共阳LED数码管121温度传感器31按键44AT89C51401晶体振荡器21松香1盒导线1段40针管座2焊锡1段程序:#include<reg51.h>#include<18b20.h>#define uint unsigned int#define uchar unsigned charsbit k1=P10;sbit k2=P11;sbit k3=P12;sbit beep=P36;uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80

11、,0x90;uchar code wei1=0x01,0x02,0x04,0x08,0x10,0x20;uchar shi=0,fen=0,miao=0,count=0;void delay(uint z)uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);void buzz()uint i; if(fen=59)&&(miao>51) beep=beep; for(i=0;i<50;i+); void displaytime( ) P2=wei10;P0=tableshi/10;delay(5);P2=wei11;P0=

12、tableshi%10;delay(5);P2=wei12;P0=tablefen/10;delay(5); P2=wei13;P0=tablefen%10;delay(5); P2=wei14;P0=tablemiao/10;delay(5);P2=wei15;P0=tablemiao%10;delay(5); void keyscan()if(k1=0)/调分钟 delay(5); if(k1=0) fen+; while(!k1); if(fen=60)fen=0; if(k2=0) /调小时delay(5); if(k2=0) shi+; while(!k2); if(shi=12)

13、shi=0; void main() TMOD=0x11; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TH1=(65536-5000)/256; TL1=(65536-5000)%256; EA=1; ET0=1;TR0=1; ET1=1; TR1=1;while(1) keyscan(); void t0() interrupt 1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; count+ ;if(count=10) count=0; miao+; if(miao=60) miao=0; fen

14、+; if(fen=60) fen=0; shi+; if(shi=12) shi=0; fen=0; miao=0; void t1() interrupt 3TH1=(65536-5000)/256; TL1=(65536-5000)%256; if(k3=1) delay(5); if(k3=1) displaytime(); buzz(); else ds1820rst();/初始化显示 read_temp();/读取温度 ds1820disp();/显示 #define uint unsigned int#define uchar unsigned charsbit DQ=P30;/

15、ds18b20与单片机连接口unsigned char code str=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/共yang数码管字码表unsigned char code str1=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10;/个位带小数点字码表unsigned char code wei=0x01,0x02,0x04,0x08,0x10,0x20;unsigned char data disdata4;unsigned int tvalue;/温度值unsigned cha

16、r tflag;/温度正负标志/*ds1820程序*/void delay_18B20(unsigned int i)/延时1微秒 while(i-);void ds1820rst()/*ds1820复位*/ unsigned char x=0;DQ = 1; /DQ复位delay_18B20(4); /延时DQ = 0; /DQ拉低delay_18B20(100); /精确延时大于480usDQ = 1; /拉高delay_18B20(40); unsigned char ds1820rd()/*读数据*/ unsigned char i=0;unsigned char dat = 0;fo

17、r (i=8;i>0;i-) DQ = 0; /给脉冲信号 dat>>=1; DQ = 1; /给脉冲信号 if(DQ) dat|=0x80; delay_18B20(10); return(dat);void ds1820wr(uchar wdata)/*写数据*/uchar i=0; for (i=8; i>0; i-) DQ = 0; DQ = wdata&0x01; delay_18B20(10); DQ = 1; wdata>>=1; read_temp()/*读取温度值并转换*/uchar a,b;ds1820rst();ds1820wr

18、(0xcc);/*跳过读序列号*/ds1820wr(0x44);/*启动温度转换*/ds1820rst();ds1820wr(0xcc);/*跳过读序列号*/ds1820wr(0xbe);/*读取温度*/a=ds1820rd();b=ds1820rd();tvalue=b;tvalue<<=8;tvalue=tvalue|a; if(tvalue<0x0fff) tflag=0; else tvalue=tvalue+1;tflag=1; tvalue=tvalue*(0.625);/温度值扩大10倍,精确到1位小数return(tvalue);/*/ void ds1820disp()/温度值显示 uchar flagdat; uchar i; disdata0=tvalue/1000;/位数 disdata1=tvalue%1000/100;/十位数 disdata2=tvalue%100/10;/ge disdata3=tvalue%10;/小数位 if(tflag=0) flagdat=0x20;/正温度

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论