初学单片机万能模板51单片机C语言程序Word格式文档下载.docx

上传人:b****5 文档编号:15841962 上传时间:2022-11-16 格式:DOCX 页数:24 大小:19.69KB
下载 相关 举报
初学单片机万能模板51单片机C语言程序Word格式文档下载.docx_第1页
第1页 / 共24页
初学单片机万能模板51单片机C语言程序Word格式文档下载.docx_第2页
第2页 / 共24页
初学单片机万能模板51单片机C语言程序Word格式文档下载.docx_第3页
第3页 / 共24页
初学单片机万能模板51单片机C语言程序Word格式文档下载.docx_第4页
第4页 / 共24页
初学单片机万能模板51单片机C语言程序Word格式文档下载.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

初学单片机万能模板51单片机C语言程序Word格式文档下载.docx

《初学单片机万能模板51单片机C语言程序Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《初学单片机万能模板51单片机C语言程序Word格式文档下载.docx(24页珍藏版)》请在冰豆网上搜索。

初学单片机万能模板51单片机C语言程序Word格式文档下载.docx

charnian=13,yue=3,ri=20,shi=20,fen,miao,

t1,num2,num3,date=3,A1;

bitflag;

inttemp;

floatf_temp;

voidweek(date);

voidWrite_1302(ucharaddress,uchardat);

bitRST_DS18B20();

voidWBIT_DS18B20(bitdata_bit);

bitRBIT_DS18B20(void);

voidWBYTE_DS18B20(uchardata_byte);

ucharRBYTE_DS18B20(void);

voidSTART_DS18B20(void);

uintREAD_TEM(void);

voidDelay_15us(uinttemp)//延时函数。

公式:

(15*temp+15)us

{

for(temp;

temp>

0;

temp--)

{

_nop_();

}

_nop_();

}

voiddelay(ucharx)

uchary,z;

for(y=x;

y>

y--)

for(z=110;

z>

z--);

}

voidwrite_com(ucharcom)//1602写指令

RS=0;

RW=0;

delay

(1);

P3=com;

EN=0;

EN=1;

voidwrite_date(uchardate)//1602写数据

RS=1;

P3=date;

voidinit()//初始化

{

write_com(0x38);

//显示模式设置16*2显示,5*7点阵,8位数据接口

delay(5);

write_com(0x0c);

//显示开显示.显示光标,不闪烁00001110

write_com(0x06);

//写一个字符后地址指针+1

write_com(0x01);

//清零

write_com(0x80);

miao=miao/10*16+miao%10;

fen=fen/10*16+fen%10;

shi=shi/10*16+shi%10;

ri=ri/10*16+ri%10;

yue=yue/10*16+yue%10;

nian=nian/10*16+nian%10;

voidwrite_sfm(ucharadd,chardate)//时分秒显示

charshi,ge;

shi=date/16;

ge=date%16;

write_com(0xc0+add);

write_date(0x30+shi);

write_date(0x30+ge);

voidwrite_nyr(ucharadd,chardate)//年月日显示

write_com(0x80+add);

voidWrite_1302(ucharaddress,uchardat)//1302写数据

uchari;

CE=0;

SCLK=0;

CE=1;

for(i=0;

i<

8;

i++)//循环8次写入地址数据

{

SCLK=0;

SDA=address&

0x01;

//每次传输低字节

address>

>

=1;

//右移一位

SCLK=1;

}

i++)//循环8次写入数据

SDA=dat&

dat>

//右移一位DSCLK=1

CE=0;

ucharRead_1302(ucharaddress)//1302读数据

uchari,temp=0x00;

SDA=1;

i++)//循环8次写入地址数据

if(SDA)

temp|=0x80;

//每次传输低字节

SCLK=0;

temp>

for(i=0;

7;

i++)//循环8次读取数据

{

if(SDA==1)

temp|=0x80;

//每次传输低字节

temp>

SCLK=1;

SDA=0;

returntemp;

//返回

voidDS1302_initW()//初始化时间设置(写)

Write_1302(0x8e,0x00);

//写保护关

Write_1302(0x80,miao);

//秒

Write_1302(0x82,fen);

//分

Write_1302(0x84,shi);

//时

Write_1302(0x86,ri);

//日

Write_1302(0x88,yue);

//月

Write_1302(0x8a,date);

//周

Write_1302(0x8c,nian);

//年

Write_1302(0x8e,0x80);

//写保护开

voidDS1302_initR()//初始化时间设置(读)

miao=Read_1302(0x81);

//读秒数据

fen=Read_1302(0x83);

//读分钟数据

shi=Read_1302(0x85);

//读小时数据

date=Read_1302(0x8b);

//读星期数据

ri=Read_1302(0x87);

//读日数据

yue=Read_1302(0x89);

//读月数据

nian=Read_1302(0x8d);

//读年数据

voiddisplay()//显示函数

write_com(0x80+0x07);

write_date('

-'

);

write_com(0x80+0x04);

write_com(0xc0+0x02);

:

'

write_com(0xc0+0x05);

write_com(0x80+0x00);

write_date(0x30+2);

write_date(0x30);

DS1302_initR();

write_nyr(2,nian);

//送液晶显示

write_nyr(5,yue);

write_nyr(8,ri);

write_sfm(0,shi);

write_sfm(3,fen);

write_sfm(6,miao);

week(date);

}

voidweek(date)//星期函数

write_com(0x80+12);

if(date==1)

for(num3=0;

num3<

3;

num3++)

write_date(a[num3]);

delay

(2);

}

if(date==2)

for(num3=4;

if(date==3)

for(num3=8;

11;

if(date==4)

for(num3=12;

15;

}

if(date==5)

for(num3=16;

19;

if(date==6)

for(num3=20;

23;

}

if(date==7)

for(num3=24;

27;

bitRST_DS18B20()//DS18B20复位

bitret=1;

DQ=0;

Delay_15us(39);

DQ=1;

Delay_15us(4);

ret=DQ;

Delay_15us(27);

return(ret);

voidWBIT_DS18B20(bitdata_bit)//写位

Delay_15us(0);

DQ=data_bit;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 视频讲堂

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1