《(中职)单片机基础与技能实训项目八 制作温度显示器电子课件().pptx》由会员分享,可在线阅读,更多相关《(中职)单片机基础与技能实训项目八 制作温度显示器电子课件().pptx(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、YCF(中职)单片机基础与技能实训项目八 制作温度显示器电子课件项目八 制作温度显示器第35、36课时 让1602液晶显示器显示字符 任务情境 在学校举行的技能操作竞赛中,祝宗雪获得一等奖,奖品是一个笔筒,如下图所示。这个笔筒能显示时间和日期,小祝很好奇,就去探究笔筒能显示时间和日期的原因。任务描述 制作液晶显示器,让1602液晶显示器显示字符。写一写 1602液晶模块有16个引脚,请写出各个引脚的功能。引脚号 引脚名称 引脚功能含义1 VSS地管脚(GND)2 VDD+5V电源管脚(Vcc)3 VO液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”
2、,使用时可以通过一个10K的电位器调整对比度4 RS寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器5 RW读写控制线,0:写操作;1:读操作6 E使能端,当E端由高电平跳变成低电平时,液晶模块执行命令714 D0D78位双向数据线15 A 背光控制正电源16 K 背光控制地连一连 将单片机与LCD1602进行连接,使单片机能驱动液晶显示器。画一画 绘制单片机控制1602显示字符的程序流程图。单片机驱动LCD1602的主程序流程图、写数据流程图和写命令流程图。想一想 对1602液晶进行初始化时要进行哪些操作?填一填 完成以下程序,实现让1602液晶上排显示字符:“good good
3、study”,下排显示字符:“day day up”。#include#define uint unsigned int#define uchar unsigned char sbit rs=;sbit rw=;sbit en=;uchar code table1=good good study;uchar code table2=day day up;void delay(unit n)uint x,y;for(x=n;x0;x-)for(y=110;y0;y-);void lcd_w_com(uchar com)rs=;rw=;=com;en=;delay(5);en=;delay(5);
4、en=;void lcd_w_dat(uchar dat)rs=;rw=;=dat;delay(5);en=;delay(5);en=;void lcd_init()lcd_w_com(0 x38);/8位数据,双列,5*7字形 lcd_w_com();/开启显示屏,关光标,光标不闪烁 lcd_w_com();/显示地址递增,即写一个数据后,显示位置右移一位 lcd_w_com();/清屏 void main()uchar n,m=0;lcd_init();lcd_w_com();for(m=0;m15;m+)lcd_w_dat(table1m);delay(200);lcd_w_com();
5、for(n=0;n14;n+)lcd_w_dat(table2n);delay(200);while(1);调一调 在单片机最小应用系统的基础上制作本电路,编译、烧录程序,并将烧入程序的单片机安装到电路中,接通电源进行调试。第37、38课时 驱动DS18b20芯片 任务情境 祝守雪同学想自己制作一个笔筒,除了可以显示时间和日期以外,还可以显示当前的温度。要显示准确的温度,电路中必定有一个感温元件,这个元件是如何检测温度的?又如何才能将采集的温度转换为数据显示在液晶屏幕上呢?任务描述 制作DS18B20驱动电路,驱动DS18B20芯片采集温度数据。连一连 连线并添加适当元器件,完成以下单片机驱动
6、DS18B20的电路图。练一练 写出以下运算的表达式。(对变量dat进行操作)1、右移1位:2、与0 x01进行“与”运算:3、与0 x80进行“或”运算:4、左移8位:画一画 绘制单片机驱动DS18B20的程序流程图。填一填1、初始化函数void Init_DS18B20(void)DQ=;delay(80);DQ=;delay(14);2、读一个字节ucahr ReadOneChar(void)unsigned char i=0;unsigned char dat=0;for(i=8;i0;i-)DQ=;DQ=;if(DQ);delay(4);return(dat);填一填3、写一个字节v
7、oid WriteOneChar(unsigned char dat)unsigned char i=0;for(i=8;i0;i-)DQ=;DQ=;delay(5);DQ=;4、读取温度数据uint ReadTemperature(void)unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;WriteOneChar();WriteOneChar();WriteOneChar();WriteOneChar();a=;b=;t=b;t=8;t=t|a;tt=t*0.0625;t=tt*10+0.5;return(t);
8、调一调 在单片机最小应用系统的基础上制作本电路,编译、烧录程序,并将烧入程序的单片机安装到电路中,接通电源进行调试。第39、40课时 让LCD显示当前温度 任务情境 功夫不负有心人,小祝最终对DS18B20芯片有了比较全面的了解,也学会了如何驱动这块芯片。这离完成他梦寐以求的温度显示器制作任务还有多远呢?任务描述 使用1602液晶和DS18B20温度芯片制作温度显示器。连一连 连接下面这个电路,并添加适当的元器件,使之组成一个完整的温度显示器。图8-3-1 温度显示器电路图画一画 绘制使用1602液晶显示温度的程序流程图。填一填 已知当前温度“ReadTemperature()”为三位十进制数
9、,填写以下程序,实现将当前温度显示在LCD的上排,显示格式为“Temp:*.*”。#includeunsigned char code mun_char_table=0123456789abcdef;unsigned char code temp_table=Temp:.;main()unsigned int i=0;lcd_w_com();for(i=0;i+)lcd_w_dat(temp_tablei);while(1)i=;lcd_w_com(0 x80+);lcd_w_dat(mun_char_table);/*显示温度的十位*/lcd_w_com(0 x80+);lcd_w_dat(mun_char_table);/*显示温度的个位*/lcd_w_com(0 x80+);lcd_w_dat(mun_char_table);/*显示小数点后第一位*/delay_1ms(100);调一调 在项目一制作的单片机最小应用系统的基础上制作本电路,编译、烧录程序,并将烧入程序的单片机安装到电路中,接通电源进行调试。