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

正文內(nèi)容

基于單片機(jī)的太陽能熱水器控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-閱讀頁

2025-02-02 14:25本頁面
  

【正文】 境(uVision)將這些部份組合在一起。即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會(huì)令人事半功倍[12]。用過匯編語言后再使用C來開發(fā),體會(huì)更加深刻。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。 太陽能熱水器控制系統(tǒng)軟件設(shè)計(jì)流程圖本課題設(shè)計(jì)的太陽能熱水器控制系統(tǒng)的軟件程序設(shè)計(jì)主要由(1)初始化程序,(2)掃描按鍵程序,(3)按鍵處理子程序,(4)讀取水位信息、水箱溫度和時(shí)間程序,(6)調(diào)用顯示子程序,六個(gè)部分組成。初始化的過程包括啟動(dòng)DS1302,啟動(dòng)12864,對12864進(jìn)行清屏。set_time(0x8e,0x00)。 //啟動(dòng)時(shí)鐘set_time(0x84,0x00)。 //時(shí)鐘時(shí)鐘充電模式set_time(0x8e,0x80)。 RES1=1。 //啟動(dòng)12864 clean()。在檢測到有鍵按下后,根據(jù)按下的次數(shù)(按一下設(shè)置“分”,按兩下設(shè)置“時(shí)”,三下設(shè)置“星期”,以此類推),在運(yùn)用“加”“減”分別設(shè)置。 //啟動(dòng)時(shí)鐘 set_time(0x8e,0x00)。 //分操作 下面所有的加減同理 if(minute09) // minute0最大為9,minute1最大為5 { minute1++。 if(minute15) { minute1=0。 //按鍵清零 表示已經(jīng)執(zhí)行完 } if(time_jian==1) { minute0。 minute0=9。 } } time_jian=0。在讀取的過程中,要注意溫度的正負(fù)。 //溫度復(fù)位 wendu_write(0xcc)。 //啟動(dòng)一次轉(zhuǎn)換wendu_reset()。 //跳過ROM搜索命令wendu_write(0xbe)。 //讀高字節(jié)8位b=wendu_read()。0x80。 //直接轉(zhuǎn)化為十進(jìn)制數(shù)}if(pn==0x80) //如果溫度為負(fù){a=~a。c=a+1。} //向高位進(jìn)1t=((b*256)+c)/16。Proteus軟件是來自英國Labcenter electronics公司的EDA工具軟件,Proteus軟件有十多年的歷史,在全球廣泛使用,除了具有和其它EDA工具一樣的原理布圖、PCB自動(dòng)或人工布線及電路仿真的功能外,其革命性的功能是,它的電路仿真是互動(dòng)的。如果有顯示及輸出,配合系統(tǒng)配置的虛擬儀器如示波器、邏輯分析儀等,還能看到運(yùn)行后輸入輸出的效果。 Proteus[13]建立了完備的電子設(shè)計(jì)開發(fā)環(huán)境,尤其重要的是Proteus Lite可以完全免費(fèi),也可以花微不足道的費(fèi)用注冊達(dá)到更好的效果??梢苑抡?1系列、AVR、PIC等常用的MCU及其外圍電路(如LCD,RAM,ROM,鍵盤,馬達(dá),LED,AD/DA,部分SPI器件,部分IIC器件,...)。 使用51系列單片機(jī),不管是用匯編語言還是用C語言編程都要用到keil軟件。 當(dāng)然,硬件實(shí)踐還是必不可少的。另外,即使有硬件,在程序編寫早期用軟件仿真一下也是很有必要的[14]。具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、RS232動(dòng)態(tài)仿真、I2C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。目前支持的單片機(jī)類型有:ARM7(LPC21xx)、 8051/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以及多種外圍芯片。在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置斷點(diǎn)等調(diào)試功能,同時(shí)可以觀察各個(gè)變量、寄存器等的當(dāng)前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能[15];同時(shí)支持第三方的軟件編譯和調(diào)試環(huán)境,如Keil C51 uVisionMPLAB等軟件??傊?,該軟件是一款集單片機(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大。 太陽能熱水器控制系統(tǒng)調(diào)試過程系統(tǒng)的硬件電路設(shè)計(jì)與軟件程序設(shè)計(jì)都完成之后,首先,在硬件電路的仿真環(huán)境Proteus中,將經(jīng)過編輯、編譯、匯編、然后對系統(tǒng)進(jìn)行整體調(diào)試。解決方法:用一個(gè)等來仿真加熱過程,燈亮?xí)r表示加熱,圖中的三極管為光敏三極管(Proteus仿真元件庫中沒有),當(dāng)燈亮?xí)r,光敏三極管導(dǎo)通,繼電器閉合,電阻絲發(fā)熱,完成了加熱任務(wù)。 加熱程序電路圖問題描述:在控制中,還有一個(gè)重要的部分,水位顯示。解決方法:起初想到兩個(gè)方案。 水位顯示電路圖檢測原理如下:當(dāng)水箱中無水時(shí),8個(gè)非門均由1M歐姆電阻上拉成高電平, 所以圖中各“非”門(CD4069) 輸出均為低電平,LED1~ LED8 均不亮。隨著水位的上升,各“非”門輸出相繼為高電平,LED依次點(diǎn)亮。問題描述:,調(diào)試按鍵,沒按一下,屏幕或者沒有反應(yīng),或者連跳兩下,“加”“減”鍵也是如此,想在現(xiàn)有的基礎(chǔ)上加一,結(jié)果按了一下以后,并沒有加一,有時(shí)候連加兩次。為了提高系統(tǒng)的穩(wěn)定性,必須去除或避開它。 問題描述:在與12864液晶顯示屏連接仿真時(shí),發(fā)現(xiàn)液晶顯示屏可以啟動(dòng),清屏,但是部分時(shí)間及星期不顯示,按鍵并不起作用。通過檢查,發(fā)現(xiàn)程序在keil中運(yùn)行無誤,是部分導(dǎo)線連接錯(cuò)誤。(2)系統(tǒng)功能測試:設(shè)計(jì)前期通過KEIL軟件和PROTEUS仿真軟件的聯(lián)調(diào),對設(shè)計(jì)功能進(jìn)行仿真,均達(dá)到了預(yù)期的設(shè)計(jì)效果,設(shè)計(jì)后期,硬件制作完畢后,將仿真成功后的程序通過單片機(jī)下載程序,寫入單片機(jī),再根據(jù)顯示模塊的各個(gè)端口連接方式,正確地將單片機(jī)跟顯示模塊連接,最后都實(shí)現(xiàn)了設(shè)計(jì)的功能。單片機(jī)控制系統(tǒng)具有低價(jià)、智能的優(yōu)勢,能夠根據(jù)需求的不同而作相應(yīng)的調(diào)整,更加個(gè)性化。該熱水器具備以下特點(diǎn):結(jié)構(gòu)簡單、運(yùn)行可靠、操作維護(hù)簡便;熱源取之不盡用之不竭,不需要運(yùn)輸,節(jié)省燃料;無污染,不會(huì)對周圍環(huán)境造成任何影響。ARM7系統(tǒng)中的應(yīng)用百例[M]. 電子工業(yè)出版社, 2006:6478[13]宮亞梅. 基于Proteus和Keil的單片機(jī)課程設(shè)計(jì)[J]. 濟(jì)南職業(yè)學(xué)院學(xué)報(bào). 2008(5):13[14] Predictive Energy Balance for Solar Hot Water Systems, Centre for Sustainable Energy Systems[J]. 2005:115130[15] Dreamtech Software Team, Programming for Embedded SystemsCracking the Code, Hungry Minds[J]. :3342致 謝本次課程設(shè)計(jì)是對所學(xué)知識的一次綜合性運(yùn)用。從而完成了本次設(shè)計(jì)。這次課程設(shè)計(jì)收獲很多,體會(huì)也很深刻,并且對我們所學(xué)的東西也產(chǎn)生了濃厚的興趣。當(dāng)然最重要的是學(xué)到了關(guān)于基本電子設(shè)計(jì)的一些基本方法,同時(shí)也加深了對一些常用的電子元件的理解及其基本用法的掌握。由于時(shí)間關(guān)系,本次設(shè)計(jì)中還有不盡完善之處。在本次設(shè)計(jì)過程中遇到不少問題,在趙保華老師和同學(xué)的幫助和配合下才順利的完成了本次課程設(shè)計(jì)。在此,我對老師和同學(xué)表示深深的謝意。 //12864復(fù)位sbit A0=P2^1。 //讀寫選擇sbit E=P2^3。 //狀態(tài)按鈕sbit B1=P0^1。 //執(zhí)行減按鈕sbit DQ=P3^0。 //DS1302 IO口設(shè)置sbit SCLK=P3^2。 //復(fù)位/片選腳設(shè)置unsigned char state_button,time_jia,time_jian。 //12MHz 下跳轉(zhuǎn)到延遲函數(shù)需2微妙。DQ=1。 DQ=0。 //復(fù)位延遲,不得小于480微秒DQ=1。 //延遲一段時(shí)間,等待回應(yīng)r=DQ。 //延遲一段時(shí)間結(jié)束//return(r)。 for(i=8。i) { DQ=0。0x01。 //延遲30微秒左右,等DS18B20采樣DQ=1。 //寫入數(shù)據(jù)右移一位 }}signed int wendu_read(void) //讀溫度字節(jié)程序{ unsigned char i=0,t=0,pn=0。i0。 //總線為低電平準(zhǔn)備讀操作,然后在1微秒內(nèi)釋放總線,以便讓DS18B20將數(shù)據(jù)反饋 t=1。 //總線拉為高電平后,執(zhí)行下面代碼if(DQ==1) //如果總線反饋為高電平{t|=0x80。 //延遲一頓時(shí)間,然后開始下次循環(huán) } return(t)。 //設(shè)置循環(huán)變量for(i=0。i++) //連續(xù)寫8bit{j=time_wdamp。 //取寫入數(shù)據(jù)最低位IO=0。 //拉低時(shí)鐘信號if(j==1) //判斷待發(fā)送的數(shù)據(jù)位是0或1{ IO=1。 //待發(fā)送的數(shù)據(jù)右移1位SCLK=1。 //寫完一個(gè)字節(jié),拉低時(shí)鐘信號}unsigned char time_read() //讀時(shí)間函數(shù){unsigned char time_rd。 //設(shè)置循環(huán)變量IO=1。i8。 //拉低時(shí)鐘信號time_rd=time_rd1。 //把接收到的數(shù)據(jù)放到接收寄存器的最高位}SCLK=1。 //拉低時(shí)鐘信號return(time_rd)。 //設(shè)置返回變量SCLK=0。 //拉低CE(只有在CE為高電平時(shí)才可對DS1302進(jìn)行操作)CE=1。 //寫入命令dd=time_read()。 //拉低CEreturn(dd)。 //和讀時(shí)間函數(shù)相同CE=0。time_write(ord)。 //寫入時(shí)間數(shù)據(jù)CE=0。set_time(0x8e,0x00)。 //啟動(dòng)時(shí)鐘set_time(0x84,0x00)。 //時(shí)鐘時(shí)鐘充電模式set_time(0x8e,0x80)。 RES1=1。 //啟動(dòng)12864 clean()。 //關(guān)鍵函數(shù),不可刪除 for(i=1。i++) { delay(10000)。 tuxiang()。 //溫度復(fù)位 wendu_write(0xcc)。 //啟動(dòng)一次轉(zhuǎn)換wendu_reset()。 //跳過ROM搜索命令wendu_write(0xbe)。 //讀高字節(jié)8位b=wendu_read()。0x80。 //直接轉(zhuǎn)化為十進(jìn)制數(shù)}if(pn==0x80) //如果溫度為負(fù){a=~a。c=a+1。 //向高位進(jìn)1}t=((b*256)+c)/16。 //將溫度寫入到1286
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1