freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于51單片機(jī)實(shí)驗(yàn)報(bào)告(計(jì)算器)-資料下載頁

2025-02-04 10:57本頁面

【導(dǎo)讀】溫度傳感器等實(shí)現(xiàn)一個(gè)能做簡(jiǎn)單四則運(yùn)算,并具有時(shí)鐘顯示,溫度顯示附加功能的計(jì)算器。利用STC89C52為內(nèi)核的單片機(jī),PC機(jī)。和結(jié)果顯示在LCD1602上。時(shí)鐘顯示和溫度顯示,可以利用DS1302產(chǎn)生年份,月份,日期,星期,時(shí),優(yōu)先級(jí)計(jì)算,LCD1602顯示。鍵盤掃描常用的有行掃描法,線反轉(zhuǎn)法,此處我們用行掃描法,可以更。讀完按鍵值之后我們需要讀取運(yùn)算的數(shù)字與運(yùn)算符號(hào),通過判斷鍵值為。讀取完鍵值之后,對(duì)運(yùn)算符進(jìn)行判斷如果第二位運(yùn)算符為乘除則在讀取。如果第二個(gè)操作符不是“=”,則需先先計(jì)算一步,并將計(jì)算結(jié)果,和讀。取的第三個(gè)鍵值賦給第二組的數(shù)字和運(yùn)算符,繼續(xù)循環(huán)判斷。LCD顯示主要是控制三個(gè)端口lcden=0;lcdrs=0;lcdrw=0;分別為使能端,使用DS1302時(shí),要對(duì)其引腳和寄存器進(jìn)行特殊設(shè)置,以實(shí)現(xiàn)所需功能。腳設(shè)置后面會(huì)提及,這里不做說明,主要講一下程序的編寫。2.代碼實(shí)現(xiàn):.向DS1302中寫入數(shù)據(jù),利用RTInputByte函數(shù)向DS1302中一字節(jié)一字。而對(duì)于DS1302而言,輸入的數(shù)據(jù)前8位為地址,后8位為輸入

  

【正文】 else { Write_1602(0,(0xc0+x))。//第二行 } Write_1602(1,dat)。//寫入數(shù)據(jù) } /************************************************/ /* 1602 字符串顯示 */ /************************************************/ void ShowString_1602(unsigned char x, unsigned char y, unsigned char *dat) { if(y==0) Write_1602(0,(0x80+x))。 else Write_1602(0,(0xc0+x))。 while(*dat) { Write_1602(1,*dat)。 dat++。 } } /************************************************/ /* 1602 初始化 */ /************************************************/ void Init_1602() { Write_1602(0,0x38)。//顯示模式設(shè)置 Delayms(5)。 Write_1602(0,0x38)。 Delayms(5)。 Write_1602(0,0x38)。 Delayms(5)。 Write_1602(0,0x38)。 Write_1602(0,0x08)。//只開顯示 Write_1602(0,0x01)。//顯示清屏 Write_1602(0,0x06)。//地址加 1,當(dāng)寫入數(shù)據(jù)的時(shí)候光標(biāo)右移 Delayms(5)。 Write_1602(0,0x0c)。//顯示開,光標(biāo)關(guān) } /************************************************/ /* 1602 自定義字符 (攝氏度的小點(diǎn)) */ /************************************************/ void Lcd_User_Char() { Write_1602(0,0x48)。 Write_1602(1,0x03)。 Write_1602(0,0x49)。 Write_1602(1,0x03)。 Write_1602(0,0x4a)。 Write_1602(1,0x00)。 Write_1602(0,0x4b)。 Write_1602(1,0x00)。 Write_1602(0,0x4c)。 Write_1602(1,0x00)。 Write_1602(0,0x4d)。 Write_1602(1,0x00)。 Write_1602(0,0x4e)。 Write_1602(1,0x00)。 Write_1602(0,0x4f)。 Write_1602(1,0x00)。 } /************************************************/ /* 溫度數(shù)據(jù)轉(zhuǎn)換 */ /************************************************/ void Change(unsigned int i)//將 18b20 讀出的數(shù)據(jù)轉(zhuǎn)換成真實(shí)溫度送入 1602 { unsigned char x,z。 x = i amp。 0x0f。//取出小數(shù) i = 4。 switch(x) //小數(shù)位轉(zhuǎn)換 { case 0: z=0。break。 case 1: z=1。break。 case 2: z=1。break。 case 3: z=2。break。 case 4: z=3。break。 case 5: z=3。break。 case 6: z=4。break。 case 7: z=4。break。 case 8: z=5。break。 case 9: z=6。break。 case 10: z=6。break。 case 11: z=7。break。 case 12: z=8。break。 case 13: z=8。break。 case 14: z=9。break。 case 15: z=9。break。 } z=z+48。//轉(zhuǎn) ascii 碼 ShowByte_1602(5,1,z)。 z = i amp。 0xff。 x = z/10。//取出十位 x = x+48。 ShowByte_1602(2,1,x)。 x = z%10。//個(gè)位 x = x+48。 ShowByte_1602(3,1,x)。 } void main() { unsigned char i。 Init_1602()。 Clear_1602()。 Lcd_User_Char()。 ShowByte_1602(4,1,39。.39。)。 ShowByte_1602(6,1,0x01)。//自定義字符 (攝氏度的點(diǎn) ) ShowByte_1602(7,1,39。C39。)。 ShowString_1602(1,0,Temp Is:)。 while(1) { Change(ReadTemp())。 for(i=0。i10。i++) { Delayms(200)。 } } }
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦

基于單片機(jī)的簡(jiǎn)易計(jì)算器設(shè)計(jì)-資料下載頁

【總結(jié)】電》