产品选型

dat单片机 5152单片机14课:温控开关

小编 2025-07-27 产品选型 23 0

5152单片机14课:温控开关

#include <reg51.h>//头文件

#define uint unsigned int//宏定义

#define uchar unsigned char //宏定义

sbit DQ=P3^2;//18B20的2脚与单片机P3.2口相接

sbit P10=P1^0;//数码管位选引脚P1.0

sbit P11=P1^1;//数码管位选引脚P1.1

sbit P14=P1^4;//继电器控制引脚

uchar temp;

uchar htemp=30;//动作温度值

code unsigned char sz []={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0-9数组

void delay (uint t);//延时函数声明

void delayms(uint a);//for语句延时函数声明

void init();//18B20初始化程序声明

void write (uchar dat);//写1字节程序声明

uchar read ();//读1字节程序声明

void display();//显示程序声明

uchar readtemp();//读温度程序声明

void delay (uint t)//延时函数

{

while(t--);

}

void delayms(uint a) //for语句延时函数

{

uint x,y;

for(x=a;x>0;x--)

for(y=110;y>0;y--);

}

void init ()//18B20初始化程序

{

uchar n;

DQ=1;

delay(8);

DQ=0;

delay(80);

DQ=1;

delay(8);

n=DQ;

delay(4);

}

void write (uchar dat)//写1字节程序

{

uchar i;

for (i=0;i<8;i++)

{

DQ=0;

DQ=dat&0x01;

delay (4);

DQ=1;

dat>>=1;//dat=dat>>1

}

delay(4);

}

uchar read ()//读1字节程序

{

uchar i,value;

for (i=0;i<8;i++)

{

DQ=0;

value>>=1;

DQ=1;

if(DQ)///

value|=0x80;

delay(4);

}

return value;

}

uchar readtemp()//读温度程序

{

uchar a,b;

init();

write (0xcc);

write (0x44);

delay (300);

init ();

write (0xcc);

write (0xbe);

a=read();

b=read();

b<<=4;

b+=(a&0xf0)>>4;

return b;

}

void display ()//显示程序

{

P10=0;

P0=sz[temp/10];

delayms(2);

P10=1;

P11=0;

P0=sz[temp%10];

delayms(2);

P11=1;

}

void main()//主程序

{

while(1)

{

temp=readtemp();

display ();

if (temp>=htemp)

{

P14=0;

}

else

{

P14=1;

}

}

}

STM32液晶显示HT1621驱动原理及程序代码

1、HT1621电路分析

HT1621为32×4即128点内存映像LCD驱动器,包含内嵌的32×4位显示RAM内存和时基发生器以及WDT看门狗定时器.

HT1621驱动电路如下图所示:

图1

图1

与单片机相连接控制的有9脚CS,3脚WR,12脚DATA,其功能描述如下表。

图2

2、字符显示原理

液晶管点亮和熄灭原理分别为在对应的RAM地址中写1和写0. 首先需要清楚所驱动控制的液晶的COM-SEG对应关系,然后需要了解HT1621的32×4RAM地址映射。

例如要控制的液晶的装脚成品图部分如下:

图3

着重看一个液晶数码管,我们了解原理就行。可以看到图3中是第2个液晶数码管,有7段,分别为A,B,C,D,E,F,G。也就分别为下面COM\SEG地址对应关系图中的2A,2B,2C,2D,2E,2F,2G。

液晶的显示字符的部分COM公共端输出口和SEG段输出口的分布如下表所示,同理我们可以看到例如:2D对应(SEG5,COM0),2E对应(SEG5,COM1),2F对应(SEG5,COM2),2A对应(SEG5,COM3),2C对应(SEG4,COM1),2G对应(SEG4,COM2),2B对应(SEG4,COM3)。

图4

搞清楚我们要控制的对象之后那, HT1621的RAM 地址映射如下图所示:

图5

可以清楚的看到要控制液晶段对应SEG号作为6位地址,COM号对应作为4位数据写入,此时注意4位数据的高低位。写数据到RAM命令格式为:101+6位RAM地址+4位数据,其中RAM地址为SEG序号.

例如我们在图3的第二个液晶数码管上显示数字,首先我们根据图3得到地址映射关系,先写入地址SEG4中的四位数据(COM3,COM2,COM1,COM0),再写如地址SEG5中的四位数据(COM3,COM2,COM1,COM0),对应关系如下:

所以如果在图3中显示“5”,则在显示的液晶段对应地址上写1,不显示写0,如下图所示。所以SEG4地址应写入的数据为0110 ,SEG5地址应写入数据1101。

图6

3、显示的保持

写数据过程需要保证写前无关位数据的保持,因此在单片机程序中开辟32×4数组作为虚拟ARM,存储写前LCD显示数据.通过与清零,或置位操作实现,例如6位地址Address当前显示的数据为Data_last .若Xi(i=0,1,2,3) 位需要保持,则Xi为1,否则Xi为0.写入的数据为Data_now,变换公式为:

4、程序

主要的程序编写流程如下:

图7

程序的参考步骤:①Display_Wendu_1②write_addr_dat_n_wendu③write_mode④write_address⑤write_data_4bit,其中Lcdram数组为建立的虚拟数组。

如果你的有项目需要技术支持,可以直接登录深圳安信泰的官网www.axtek.net了解更多详情,获取等多的单片机开发资料。

免责声明:部分文章信息来源于网络以及网友投稿,本网站只负责对文章进行整理、排版、编辑,是出于传递 更多信息之 目的,并不意味着赞同其观点或证实其内容的真实性,如本站文章和转稿涉及版权等问题,请作者在及时联系本站,我们 会尽快处理。官方所有内容、图片如未经过授权,禁止任何形式的采集、镜像,否则后果自负!

相关问答

ds18b20数据如何发给 单片机 ?

在DQ=0,之后,DQ就是输入端了。如果这时DQ=1了,就在dat的最高位加一,就是:dat|=0x80。最先收到的位,是数据的最低位,所以要逐步的向低位移动...在...

单片机 51编程中有返回值的函数,要返回的那个值要加括号吗return dat 还是return?

加括号更好一点,不加括号也可以,比如return0;有时候返回值太长,就加一个括号。。比如,return(strlen(gg)+strlen(yyy)+k);加括号更好一点,不加括号也可以,比...

ds1302与51 单片机 连接需要串口吗?

1.不需要串口连接。2.因为ds1302与51单片机之间的通信是通过IO口进行的,而不是通过串口进行的。ds1302的数据线(DAT)连接到51单片机的IO口即可实现通信。3...

【51 单片机 DS18b02的驱动程序求解释下,程序在下面,为什么程...

[最佳回答]unsignedcharRead1302(void){unsignedchari,dat;delaynus(2);//稍微等待,使硬件做好准备for(i=0;i>=1;//将dat...

单片机 通过串口控制LED小灯亮灭的程序,求源码,谢谢?

题意没说的太清楚,随便写一个吧。#includesbitled=P1^0;main(){unsignedchardat;TMOD=0x20;TH1=0xfd;TL1=0xfd;...

帮个忙老表们,有谁清楚:江西销售医用x光机,医用x光机怎么选?

[回答]串口助手因为没有握手信号的关系,所以发送数据是没有等待的,因此,单片机端接受需要开辟缓冲区才可以保证数据不丢失。用C的话就,你就用一个数组来做...

怎么通过C语言自动生成MAC地址-ZOL问答

你好,你需要在“更改适配器设置”中把无线网络禁用,然后再生成License.dat文件,这时候License.dat里面的MAC地址就不会是无线网络的MAC地址了,还有就是你可以手...

TF卡转接变U盘?

有、没清楚你意思。tf卡通过usb连接电脑用专用读卡器就行了,十元左右;通过手机的TF卡插槽外接读写外部U盘也是可以的,不过是一些大虾自己用ssop封装单片机做的...

奔驰GLK300,为什么电脑上可以放的视频,拿到车子上放不了?怎么...

所谓单片机大致就是功能单一的机器。由于其硬件设施性能太低,所以其功能会比普...一般车载机器是DVD就支持常见格式:rm,rmvb,mp4,avi,mpeg,dat,vob等。我个人...

招商银行23型U盾插电脑上没反应- 汇财吧专业问答test

[回答]重新安装驱动,换个接口,还是不行的话在别人电脑上试试!看是不是中毒了!多试试招商银行U盾使用方法:1、将U盾插在电脑usb口上,电脑会自动安装驱动程...

猜你喜欢