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

正文內(nèi)容

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

2025-01-18 14:25本頁面
  

【正文】 gramming for Embedded SystemsCracking the Code, Hungry Minds[J]. :3342致 謝本次課程設(shè)計是對所學(xué)知識的一次綜合性運用。其中包括對模擬電子技術(shù)基礎(chǔ)、和數(shù)字電子技術(shù)基礎(chǔ)、單片機(jī)等知識的運用。從而完成了本次設(shè)計。在設(shè)計的過程中發(fā)現(xiàn)了自身知識的不足,也發(fā)現(xiàn)我們必須具備專業(yè)基礎(chǔ)知識以外,才能成功的設(shè)計出一件合格的東西。這次課程設(shè)計收獲很多,體會也很深刻,并且對我們所學(xué)的東西也產(chǎn)生了濃厚的興趣。在設(shè)計過程中,也學(xué)會了很多新的東西,PROTEL軟件繪制電路原理圖和PCB圖,以及一些仿真軟件的應(yīng)用,最典型的就是PROTEUS軟件的應(yīng)用,以及與KEIL軟件的聯(lián)合使用功能。當(dāng)然最重要的是學(xué)到了關(guān)于基本電子設(shè)計的一些基本方法,同時也加深了對一些常用的電子元件的理解及其基本用法的掌握。除此之外,我覺得在這次設(shè)計的過程中,我發(fā)現(xiàn)團(tuán)隊精神的重要性,很多時候一個人的力量是有限的,一個人不可能什么都會,什么都能自己解決,還是有需要他人幫助的時候,我覺得人與人之間的相互幫助很有必要,這樣不僅能幫助大家很快的解決問題,還能提高我們每個人的實際水平,也培養(yǎng)了我們的團(tuán)隊合作精神,這些能力對于我們今后的學(xué)習(xí)和工作都很有幫助。由于時間關(guān)系,本次設(shè)計中還有不盡完善之處。希望在以后的學(xué)習(xí)生涯中不斷的完善和改進(jìn)。在本次設(shè)計過程中遇到不少問題,在趙保華老師和同學(xué)的幫助和配合下才順利的完成了本次課程設(shè)計。趙保華老師在我們做設(shè)計的過程中,給予了我們極大的幫助,不僅從知識方面引導(dǎo)了我們的設(shè)計思路,同時,在人生觀上也給了我們不少的啟示。在此,我對老師和同學(xué)表示深深的謝意。附 錄下圖為仿真時的總體電路圖:includeincludesbit RES1=P2^0。 //12864復(fù)位sbit A0=P2^1。 //命令 數(shù)據(jù)選擇sbit RW=P2^2。 //讀寫選擇sbit E=P2^3。 //使能信號sbit B0=P0^0。 //狀態(tài)按鈕sbit B1=P0^1。 //執(zhí)行加按鈕sbit B2=P0^2。 //執(zhí)行減按鈕sbit DQ=P3^0。 //溫度線sbit IO=P3^3。 //DS1302 IO口設(shè)置sbit SCLK=P3^2。 //時鐘線設(shè)置sbit CE=P3^1。 //復(fù)位/片選腳設(shè)置unsigned char state_button,time_jia,time_jian。 //按鈕參數(shù)void delay(unsigned int i) //延遲程序{while(i)。 //12MHz 下跳轉(zhuǎn)到延遲函數(shù)需2微妙。}/*DS18B20*/void wendu_reset(void) //DS18B20復(fù)位程序{ unsigned char r=0。DQ=1。 //致高電平,為下面復(fù)位時總線下拉準(zhǔn)備delay(8)。 DQ=0。 //總線下拉,開始復(fù)位delay(90)。 //復(fù)位延遲,不得小于480微秒DQ=1。 //總線拉高,復(fù)位過程結(jié)束delay(14)。 //延遲一段時間,等待回應(yīng)r=DQ。 //若回應(yīng)為低電平,則復(fù)位成功,為高電平則失敗delay(20)。 //延遲一段時間結(jié)束//return(r)。 可以根據(jù)需要返回復(fù)位結(jié)果}void wendu_write(unsigned char date) //寫字節(jié)程序{ unsigned char i=0。 for(i=8。i0。i) { DQ=0。 //總線拉低DQ=dateamp。0x01。 //發(fā)送最低位字節(jié)到DS18B20delay(7)。 //延遲30微秒左右,等DS18B20采樣DQ=1。 //將總線拉高date=1。 //寫入數(shù)據(jù)右移一位 }}signed int wendu_read(void) //讀溫度字節(jié)程序{ unsigned char i=0,t=0,pn=0。 //t為暫存變量 for(i=8。i0。i) { DQ=0。 //總線為低電平準(zhǔn)備讀操作,然后在1微秒內(nèi)釋放總線,以便讓DS18B20將數(shù)據(jù)反饋 t=1。 //將變量右移一位,剛好可以抵消讀所需的延遲時間DQ=1。 //總線拉為高電平后,執(zhí)行下面代碼if(DQ==1) //如果總線反饋為高電平{t|=0x80。 //則將變量最高位置1} //如果反饋為0,則變量最高位為0 delay(4)。 //延遲一頓時間,然后開始下次循環(huán) } return(t)。 //反饋讀取的字節(jié)}/*DS1302*/void time_write(unsigned char time_wd) //寫溫度函數(shù){unsigned char i,j。 //設(shè)置循環(huán)變量for(i=0。i8。i++) //連續(xù)寫8bit{j=time_wdamp。0x01。 //取寫入數(shù)據(jù)最低位IO=0。 //先設(shè)置數(shù)據(jù)為0SCLK=0。 //拉低時鐘信號if(j==1) //判斷待發(fā)送的數(shù)據(jù)位是0或1{ IO=1。 //待發(fā)送數(shù)據(jù)位是1就發(fā)送1}time_wd=time_wd1。 //待發(fā)送的數(shù)據(jù)右移1位SCLK=1。 //拉高時鐘信號}SCLK=0。 //寫完一個字節(jié),拉低時鐘信號}unsigned char time_read() //讀時間函數(shù){unsigned char time_rd。 //設(shè)置返回變量unsigned char i。 //設(shè)置循環(huán)變量IO=1。 //設(shè)置數(shù)據(jù)口方向為輸入for(i=0。i8。i++) //連續(xù)讀取8bit{SCLK=0。 //拉低時鐘信號time_rd=time_rd1。 //接收寄存器右移1位if(IO==1) //判斷信號是1還是0{ time_rd=time_rd|0x80。 //把接收到的數(shù)據(jù)放到接收寄存器的最高位}SCLK=1。 //拉高時鐘信號}SCLK=0。 //拉低時鐘信號return(time_rd)。 //返回讀取到的數(shù)據(jù)}unsigned char get_time(unsigned char ord) //讀取時間函數(shù){unsigned char dd=0。 //設(shè)置返回變量SCLK=0。 //拉低時鐘信號(只有在時鐘信號為低時才可拉高CE)CE=0。 //拉低CE(只有在CE為高電平時才可對DS1302進(jìn)行操作)CE=1。 //啟動寫數(shù)據(jù)操作time_write(ord)。 //寫入命令dd=time_read()。 //讀取時間CE=0。 //拉低CEreturn(dd)。 //返回讀取到的時間}void set_time(unsigned char ord,unsigned char dd) //寫時間函數(shù){SCLK=0。 //和讀時間函數(shù)相同CE=0。CE=1。time_write(ord)。 //寫入命令time_write(dd)。 //寫入時間數(shù)據(jù)CE=0。}void start(void) //初始化函數(shù){ unsigned char i。set_time(0x8e,0x00)。 //取消寫保護(hù)set_time(0x80,0x00)。 //啟動時鐘set_time(0x84,0x00)。 //設(shè)置24小時模式set_time(0x90,0xa5)。 //時鐘時鐘充電模式set_time(0x8e,0x80)。 //啟動寫保護(hù)RES1=0。 RES1=1。 dis_write_cmd(0xaf)。 //啟動12864 clean()。 //清屏 jianjie()。 //關(guān)鍵函數(shù),不可刪除 for(i=1。i20。i++) { delay(10000)。 } clean()。 tuxiang()。 //寫入初始圖像 }/*溫度*/ wendu_reset()。 //溫度復(fù)位 wendu_write(0xcc)。 //跳過ROM搜索命令wendu_write(0x44)。 //啟動一次轉(zhuǎn)換wendu_reset()。 //復(fù)位wendu_write(0xcc)。 //跳過ROM搜索命令wendu_write(0xbe)。 //發(fā)送讀命令a=wendu_read()。 //讀高字節(jié)8位b=wendu_read()。 //讀低字節(jié)8位 pn=bamp。0x80。 //判斷溫度正負(fù)if(pn==0) //如果溫度為正{t=((b*256)+a)/16。 //直接轉(zhuǎn)化為十進(jìn)制數(shù)}if(pn==0x80) //如果溫度為負(fù){a=~a。 //將數(shù)據(jù)取反b=~b。c=a+1。 //低位加1if(c==0x00) //當(dāng)?shù)臀粸?55時,加1后為0,這時需進(jìn)位{ b++。 //向高位進(jìn)1}t=((b*256)+c)/16。 //再進(jìn)行轉(zhuǎn)換十進(jìn)制}wendu_display(t,pn)。 //將溫度寫入到12864中
點擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1