91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 106KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-24
  • 語言: 其他
  • 標(biāo)簽: 單片機??仿真??日歷??

資源簡介

用51單片機完成的數(shù)字萬年歷同時帶數(shù)字溫度計,程序完整,自帶proteus仿真圖。

資源截圖

代碼片段和文件信息

#include
#include“DS18B20_3.H“
#define?uint?unsigned?int
#define?uchar?unsigned?char
uchar?amiaoshifenriyuenianweekflagkey1ntemp;
//flag用于讀取頭文件中的溫度值,和顯示溫度值

#define?yh?0x80?//LCD第一行的初始位置因為LCD1602字符地址首位D7恒定為1(100000000=80)
#define?er?0x80+0x40?//LCD第二行初始位置(因為第二行第一個字符位置地址是0x40)

//液晶屏的與C51之間的引腳連接定義(顯示數(shù)據(jù)線接C51的P0口)
sbit?rs=P2^0;
sbit?en=P2^2;
sbit?rw=P2^1;?//如果硬件上rw接地,就不用寫這句和后面的rw=0了
sbit?led=P2^6;?//LCD背光開關(guān)

//DS1302時鐘芯片與C51之間的引腳連接定義
sbit?IO=P1^1;
sbit?SCLK=P1^0;
sbit?RST=P1^2;

sbit?ACC0=ACC^0;
sbit?ACC7=ACC^7;
/************************************************************
ACC累加器=A
ACC.0=E0H?

ACC.0就是ACC的第0位。Acc可以位尋址。

累加器ACC是一個8位的存儲單元,是用來放數(shù)據(jù)的。但是,這個存儲單元有其特殊的地位,
是單片機中一個非常關(guān)鍵的單元,很多運算都要通過ACC來進行。以后在學(xué)習(xí)指令時,
常用A來表示累加器。但有一些地方例外,比如在PUSH指令中,就必須用ACC這樣的名字。
一般的說法,A代表了累加器中的內(nèi)容、而ACC代表的是累加器的地址。?
***************************************************************/

//校時按鍵與C51的引腳連接定義
sbit?key1=P1^5;??//設(shè)置鍵
sbit?key2=P1^6;??//加鍵
sbit?key3=P1^7;??//減鍵

sbit?buzzer=P1^3;//蜂鳴器,通過三極管9012驅(qū)動,端口低電平響

/**************************************************************/

uchar?code?tab1[]={“20??-??-???“};?//年顯示的固定字符
uchar?code?tab2[]={“??:??:??“};//時間顯示的固定字符

//延時函數(shù),后面經(jīng)常調(diào)用
void?delay(uint?xms)//延時函數(shù),有參函數(shù)
{
uint?xy;
for(x=xms;x>0;x--)
?for(y=110;y>0;y--);
}

/********液晶寫入指令函數(shù)與寫入數(shù)據(jù)函數(shù),以后可調(diào)用**************/

/*在這個程序中,液晶寫入有關(guān)函數(shù)會在DS1302的函數(shù)中調(diào)用,所以液晶程序要放在前面*/

write_1602com(uchar?com)//****液晶寫入指令函數(shù)****
{
rs=0;//數(shù)據(jù)/指令選擇置為指令
rw=0;?//讀寫選擇置為寫
P0=com;//送入數(shù)據(jù)
delay(1);
en=1;//拉高使能端,為制造有效的下降沿做準(zhǔn)備
delay(1);
en=0;//en由高變低,產(chǎn)生下降沿,液晶執(zhí)行命令
}


write_1602dat(uchar?dat)//***液晶寫入數(shù)據(jù)函數(shù)****
{
rs=1;//數(shù)據(jù)/指令選擇置為數(shù)據(jù)
rw=0;?//讀寫選擇置為寫
P0=dat;//送入數(shù)據(jù)
delay(1);
en=1;?//en置高電平,為制造下降沿做準(zhǔn)備
delay(1);
en=0;?//en由高變低,產(chǎn)生下降沿,液晶執(zhí)行命令
}


lcd_init()//***液晶初始化函數(shù)****
{
write_1602com(0x38);//設(shè)置液晶工作模式,意思:16*2行顯示,5*7點陣,8位數(shù)據(jù)
write_1602com(0x0c);//開顯示不顯示光標(biāo)
write_1602com(0x06);//整屏不移動,光標(biāo)自動右移
write_1602com(0x01);//清顯示

write_1602com(yh+1);//日歷顯示固定符號從第一行第1個位置之后開始顯示
for(a=0;a<14;a++)
{
write_1602dat(tab1[a]);//向液晶屏寫日歷顯示的固定符號部分
//delay(3);
}
write_1602com(er+2);//時間顯示固定符號寫入位置,從第2個位置后開始顯示
for(a=0;a<8;a++)
{
write_1602dat(tab2[a]);//寫顯示時間固定符號,兩個冒號
//delay(3);
}

}

