资源简介
用ds18b20测量温度并在带中文字库的12864液晶屏上显示,设置上限温度用于防火报警。
代码片段和文件信息
/***************************lcd12864部分******************************/
#include
#define uint unsigned int
#define uchar unsigned char
#define x1 0x80
#define x2 0x88
#define y 0x80
#define comm 0
#define dat 1
sbit rs = P3^7; //H=data; L=command;
sbit rw = P3^6; //H=read; L=write;
sbit e = P3^5; //input enable;
sbit psb= P0^3; //H=并口; L=串口;
sbit rst= P0^1; //Reset Signal 低电平有效
//并行数据口接P2口
//还可以另外定义一个lcd busy bit可用于接指示灯等指示lcd忙状态
//部分函数声明:
void wr_lcd (uchar dat_commuchar content);
void chk_busy (void);
void delayus(uint us);
void delayms(uint ms);
/******************************************************************************************
* 函数名称 :delay
* 功能描述 :延时10*us
******************************************************************************************/
void delayus(uint us) //delay time
{
while(us--);
}
/******************************************************************************************
* 函数名称 :delayms
* 功能描述 : 延时ms毫秒
******************************************************************************************/
void delayms(uint ms)
{
uint ij;
for(i=0;i for(j=0;j<15;j++)
delayus(1);
}
/******************************************************************************************
* 函数名称 :init_lcd
* 功能描述 : 初始化
******************************************************************************************/
void init_lcd(void)
{
rst=1;
psb=1;
wr_lcd(comm0x30); /*30---基本指令动作*/
wr_lcd(comm0x01); /*清屏,地址指针指向00H*/
wr_lcd(comm0x06); /*光标的移动方向*/
wr_lcd(comm0x0c); /*开显示,关游标*/
}
/******************************************************************************************
* 函数名称:locate_lcd
* 功能描述: lcd定位显示
******************************************************************************************/
void locate_lcd(unsigned char poxunsigned char poy)//行数pox=1-4;每行
//有8个poy=1-8
{ unsigned char data pos;
if(pox&0x01) //第一、三行,pox=0x010x03
{
pos=poy|0x80;
if(pox&0x02) pos+=0x07;//pos=poy+0x80+0x07第三行
else pos-=0x01; //pos=poy+0x80-0x01第一行
}
else
{
pos=poy|0x90;
if(pox&0x02) pos-=0x01;//pos=poy+0x90-0x01第二行
else pos+=poy|0x07; //pos=poy+0x90+0x07第四行
}
wr_lcd(commpos);
}
/******************************************************************************************
* 函数名称 :wr_lcd
* 功能描述 :写控制命令或显示数据
******************************************************************************************/
void wr_lcd(uchar dat_commuchar content)
{
chk_busy();
if(dat_comm)
{
rs=1; //data
rw=0; //write
}
else
{
rs=0; //command
rw=0; //write
}
P2=content; //output data or comm
e=1;
;
e=0;
}
/***********************************************************************
- 上一篇:国科大_模式识别_刘成林向世明_2017年期末试卷
- 下一篇:蚁群算法-TSP旅行商
相关资源
- 基于51单片机的电子琴程序
- 基于51单片机的烟雾报警器
- 基于51单片机实现的电子琴
- 基于51单片机的m序列产生及应用研究
- 基于51单片机的全自动洗衣机设计带
- 基于51单片机的智能充电器
- MSP430单片机DS18B20测温、LCD1602显示、报
- hx711压力传感器51单片机代码
- 51单片机蜂鸣器播放歌曲实验报告
- 用51编写青花瓷
- 基于51单片机的全自动洗衣机控制系统
- 基于单片机DS1302+DS18B20+DHT11+LCD12864的万
- 单片机温度检测系统
- 烟雾报警器源码
- 基于51单片机的温度采集系统
- 51单片机不同按键控制音乐
- 基于51单片机的天然气报警器的设计
- MLX90615无线测温51单片机程序
- 毕业设计(论文)-基于AT89C51单片机的
- PWM控制LED灯渐亮渐灭实验.zip
- 基于51单片机实时采集温度,可设置阈
- 基于51单片机空气质量检测
- 基于51单片机酒精浓度检测仪设计-源
- 基于51单片机的智能火灾报警系统-完
- 51单片机温度报警程序
- 基于AT89S51单片机的PID温度控制系统设
- 温湿度、火灾气体检测,LCD1602串口双
- 51单片机多功能电梯模拟控制系统-接
- 单片机恒温箱温度控制系统的设计
- 超声波测距仪1602显示.zip
评论
共有 条评论