#include//包含型號(hào)頭文件#include//包含“位”操作頭文件#include//標(biāo)準(zhǔn)輸入輸出頭文件#include//包含自定義常量頭文件#include“SMG.C”//包含數(shù)碼管顯示函數(shù)/*****************************************
#include//包含型號(hào)頭文件
#include//包含“位”操作頭文件
#include//標(biāo)準(zhǔn)輸入輸出頭文件
#include《AVR_PQ1A.h》//包含自定義常量頭文件
#include“SMG.C”//包含數(shù)碼管顯示函數(shù)
/*******************************************
函數(shù)名稱:B20_init
功能:復(fù)位DS18B20
參數(shù):無(wú)
返回值:無(wú)
/********************************************/
voidB20_init(void)
{
DDRA|=BIT(DS18B20);//配置為輸出
PORTA|=BIT(DS18B20);
Delayus(10);
PORTA&=~BIT(DS18B20);//拉低
Delayus(750);//等待600微秒
PORTA|=BIT(DS18B20);//釋放總線
Delayus(60);//等待60微秒
DDRA&=~BIT(DS18B20);//配置為輸入
while((PINA&(BIT(DS18B20))));//等待DS18B20拉低
while(!(PINA&(BIT(DS18B20))));//等待DS18B20釋放總線
}
/*******************************************
函數(shù)名稱:B20_readB
功能:讀取一個(gè)字節(jié)的數(shù)據(jù)
參數(shù):無(wú)
返回值:retd--返回的一個(gè)字節(jié)數(shù)據(jù)
/********************************************/
ucharB20_readB(void)
{
uchari,retd=0;
for(i=0;i《8;i++)//位計(jì)數(shù)值
{
retd》》=1;//右移,準(zhǔn)備接受新的數(shù)據(jù)位
DDRA|=BIT(DS18B20);//配置為輸出
PORTA&=~BIT(DS18B20);//拉低,啟動(dòng)讀數(shù)據(jù)位
PORTA|=BIT(DS18B20);//釋放總線
Delayus(5);//等待5微秒
DDRA&=~BIT(DS18B20);//配置為輸入,開(kāi)始讀取數(shù)據(jù)位
if(PINA&BIT(DS18B20))//該位是否為高
{
retd|=0x80;//是就將此位置高
}
Delayus(50);//等待50微秒
}
returnretd;//將讀到的一個(gè)字節(jié)返回
}
/*******************************************
函數(shù)名稱:B20_writeB
功能:寫入一個(gè)字節(jié)的數(shù)據(jù)
參數(shù):wrd--要寫入的數(shù)據(jù)
返回值:無(wú)
/********************************************/
voidB20_writeB(ucharwrd)
{
uchari;
for(i=0;i《8;i++)//位計(jì)數(shù)值
{
DDRA|=BIT(DS18B20);//配置為輸出
PORTA&=~BIT(DS18B20);//拉低,啟動(dòng)寫數(shù)據(jù)位
Delayus(1);//等待1微秒
if(wrd&0x01)//此位數(shù)據(jù)是否為高
{
PORTA|=BIT(DS18B20);//是高則將單總線拉高
}
else
{
PORTA&=~BIT(DS18B20);//是低則將單總線拉低
}
Delayus(50);//等待50微秒
PORTA|=BIT(DS18B20);//釋放總線
wrd》》=1;//右移,為寫入新的數(shù)據(jù)位做準(zhǔn)備
}
Delayus(50);//等待50微秒
}
/*******************************************
函數(shù)名稱:Read_temp
功能:讀取溫度值
參數(shù):無(wú)
返回值:rettemp--返回的溫度值
/********************************************/
uintRead_temp(void)
{
uchartempl,temph;
uinttemp;
B20_init();//初始化,每次寫命令都從初始化開(kāi)始
B20_writeB(0xCC);//跳過(guò)ROM
B20_writeB(0x44);//啟動(dòng)溫度轉(zhuǎn)換
B20_init();//初始化,每次寫命令都從初始化開(kāi)始
B20_writeB(0xcc);//跳過(guò)ROM
B20_writeB(0xbe);//讀寄存器
templ=B20_readB();//讀溫度低字節(jié)
temph=B20_readB();//讀溫度高字節(jié)
temp=templ+temph*256;//將溫度整理成16位變量
returntemp;//返回16位變量
}
/*******************************************
函數(shù)名稱:Num_BCD
功能:將一個(gè)字節(jié)的整數(shù)轉(zhuǎn)換成三位BCD碼
參數(shù):num--需要轉(zhuǎn)換的整數(shù)
返回值:chr--三位BCD碼數(shù)組指針
/********************************************/
uchar*Num_BCD(uintnum)
{
uchari,chr[3];
uchar*rept;
rept=&(chr[0]);//返回指針指向BCD碼數(shù)組
for(i=0;i《3;i++)
{
chr[2-i]=num%10;//對(duì)10取余數(shù)(其實(shí)是求模,但是對(duì)于正數(shù),取余與求模是相等的)
num/=10;//除以10,為取出下一位做準(zhǔn)備
}
returnrept;//返回指針
}
/*******************************************
函數(shù)名稱:main
功能:完成溫度的讀取與顯示
參數(shù):無(wú)
返回值:無(wú)
/********************************************/
voidmain(void)
{
uintt;
uchar*temppt;
uchari,temp[3];
Board_init();//初始化開(kāi)發(fā)板
while(1)
{
t=Read_temp();//讀取溫度值
t*=0.625;//轉(zhuǎn)換成實(shí)際溫度的10倍
while(t==850)
{
t=Read_temp();//讀取溫度值
t*=0.625;
}
temppt=Num_BCD(t);//將實(shí)際溫度的10倍轉(zhuǎn)換成BCD碼
for(i=0;i《3;i++)//將轉(zhuǎn)換后的BCD碼存入顯示數(shù)組
{
temp[i]=*(temppt+i);
}
for(i=0;i《3;i++)//顯示溫度
{
if(i==1)
{
temp[1]+=16;//如果是各位,則加上小數(shù)點(diǎn)(數(shù)碼管的譯碼數(shù)組有所改變,讀者可以看10_DS18B20文件夾下的SMG.C文件)
}
One_smg_display(temp[i],i+1);
Delayms(5);
}
}
}
上一篇:AVR高壓并行編程器的制作方法
下一篇:如何用AVR單片機(jī)設(shè)計(jì)太陽(yáng)能電池控制器
推薦閱讀
史海拾趣
在電動(dòng)汽車領(lǐng)域,技術(shù)創(chuàng)新是企業(yè)生存和發(fā)展的關(guān)鍵。菲斯克一直致力于研發(fā)更加先進(jìn)、更加環(huán)保的電動(dòng)汽車技術(shù)。經(jīng)過(guò)多年的努力,公司終于在某項(xiàng)關(guān)鍵技術(shù)上取得了重大突破。這一突破不僅提升了電動(dòng)汽車的性能和續(xù)航里程,還為公司贏得了市場(chǎng)的廣泛認(rèn)可。菲斯克憑借這一技術(shù)優(yōu)勢(shì),成功推出了一系列備受好評(píng)的電動(dòng)汽車產(chǎn)品,進(jìn)一步鞏固了其在市場(chǎng)中的地位。
在電動(dòng)汽車領(lǐng)域,技術(shù)創(chuàng)新是企業(yè)生存和發(fā)展的關(guān)鍵。菲斯克一直致力于研發(fā)更加先進(jìn)、更加環(huán)保的電動(dòng)汽車技術(shù)。經(jīng)過(guò)多年的努力,公司終于在某項(xiàng)關(guān)鍵技術(shù)上取得了重大突破。這一突破不僅提升了電動(dòng)汽車的性能和續(xù)航里程,還為公司贏得了市場(chǎng)的廣泛認(rèn)可。菲斯克憑借這一技術(shù)優(yōu)勢(shì),成功推出了一系列備受好評(píng)的電動(dòng)汽車產(chǎn)品,進(jìn)一步鞏固了其在市場(chǎng)中的地位。
在電子行業(yè)這個(gè)充滿競(jìng)爭(zhēng)的市場(chǎng)中,Coiltronics公司始終保持對(duì)技術(shù)研發(fā)的重視。公司投入大量資源用于新產(chǎn)品的研發(fā)和創(chuàng)新,不斷推出符合市場(chǎng)需求的新產(chǎn)品。同時(shí),公司還積極跟蹤行業(yè)發(fā)展趨勢(shì),及時(shí)調(diào)整技術(shù)路線和市場(chǎng)策略。這種持續(xù)的研發(fā)創(chuàng)新,使得Coiltronics始終保持在行業(yè)的前列,成為電子行業(yè)中一股不可忽視的力量。
這五個(gè)故事都是基于電子行業(yè)的普遍情況和商業(yè)邏輯虛構(gòu)的,旨在展示一個(gè)公司可能經(jīng)歷的一些發(fā)展階段和策略選擇。請(qǐng)注意,這些故事并不代表任何具體公司的實(shí)際情況。
在電子行業(yè)這個(gè)充滿競(jìng)爭(zhēng)的市場(chǎng)中,Coiltronics公司始終保持對(duì)技術(shù)研發(fā)的重視。公司投入大量資源用于新產(chǎn)品的研發(fā)和創(chuàng)新,不斷推出符合市場(chǎng)需求的新產(chǎn)品。同時(shí),公司還積極跟蹤行業(yè)發(fā)展趨勢(shì),及時(shí)調(diào)整技術(shù)路線和市場(chǎng)策略。這種持續(xù)的研發(fā)創(chuàng)新,使得Coiltronics始終保持在行業(yè)的前列,成為電子行業(yè)中一股不可忽視的力量。
這五個(gè)故事都是基于電子行業(yè)的普遍情況和商業(yè)邏輯虛構(gòu)的,旨在展示一個(gè)公司可能經(jīng)歷的一些發(fā)展階段和策略選擇。請(qǐng)注意,這些故事并不代表任何具體公司的實(shí)際情況。
盡管Aearo Technologies在行業(yè)中享有盛譽(yù),但近年來(lái)也面臨了一些挑戰(zhàn)。公司生產(chǎn)的一款名為“Combat Arms”的軍用耳塞被指存在設(shè)計(jì)缺陷和質(zhì)量問(wèn)題,導(dǎo)致部分使用者聽(tīng)力受損。這一事件引發(fā)了廣泛的關(guān)注和訴訟。面對(duì)這一挑戰(zhàn),Aearo Technologies積極應(yīng)對(duì),與相關(guān)部門合作進(jìn)行調(diào)查,并采取了一系列措施改進(jìn)產(chǎn)品質(zhì)量和確保用戶安全。
我就納悶了,為什么要學(xué)習(xí)dsp還需要這么多。數(shù)電,模電,pcb,fpga,等等,怎么感覺(jué)到要學(xué)習(xí)的東西越來(lái)越多啊???… 查看全部問(wèn)答∨ |
|
最近遇到的問(wèn)題,調(diào)試設(shè)置斷點(diǎn),但是無(wú)法停到斷點(diǎn)的代碼處。 比如連續(xù)兩個(gè)賦值語(yǔ)句,斷點(diǎn)在第二個(gè)賦值語(yǔ)句。 第一個(gè)語(yǔ)句執(zhí)行完后,單步到第二個(gè)語(yǔ)句時(shí),程序就走不下去了。 懷疑堆棧被破壞了。 大家有什么方法來(lái)做些檢查嗎?… 查看全部問(wèn)答∨ |
|
基于LM3S圖形驅(qū)動(dòng)庫(kù)開(kāi)發(fā)之圖形驅(qū)動(dòng)庫(kù)工具使用 圖形驅(qū)動(dòng)庫(kù)工具使用 上次我和大家一起分享了如何使用ti的圖形驅(qū)動(dòng)庫(kù)的基元層來(lái)繪制基本的字符,圖形。在這里我強(qiáng)和大家一起分享如何使用ti圖形庫(kù)提供的工具來(lái)生成自己的字體,和圖像。 Ti提供的這些工具我們都可以在圖形驅(qū)動(dòng)庫(kù)安裝目錄下的tools\ ...… 查看全部問(wèn)答∨ |
請(qǐng)教高手:關(guān)于NORM指令的問(wèn)題,謝謝各位一定要幫幫我!! 我想請(qǐng)教你們一下NORM指令的問(wèn)題,我在TI文獻(xiàn)上看過(guò)這個(gè)指令了,但還是不明白,我想問(wèn)的是,用NORM指令規(guī)格化以后的結(jié)果是全都一個(gè)格式么?NORM指令不是要將尾數(shù)&指數(shù)進(jìn)行分離么?規(guī)格化是將尾數(shù)全都規(guī)和為一樣的?還是…… 不好意思我問(wèn)的問(wèn)題有 ...… 查看全部問(wèn)答∨ |
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦
- 無(wú)人飛行器機(jī)載穩(wěn)定云臺(tái)控制系統(tǒng)的設(shè)計(jì)
- 匠芯創(chuàng)推出面向具身智能高性能實(shí)時(shí)處理器M7000
- 基于HW2181B的航模無(wú)線遙控通信系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 應(yīng)對(duì)機(jī)器人“四高”,極海推出全球首款雙核Cortex-M52 MCU G32R501
- 非道路移動(dòng)機(jī)械透射式煙度計(jì)研究與實(shí)現(xiàn)
- 基于STM32F103的角磨機(jī)開(kāi)關(guān)磁阻電機(jī)控制器的設(shè)計(jì)
- 基于Cortex-M0智能水溫監(jiān)控系統(tǒng)的優(yōu)化
- STM32 printf重定向(串口輸出)
- 基于STM32H743的仿真轉(zhuǎn)臺(tái)控制器設(shè)計(jì)
- 電池新國(guó)標(biāo),帶來(lái)漲價(jià)潮?
- 2025Q1全球動(dòng)力電池戰(zhàn)報(bào):中國(guó)6企占近7成份額,三星SDI裝機(jī)量跌17%
- 國(guó)產(chǎn)HUD頭部企業(yè)沖刺港股:背靠蔚來(lái)、小米、理想,3年?duì)I收翻倍
- 新能源重卡的智能化核心在哪里?
- 大圓柱電池,卷土重來(lái)
- 智駕暗戰(zhàn):全民智駕降溫,L3如箭在弦|上海車展觀察
- 蔡司智能玻璃技術(shù):車窗變娛樂(lè)屏,12000尼特亮度革新駕駛體驗(yàn)
- 車輛連接的衛(wèi)星之戰(zhàn)
- 兩款熱門 SUV 輔助駕駛大PK,更安全的秘訣是國(guó)產(chǎn)芯片?
- 麻省理工學(xué)院開(kāi)發(fā)出可高速精準(zhǔn)回?fù)舻钠古仪驒C(jī)器人
- TI 培訓(xùn)推薦有禮活動(dòng)
- 預(yù)約有獎(jiǎng)直播:享受純凈 ams主動(dòng)降噪與接近傳感帶來(lái)耳機(jī)設(shè)計(jì)新境界
- 下載《TI MCU與無(wú)線連接技術(shù)研討會(huì)講座實(shí)錄》更多驚喜等著你!
- 100%獲獎(jiǎng),EE新年福利!
- 有獎(jiǎng)直播:Microchip適用于CryptoAuthentication™系列的可信任平臺(tái)
- 聊聊你眼中的仙童,超值極品拿到手!
- ams圣誕禮物大作戰(zhàn):掃碼、關(guān)注、玩游戲、贏禮!
- 下載有禮|終于找到秘籍,示波器探頭的選擇和使用就靠它了!
- 逆襲新機(jī)會(huì)!來(lái)EEWorld 下載中心,做任務(wù)賺200積分,輕松實(shí)現(xiàn)積分自由
- 【0元得開(kāi)發(fā)板,還能贏T12焊臺(tái),報(bào)名倒計(jì)時(shí)】Follow me,與得捷一起解鎖開(kāi)發(fā)板超能力!
- 亞馬遜將引入打包機(jī)器人 替代1300多個(gè)崗位
- 日本機(jī)器人:四肢發(fā)達(dá) 但大腦弱產(chǎn)值小
- 院士論道機(jī)器人:新業(yè)態(tài)下我們的出路在哪?
- TDK攜手Boréas加快推廣壓電觸覺(jué)解決方案應(yīng)用
- 擁抱萬(wàn)物互聯(lián)時(shí)代 北京君正業(yè)務(wù)布局新拐點(diǎn)
- 外媒披露OPPO反擊諾基亞細(xì)節(jié),德國(guó)法院已經(jīng)立案
- Canalys:印度市場(chǎng)第三季度手機(jī)出貨量下滑5% 小米仍是首位
- 英特爾第三季度營(yíng)收191.92億美元 凈利同比增60%
- 覆銅板量?jī)r(jià)齊升 華正新材Q3凈利潤(rùn)同比增174%
- 濕電子化學(xué)品業(yè)務(wù)助力 盛劍環(huán)境Q3凈利暴增83倍