/*********************over***********************/


/***************DS1302有關(guān)子函數(shù)********************/

void?write_byte(uchar?dat)//寫一個字節(jié)
{
ACC=dat;
RST=1;
for(a=8;a>0;a--)
{
IO=ACC0;
SCLK=0;
SCLK=1;
ACC=ACC>>1;
}
}
uchar?read_byte()//讀一個字節(jié)
{
RST=1;
for(a=8;a>0;a--)
{
ACC7=IO;
SCLK=1;
SCLK=0;
ACC=ACC>>1;

}
return?(ACC);
}
//----------------------------------------
void?write_1302(uchar?adduchar?dat)//向1302芯片寫函數(shù),指定寫入地址,數(shù)據(jù)
{

RST=0;
SCLK=0;
RST=1;
write_byte(add);
write_byte(dat);
SCLK=1;
RST=0;
}
uchar?read_1302(uchar?add)//從1302讀數(shù)據(jù)函數(shù),指定讀取數(shù)據(jù)來源地址
{
uchar?temp;
RST=0;
SCLK=0;
RST=1;
write_byte(add);
temp=read_byte();
SCLK=1;
RST=0;
return(temp);
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件????????909??2010-01-08?21:42??1602+ds1302+18B20萬年歷顯示溫度星期(完全通過)\lcd?1302.PWI

????.......??????1038??2010-01-10?23:18??1602+ds1302+18B20萬年歷顯示溫度星期(完全通過)\lcd1602_Opt.Bak

?????文件??????88627??2010-01-10?21:54??1602+ds1302+18B20萬年歷顯示溫度星期(完全通過)\Last?Loaded?lcd1602.DBK

?????文件??????85538??2009-03-12?19:53??1602+ds1302+18B20萬年歷顯示溫度星期(完全通過)\Backup?Of?lcd?1302.DBK

?????文件????????128??2010-01-10?23:23??1602+ds1302+18B20萬年歷顯示溫度星期(完全通過)\lcd1602.plg

?????文件??????17276??2010-01-10?23:23??1602+ds1302+18B20萬年歷顯示溫度星期(完全通過)\lcd1602.c

?????文件??????35589??2010-01-10?23:23??1602+ds1302+18B20萬年歷顯示溫度星期(完全通過)\lcd1602.M51

?????文件???????6055??2010-01-10?23:23??1602+ds1302+18B20萬年歷顯示溫度星期(完全通過)\lcd1602.hex

?????文件??????85836??2009-03-17?18:55??1602+ds1302+18B20萬年歷顯示溫度星期(完全通過)\Last?Loaded?lcd?1302.DBK

?????文件???????1007??2010-01-10?23:51??1602+ds1302+18B20萬年歷顯示溫度星期(完全通過)\說明.txt

?????文件???????1662??2010-01-09?00:27??1602+ds1302+18B20萬年歷顯示溫度星期(完全通過)\lcd1602.Uv2

?????文件??????97907??2010-01-10?23:42??1602+ds1302+18B20萬年歷顯示溫度星期(完全通過)\lcd1602.DSN

?????文件???????3884??2010-01-09?00:11??1602+ds1302+18B20萬年歷顯示溫度星期(完全通過)\LCD18B20.h

?????文件???????1383??2010-01-10?23:55??1602+ds1302+18B20萬年歷顯示溫度星期(完全通過)\lcd1602.PWI

?????文件???????3765??2010-01-08?23:48??1602+ds1302+18B20萬年歷顯示溫度星期(完全通過)\DS18B20_3.H

?????文件?????????46??2010-01-10?23:23??1602+ds1302+18B20萬年歷顯示溫度星期(完全通過)\lcd1602.lnp

?????文件??????27455??2010-01-10?23:23??1602+ds1302+18B20萬年歷顯示溫度星期(完全通過)\lcd1602.LST

?????文件??????33289??2010-01-10?23:23??1602+ds1302+18B20萬年歷顯示溫度星期(完全通過)\lcd1602.OBJ

?????文件??????27996??2010-01-10?23:23??1602+ds1302+18B20萬年歷顯示溫度星期(完全通過)\lcd1602

?????文件???????1035??2010-01-10?23:23??1602+ds1302+18B20萬年歷顯示溫度星期(完全通過)\lcd1602.Opt

?????目錄??????????0??2010-01-09?00:34??1602+ds1302+18B20萬年歷顯示溫度星期(完全通過)

-----------?---------??----------?-----??----

???????????????520425????????????????????21


評論

共有 條評論