提問(wèn)者:zhangpan6862017-01-10 00:00
以上是仿真圖,求程序。。。
LCD驅(qū)動(dòng)程序/*************************************************************//* *//*檢查L(zhǎng)CD忙狀態(tài) *//*lcd_busy為1時(shí),忙,等待。lcd-busy為0時(shí),閑,可寫指令與數(shù)據(jù) *//* *//*************************************************************/static bit lcd_busy(){ bit result; LCD_RS = 0; LCD_RW = 1; LCD_EN = 1; delayNOP(); result = (bit)(LCD_DB_Port&0x80); LCD_EN = 0; return(result); }/*******************************************************************//* *//*寫指令數(shù)據(jù)到LCD *//*RS=L,RW=L,E=高脈沖,D0-D7=指令碼。 *//* *//*******************************************************************/void lcd_wcmd(uchar cmd){ while(lcd_busy()); LCD_RS = 0; LCD_RW = 0; LCD_EN = 0; _nop_(); _nop_(); #ifdef LCD_8DB LCD_DB_Port = cmd;#endifdelayNOP(); LCD_EN = 1; //上跳沿時(shí)輸入數(shù)據(jù) delayNOP(); LCD_EN = 0; }/*******************************************************************//* *//*寫顯示數(shù)據(jù)到LCD *//*RS=H,RW=L,E=高脈沖,D0-D7=數(shù)據(jù)。 *//* *//*******************************************************************/void lcd_wdat(uchar dat){ while(lcd_busy()); LCD_RS = 1; LCD_RW = 0; LCD_EN = 0;#ifdef LCD_8DB LCD_DB_Port = dat;#endifdelayNOP(); LCD_EN = 1; delayNOP(); //上跳沿時(shí)輸入數(shù)據(jù) LCD_EN = 0; }/*************************************************************//* *//* LCD初始化設(shè)定 *//* *//*************************************************************/void lcd_init(){ delay(15); //等待電源穩(wěn)定 lcd_wcmd(LCD_MODE); //設(shè)置顯示模式 delay(5); lcd_wcmd(LCD_MODE); delay(5); lcd_wcmd(LCD_MODE); delay(5); lcd_wcmd(0x0c); //顯示開,關(guān)光標(biāo) delay(5); lcd_wcmd(0x06); //移動(dòng)光標(biāo) delay(5); lcd_wcmd(0x01); //清除LCD的顯示內(nèi)容 delay(5);}
回答者:sfASFsa6562017-01-12 00:00
樓主你在時(shí)序上有些錯(cuò)誤1。在轉(zhuǎn)換時(shí)沒(méi)有留夠足夠的轉(zhuǎn)換時(shí)間。根據(jù)DS18B20芯片手冊(cè),9位精度轉(zhuǎn)換時(shí)間為93.75ms。12位精度轉(zhuǎn)換時(shí)間為750ms。而DS18B20默認(rèn)為12位精度。所以我加了750ms延時(shí)2。在寫函
提問(wèn)者:rockchunyang2016-12-23
乘以256是為了將讀過(guò)來(lái)的數(shù)據(jù)轉(zhuǎn)換成十進(jìn)制數(shù),再乘以25,然后在返回值里又左移了2,相當(dāng)于(b*256+a)*0.0625*100!這段程序應(yīng)該沒(méi)有判斷正負(fù)的語(yǔ)句!你多看看DS18B20的手冊(cè)就會(huì)明白了!那里面說(shuō)的很明白
提問(wèn)者:nisipm2013-07-16
任何外設(shè)的初始化或者命令如果能夠得到返回值確定完成或者未完成才能讓單片機(jī)選擇是否進(jìn)行下一步,更能讓編程人員得到錯(cuò)誤信息正確的調(diào)試錯(cuò)誤
提問(wèn)者:wangyunfeng1382016-09-20
是格式化輸出八進(jìn)制的整型數(shù)據(jù) printf的格式控制的完整格式: 格式字符 格式字符用以指定輸出項(xiàng)的數(shù)據(jù)類型和輸出格式。 ①d格式:用來(lái)輸出十進(jìn)制整數(shù)。有以下幾種用法: %d:按整型數(shù)據(jù)的實(shí)際長(zhǎng)度輸出。 %md:m為指定
提問(wèn)者:bjpjf2016-05-12
1、節(jié)氣門位置傳感器作用:節(jié)氣門位置傳感器是監(jiān)測(cè)節(jié)氣門開啟角度的大小,確定怠速,全負(fù)荷及加減速工況,以實(shí)施與節(jié)氣門開度狀態(tài)相對(duì)應(yīng)的各種噴油量控制。失效影響:怠速忽高忽低,或造成飛車現(xiàn)象。2、進(jìn)氣門壓力傳感器作用:進(jìn)氣壓力
提問(wèn)者:ge870894382016-06-10
把tplsb和tpmsb都是8位的合成一個(gè)16位的有符號(hào)數(shù)tt;temp為浮點(diǎn)數(shù) t=tpmsb<<8; t=t|tplsb; if(t<0) //負(fù)溫
提問(wèn)者:z78782013-06-13