使用无字库12864液晶模块制作温湿度计
菜鸟学习51单片机之12864液晶(无字库)

/* 选择屏幕来清屏 */
菜鸟学习 51 单片机
while(1)世界
void Lcd12864Clear(uint8 selet)
{
uint8 i,j;
Lcd12864SeletScreen(selet); //选择屏,分左屏和又屏,这个函数在程序中有
for(i = 0;i < 8 ;i++)
二.写入地址
void Lcd12864Point(uint8 page,uint8 x,uint8 y)
{
Lcd12864Write(CMD,0xb8 + page);
//确定页
Lcd12864Write(CMD,0xC0 + x);
//设定起始行
Lcd12864Write(CMD,0x40 + y);
菜鸟学习 51 单片机
while(1)世界
现在开始讲解如何使用,看这篇讲解前,请先到网盘去下载本教 程的仿真图和程序,结合起来更容易明白。
上图是仿真的结果。 在仿真软件中找出的 12864 液晶是没有字库的,对于仿真软件中 液晶的控制和平常的有点不同。一块液晶是由两块 64×64 的液晶显 示模块组合而成。下面是各管脚的介绍。
//有 8 页,循环 8 次
{
Lcd12864Point(i,0,0); //这个就是上面讲到的函数,确定位置
for(j = 0 ;j < 64;j++) //每一块液晶显示模块有 64 列
{
Lcd12864Write(DAT,0x00); //写入 0x00 来清屏
}
}
}
具体的使用如下:初始化函数中调用了清全屏 Lcd12864Clear(3); //清全屏
LCD12864液晶的使用

httபைடு நூலகம்:///echoas
1
LCD12864 液晶的使用
整理:大海橡树 LCD12864 分为两种,带字库和不带字库的,个人比较喜欢不带字库的,因为显示汉字 的时候可以选择自己喜欢的字体,而带字库的液晶,只能显示 GB2312 的宋体,当然了, 也 可以显示其他的字体,不过不是液晶本身字库中带的了,而是用图片的形式显示。本讲由于 内容较多,故分两篇进行讲解,本人水平有限,难免有错误之处,还望大家批评改正!
LCD1
A M P IR E 1 2 8X 64
18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
CS1 和 CS2 的屏幕选择说明
-Vout RST DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 E R/W RS V0 VCC GND CS2 CS1
� 无字库型 LCD12864
首先介绍下不带字库的 LCD12864 ,现就以 Proteus 中的 LCD12864 为例进行讲解, Proteus 中 AMPIRE128*64 ,其液晶驱动器为 KS0108 ,我在网上搜了好就都没找到它 的 datasheet,不过我们可以找到类似的芯片的手册,它的控制逻辑和 HD61202 是类似的,我 们可以网上下载它的 datasheet 进行参考。 这块液晶的显示是左右和上下显示这一点一定要注意 与带字库液晶不同,此块液晶中含有两个液晶驱动器,一块驱动器控制 64*64 个点, 左 右显示,这就是为什么 AMPIRE128*64 引脚有 CS1 和 CS2 的原因。学习液晶主要看的它的 指令系统,再次先说明一下“页”的概念,此液晶有 8 页,一页有 8 行。68/8=8;如下图所 示。
SG12864-12 液晶显示模块 使用说明书

深圳显能实业有限公司液晶显示模块SG12864-12使用说明书Add: 深圳市宝安33区大宝路83号东方明工业城6栋4楼目录一、功能特点----------------------------------------------3二、读写操作时序------------------------------------------3三、指令说明----------------------------------------------6四、坐标关系---------------------------------------------11五、显示RAM---------------------------------------------13六、应用举例---------------------------------------------14七、注意事项---------------------------------------------18一、功能特点:SG12864-12汉字图形点阵液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。
主要技术参数和显示特性:电源:VDD 3.3V~+5V(内置升压电路,无需负压);显示内容:128列× 64行显示颜色:黄绿屏,蓝屏显示角度:6:00钟直视LCD类型:STN与MCU接口:8位并口或串行配置LED背光多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等二、读写操作时序:模块有并行和串行两种连接方法(时序如下):8位并行连接时序图MPU写资料到模块MPU从模块读出资料2、串行连接时序图串行数据传送共分三个字节完成:第一字节:串口控制—格式 11111ABCA为数据传送方向控制:H表示数据从LCD到MCU,L表示数据从MCU到LCDB为数据类型选择:H表示数据是显示数据,L表示数据是控制指令C固定为0第二字节:(并行)8位数据的高4位—格式 DDDD0000第三字节:(并行)8位数据的低4位—格式 0000DDDD串行接口时序参数:(测试条件:T=25℃ VDD=5.0V)三、指令说明:1、指令表1:(RE=0:基本指令集)指令码指令RS RWDB7DB6DB5DB4DB3DB2DB1DB说明执行时间(540KHZ)清除显示0 0 0 0 0 0 0 0 0 1将DDRAM填满“20H”,并且设定DDRAM的地址计数器(AC)到“00H”1.6ms地址归位0 0 0 0 0 0 0 0 1 X设定DDRAM的地址计数器(AC)到“00H”,并且将游标移到开头原点位置;这个指令并不改变DDRAM的内容72us进入点设定0 0 0 0 0 0 0 1 I/D S指定在资料的读取与写入时,设定游标移动方向及指定显示的移位I/D=1:游标向右移,DDRAM地址计数器(AC)加1I/D=0:游标向左移,DDRAM地址计数器(AC)减1S:显示画面整体位移72us显示状态开/关0 0 0 0 0 0 1 D C BD=1:整体显示ONC=1:游标ONB=1:游标位置ON72us游标或显示移位控制0 0 0 0 0 1S/CR/LX X设定游标的移动与显示的移位控制位元;这个指令并不改变DDRAM的内容S/C=0,R/L=0: 游标向左移动S/C=0,R/L=1:游标向右移动72us功能设定0 0 0 0 1 DL XREX XDL=1 (必须设为1)RE=1:扩充指令集动作RE=0:基本指令集动作72us设定CGRA M地址0 0 0 1AC5AC4AC3AC2AC1AC设定CGRAM地址到地址计数器(AC)72us设定0 0 1 AC AC AC AC AC AC AC设定DDRAM地址到地址计数器72usDDRAM地址6 5 4 3 2 1 0 (AC)读取忙碌标志(BF)和地址0 1 BFAC6AC5AC4AC3AC2AC1AC读取忙碌标志(BF)可以确认内部动作是否完成,同时可以读出地址计数器(AC)的值0us写资料到RAM 1 0 D7 D6 D5 D4 D3D2D1D0写入资料到内部的RAM(DDRAM/CGRAM/IRAM/GDRAM)72us读出RAM 的值1 1 D7 D6 D5 D4 D3D2D1D0从内部RAM读取资料(DDRAM/CGRAM/IRAM/GDRAM)72us指令表—2:(RE=1:扩充指令集)指令码指令RS RWDB7DB6DB5DB4DB3DB2DB1DB说明执行时间(540KHZ)待命模式0 0 0 0 0 0 0 0 0 1将DDRAM填满“20H”,并且设定DDRAM的地址计数器(AC)到“00H”72us卷动地址或IRAM地址选择0 0 0 0 0 0 0 0 1 SRSR=1:允许输入垂直卷动地址SR=0:允许输入IRAM地址72us反白选择0 0 0 0 0 0 0 1 R1 R0选择4行中的任一行作反白显示,并可决定反白与否72us睡眠模式0 0 0 0 0 0 1 SL X XSL=1:脱离睡眠模式SL=0:进入睡眠模式72us扩充功能设定0 0 0 0 1 1 X1REG 0RE=1:扩充指令集动作RE=0:基本指令集动作G=1 :绘图显示ONG=0 :绘图显示OFF72us设定IRAM地址或卷动地址0 0 0 1AC5AC4AC3AC2AC1ACSR=1:AC5—AC0为垂直卷动地址SR=0:AC3—AC0为ICONIRAM地址72us设定绘图RAM 地址0 0 1AC6AC5AC4AC3AC2AC1AC设定CGRAM地址到地址计数器(AC)72us备注:1、当模块在接受指令前,微处理顺必须先确认模块内部处于非忙碌状态,即读取BF标志时BF需为0,方可接受新的指令;如果在送出一个指令前并不检查BF标志,那么在前一个指令和这个指令中间必须延迟一段较长的时间,即是等待前一个指令确实执行完成,指令执行的时间请参考指令表中的个别指令说明。
12C5A60S2水温控制程序

Abstract: Along with the computer measurement and control technology of the rapid development and wide application, based on singlechip temperature gathering and control system development and application greatly improve the production of temperature in life level of control. This design STC12C5A60S2describes a kind of mainly by MCU control unit, for temperature sensor DS18B20 temperature control system. The control system can real-time storage temperature data and record related to the current time. System design related hardware circuit and related applications. STC12C5A60S2 microcontroller hardware circuit include temperature detection circuit smallest system, and real-time clock circuit, LCD display circuit, communication module circuit, etc. System programming mainly include main program, read temperature subroutine, the calculation of temperature subroutines, key processing procedures, LCD display procedures and data storage procedures, etc.
12864LCD上显示温湿度

12864LCD显示温湿度第一种方式:/**********************DHT11与12864LCD************************/ #include <>#define uchar unsigned char#define uint unsigned intuchar lcd_x,lcd_y,data_byte=0,count;uint TH_data,TL_data,RH_data,RL_data,CK_data;uint TH_temp,TL_temp,RH_temp,RL_temp,CK_temp;uchar num;sbit RS = P2^0;;uchar wendu[6];uchar shidu[6];/********************************************************1ms延时函数********************************************************/void delay(int z){ int x,y;for(x=z;x>0;x--)for(y=125;y>0;y--); }/********************************************************50us延时函数********************************************************/void delay_50us(uint t){uint j;for(;t>0;t--)for(j=19;j>0;j--);}/********************************************************50ms延时函数********************************************************/ void delay_50ms(uint t){uint j;for(;t>0;t--)for(j=6245;j>0;j--);}/********************************************************12864液晶写指令********************************************************/ void write_12864com(uchar com){ lcdrs=0;lcdrw=0;delay_50us(1);P0=com;lcden=1;delay_50us(10);lcden=0;delay_50us(2);}/********************************************************12864液晶写数据********************************************************/ void write_dat(ucha r dat) { lcdrs=1;lcdrw=0;delay_50us(1);P0=dat;lcden=1;delay_50us(10);lcden=0;delay_50us(2); }/********************************************************12864液晶初始化********************************************************/void init12864lcd(void) {delay_50ms(2);write_12864com(0x30);delay_50us(4);write_12864com(0x30);delay_50us(4);write_12864com(0x0f);delay_50us(4);write_12864com(0x01);delay_50us(240);write_12864com(0x06);delay_50us(10);write_12864com(0x0c);delay_50us(10); }/********************************************************12864液晶显示函数********************************************************/ void display1(void){uchar i;write_12864com(0x80);for(i=0;i<18;i++){write_dat(table2[i]);delay_50us(1); } }/********************************************************12864液晶显示函数********************************************************/ void display2(void){uchar i;write_12864com(0x90);for(i=0;i<18;i++){write_dat(table3[i]);delay_50us(1); } }/********************************************************12864液晶显示函数********************************************************/ void display3(void){ uchar i;write_12864com(0x88);for(i=0;i<8;i++){ write_dat(table4[i]);delay_50us(1); }}/********************************************************12864液晶显示函数********************************************************/ void displaywendu(void){ uchar i;write_12864com(0x94);for(i=0;i<3;i++){ write_dat(wendu[i]);delay_50us(1);}for(i=0;i<1;i++){write_dat(table5[i]);delay_50us(1);}for(i=4;i<5;i++){write_dat(wendu[i]);delay_50us(1); } }/********************************************************12864液晶显示函数********************************************************/ void displayshidu(void) {uchar i;write_12864com(0x8C);for(i=0;i<3;i++) {write_dat(shidu[i]);delay_50us(1); }for(i=0;i<1;i++){ write_dat(table5[i]);delay_50us(1);}for(i=4;i<5;i++){write_dat(shidu[i]);delay_50us(1);} }/********************************************************SHT11写字节程序********************************************************/char s_write_byte(unsigned char value){unsigned char i,error=0;for (i=0x80;i>0;i>>=1) //高位为1,循环右移{ if (i&value) DATA=1; //和要发送的数相与,结果为发送的位else DATA=0;SCK=1;_nop_();_nop_();_nop_(); //延时3usSCK=0;}DATA=1; //释放数据线SCK=1;error=DATA; //检查应答信号,确认通讯正常_nop_();_nop_();_nop_();SCK=0;DATA=1;return error; //error=1 通讯错误}/********************************************************SHT11读字节程序********************************************************/char s_read_byte(unsigned char ack){unsigned char i,val=0;DATA=1; //释放数据线for(i=0x80;i>0;i>>=1) //高位为1,循环右移{SCK=1;if(DATA)val=(val|i); //读一位数据线的值SCK=0; }DATA=!ack; //如果是校验,读取完后结束通讯;SCK=1;_nop_();_nop_();_nop_(); //延时3usSCK=0;_nop_();_nop_();_nop_();DATA=1; //释放数据线return val; }/********************************************************SHT11启动传输********************************************************/void s_transstart(void){DATA=1;SCK=0; //准备_nop_();SCK=1;_nop_();DATA=0;_nop_();SCK=0;_nop_();_nop_();_nop_();SCK=1;_nop_();DATA=1;_nop_();SCK=0; }/********************************************************SHT11连接复位********************************************************/void s_connectionreset(void){ unsigned char i;DATA=1;SCK=0; //准备for(i=0;i<9;i++) //DATA保持高,SCK时钟触发9次,发送启动传输,通迅即复位{ SCK=1;SCK=0;}s_transstart(); //启动传输}/********************************************************SHT11温湿度检测********************************************************/char s_measure(unsigned char *p_value, unsigned char *p_checksum, unsign ed char mode){unsigned error=0;unsigned int i;s_transstart(); //启动传输switch(mode) //选择发送命令{ case TEMP : error+=s_write_byte(MEASURE_TEMP);break; //测量温度case HUMI : error+=s_write_byte(MEASURE_HUMI);break; //测量湿度default : break;}for (i=0;i<65535;i++)if(DATA==0) break; //等待测量结束if(DATA) error+=1;// 如果长时间数据线没有拉低,说明测量错误*(p_value) =s_read_byte(ACK); //读第一个字节,高字节(MSB)*(p_value+1)=s_read_byte(ACK); //读第二个字节,低字节(LSB)*p_checksum =s_read_byte(noACK); //read CRC校验码return error; // error=1 通讯错误}/********************************************************SHT11温湿度值标度变换及温度补偿********************************************************/ void calc_sth10(flo at *p_humidity ,float *p_temperature){const float C1=; // 12位湿度精度修正公式const float C2=+; // 12位湿度精度修正公式const float C3=; // 12位湿度精度修正公式const float T1=+; // 14位温度精度5V条件修正公式const float T2=+; // 14位温度精度5V条件修正公式float rh=*p_humidity; // rh: 12位湿度float t=*p_temperature; // t: 14位温度float rh_lin; // rh_lin: 湿度linear值float rh_true; // rh_true: 湿度ture 值float t_C; // t_C : 温度℃t_C=t* - 40; //补偿温度rh_lin=C3*rh*rh + C2*rh + C1; //相对湿度非线性补偿rh_true=(t_C-25)*(T1+T2*rh)+rh_lin; //相对湿度对于温度依赖性补偿if(rh_true>100)rh_true=100; //湿度最大修正if(rh_true<rh_true=; //湿度最小修正*p_temperature=t_C; //返回温度结果*p_humidity=rh_true; //返回湿度结果}/********************************************************主函数********************************************************/void main(void){unsigned int temp,humi;value humi_val,temp_val; //定义两个共同体,一个用于湿度,一个用于温度unsigned char error; //用于检验是否出现错误unsigned char checksum; //CRCinit12864lcd();display1();display2();display3();s_connectionreset(); //启动连接复位while(1){error=0; //初始化error=0,即没有错误error+=s_measure((unsigned char*)&,&checksum,TEMP); //温度测量error+=s_measure((unsigned char*)&,&checksum,HUMI); //湿度测量if(error!=0) s_connectionreset(); ////如果发生错误,系统复位else{=(float); //转换为浮点数=(float); //转换为浮点数calc_sth10(&,&; //修正相对湿度及温度temp=*10;humi=*10;wendu[0]=temp/1000+'0'; //温度百位wendu[1]=temp%1000/100+'0'; //温度十位wendu[2]=temp%100/10+'0'; //温度个位wendu[3]=0x2E; //小数点wendu[4]=temp%10+'0'; //温度小数点后第一位displaywendu();shidu[0]=humi/1000+'0'; //湿度百位shidu[1]=humi%1000/100+'0'; //湿度十位shidu[2]=humi%100/10+'0'; //湿度个位shidu[3]=0x2E; //小数点shidu[4]=humi%10+'0'; //湿度小数点后第一位displayshidu(); }Delay(800);//等待足够长的时间,以现行下一次转换}}。
无字库PG12864液晶屏技术资料

10/20
PG12864LRS-JNN-H 技术手册(完整版)
原创技术资料
设置显示超始说明
CS1(左半屏)
CS2(右半屏)
12864 是由两片 64*64 组成,使用 CS1/CS2 使能(可同时使能)。每半屏 8 页,每页中字节数据由低到高。
驱动程序(C 语言)
/*********************************************************************************************
#include <reg52.h>
// 包含头文件
11/20
PG12864LRS-JNN-H 技术手册(完整版)
原创技术资料
#include <string.h> //用于指针
/*********************************************************************************************
出品
程序名 Dy-12864LC 驱动程序
制作人 杜洋
日期
2007-4-18
参数
MCS-51
12MHZ
PG12864LRS-JNN-H
/*********************************************************************************************
品名 型号 规格
图形液晶显示屏模块 PG12864LRS-JNN-H 128 X 64 STN LCD 点阵
文档制作 创建日期 版本信息
杜洋 () 2007-4-20 V1.0
CJ12864L液晶显示模块使用手册

液晶显示模块使用手册版本:1.0型号:CJ12864L系列选配件说明液晶片□常温(0~50℃)□宽温(-20~+60℃)□超宽温(-30~+70℃)□黄绿膜□蓝膜□灰膜□黑白膜背光LED背光□白光□翡绿光□黄绿光□蓝光EL背光□白光□蓝光□CCFL背光负压电路□板载负压□不带负压一.概述CJ12864L是一款带中文字库的图形点阵模块,由动态驱动方式驱动128×64点阵显示。
低功耗,供应电压范围宽。
内含多功能的指令集,操作简易。
采用COB工艺制作,结构稳固,使用寿命长。
二.特性:●提供8位,4位及串行接口可选●64×16位字符显示RAM(DDRAM最多16字符×4行,LCD显示范围16×2行)●2M位中文字型ROM(CGROM),总共提供8192个中文字型(16×16点阵)●16K位半宽字型ROM(HCGROM),总共提供126个西文字型(16×8点阵)●64×16位字符产生RAM(CGRAM)●15×16位总共240点的ICON RAM(ICONRAM)●自动复位(RESET)功能●绘图及文字画面混合显示功能●提供多功能指令:——画面清除(display clear)——游标归位(return home)——显示开/关(display on/off)——游标显示/隐藏(cursor on/off)——游标移位(cursor shift)——显示移位(display shift)——垂直画面旋转(vertical line scoll)——反白显示(By-line reverse display)——睡眠模式(sleep mode)三.外形尺寸1.外形尺寸图2.主要外形尺寸项目标准尺寸单位模块体积78*70*12.5mm 视域62.0*44.0mm 行列点阵数128×64dots 点距离0.438*0.60mm 点大小0.378*0.54mm四.硬件说明1.引脚特性管脚名称符号电平功能描述1VSS0V接地(GND)2VDD 5.0V电源电压3V0负压液晶显示器驱动电压调节端4RS H/L 并口模式寄存器选择H:数据;L:指令串口片选信号H:有效;L:失效5R/W H/L 并口模式H:读;L:写串口数据线6E H/L 并口:读/写起始脚串口连续时钟输入7 | 10DB0|DB3H/L数据总线低4位,4位并口及串口时悬空11 | 14DB4|DB7H/L数据总线高4位,串口时悬空DB7可作BUSY标志,15PSB H/L H:8/4位数据接口模式L:串行接口模式由硬件设置时,此脚悬空16NC悬空17RST H/L复位信号,选择硬件复位时,此脚悬空18VEE负压液晶显示器驱动电压19BLA5V背光正20BLK0V背光负2.原理简图3.最大工作范围1)逻辑工作电压(Vdd):5V±10%2)电源地(GND):0V 3)LCD 驱动电压(Vop):5V 4)输入电压:0~Vdd4.电气特性(测试条件Ta=25,Vdd=5.0±10%)1)输入高电平(Vih):0.7Vdd~Vdd 2)输入低电平(Vil):0.6Vmax 3)输出高电平(Voh):0.8Vdd~Vdd 4)输出低电平(Vol):0.4Vmax 5)模块工作电流: 2.2~3.0mA(不含背光)6)底黄绿光工作电流:250mA 7)侧白光工作电流:60mA五.模块主要硬件构成说明1.PSB 脚VSS VDD RS R/W E PSB DB0RES2.忙标志(BF)表示当前与MPU接口电路的运行状态。
基于128×64点阵液晶显示的智能温度控制器的设计与实现

3 0 3 ;2 深圳 市拓 普 微 科技 开发 有 限公 司 ,广 东 深 圳 0 10 .
绍 了 L 0 3液 晶显示模块的功能特性 、接 口电路及应 用程序 。实验 中应 用 D 1 B 0温度 传感 器实现 温度信 M3 3 S82 号 的采集 ,并把采集到 的信号传送给单片机 ,单片机将信号进行处理完成相应 的智能控制 ,同时将环境温 度 、
李 志广 ,张
( . 河北 工业 大学 理 学院 ,天 津 1
5 85 ) 1 0 7
摘 要 :以智 能 温 度 控 制 器 的设 计 实 验 为 依 托 ,文 章 给 出 了 一 套 液 晶 显 示 模 块 驱 动 实 验 的设 计 方 案 ,详 细 介
辉 王永 学 , ,张志 东
De in a d i l me t t n o h n e l e tt mp r t r sg n mp e n a i ft e i t l g n e e a u e o i
c n r le a e n 1 8 4 d tma r i u d c y t ld s l y o to lr b s d o 6 o ti l i r sa ip a 2 x x q
t s,t e i tra e cr ui,a d t e a p iai n p o r m ft e L 0 i e h n ef c ic t n h p lc t r g a o h M3 33 LCM r n r d c d i e al n o a e i to u e n d ti.I
a d t e r n mitd t h n h n ta s t o t e MCU.Th e e e tmpe au esg a r c s ig a d t e i tli e tc nr la e p r r t r i n lp o e sn n h n elg n o to r e —
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使用无字库12864液晶模块制作温湿度计
日历钟就摇身一变成为一个小小温湿度计啦。
虽然气象要素很多,不过我们最常用的就是气温和湿度。
一个是冷热程度,一个是环境空气中含水蒸气的多少。
一般家用温度计很常见,湿度计就比较少,以前有一种干湿球温度计,但是用起来比较麻烦,准确度也不高。
现在应用电子技术我们就可以做一个可以同时显示温度、湿度、时间的小仪器,放在家里以便随时监测我们的小环境。
它的特点如下:
1.在单片机ATMega8L-8PU(以下简称M8)和日历钟电路DS1302的基础上,使用一个在工厂经过精密校准的数字式温度、湿度传感器AM2301作为探头;
2.当24小时连续工作时,纵然工作电流仅为几毫安,也不宜使用纽扣电池供电。
这次选用可充电的
3.6V聚合物锂电池,使它的放置地点可以不受电源限制,可以在室内,也可以在不受阳光直射和雨水接触的室外;
3.具有文字和图形界面,可以显示温度和湿度数值,以及12小时内的湿度变化记录曲线,为什么是湿度曲线呢?因为气温的变化规律一般比较稳定,湿度就不一样了,我们可以从湿度变化趋势估计一下未来的晴雨可能,这比看燕子飞高飞低要靠谱些吧?两个界面用按键切换;
4.具备锂电池线性充电电路,通过USB接口从外部取得5V电源,一边供给充电,一边维持电路继续工作;全部元器件安装在一块70mm×90mm的小万用板上,正面、背面外形见图1、图2。
正面左边那个黑色小乌龟壳就是温湿度探头。
图2 电路板背面元器件分布和连线
电路原理
电路见图3。
图形点阵液晶、单片机M8、时钟电路DS1302和上次小小日历钟基本相同,不再重复。
有两点稍稍不同:1.液晶的控制虽然还是通过M8的PD口,但具体接线有所改变,不再占用两根串口线PD0和PD1,目的是为今后可能和外部通信预留接口。
这好办,编程时重新定义即可;。