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

正文內(nèi)容

數(shù)字萬年歷和數(shù)字溫度計(jì)與數(shù)字音樂播放器電子系統(tǒng)專題設(shè)計(jì)報(bào)告-資料下載頁(yè)

2025-06-01 23:08本頁(yè)面
  

【正文】 理結(jié)構(gòu)檢查各流程圖是否正確,再根據(jù)流程圖來檢查程序是否也正確。 2.將所有程序組織起來,在軟件環(huán)境下運(yùn)行,檢查程序是否正確。通過對(duì)硬件和軟件系統(tǒng)的認(rèn)真檢查,反復(fù)測(cè)試,如果沒有出現(xiàn)問題即可把源程序編譯成 HEX文件裝載到單片機(jī)中,對(duì)硬件進(jìn)行仿真。 測(cè)試結(jié)果 總體運(yùn)行圖 單片機(jī)硬件調(diào)試實(shí)體圖 。 圖 系統(tǒng)總體運(yùn)行圖 總結(jié) 本 設(shè)計(jì)實(shí)現(xiàn)了使用蜂鳴器播放音樂的功能,并且 LED能夠隨節(jié)拍變換花樣閃爍。系統(tǒng)能夠隨意切換下一首,播放和暫停的功能均實(shí)現(xiàn)。 Proteus仿真和實(shí)際硬件連接效果一致。 本設(shè)計(jì)最終達(dá)到了聽覺效應(yīng)和視覺效應(yīng)相結(jié)合的效果。 電子系統(tǒng)專題設(shè)計(jì)實(shí)驗(yàn)報(bào)告 第 28 頁(yè) 共 46 頁(yè) 體會(huì) 單片機(jī)的設(shè)計(jì)至今為止已經(jīng)進(jìn)入了令人鼓舞的階段,在進(jìn)行了長(zhǎng)達(dá)兩個(gè)多月的時(shí)間的摸索與實(shí)驗(yàn),使我不僅僅是對(duì)于單片機(jī)入門軟件與硬件的常用設(shè)計(jì)與功能,還使我對(duì)于一項(xiàng)設(shè)計(jì)研究的制作過程所需要的詳細(xì)步驟和具體的實(shí)現(xiàn)方法的力度的掌握。 當(dāng)然在這次寶貴的 實(shí)驗(yàn) 設(shè)計(jì)活動(dòng)中,經(jīng)驗(yàn)才是對(duì)于我們最大的收獲,而且還 增強(qiáng)了自身對(duì)未知問題以及對(duì)知識(shí)的深化認(rèn)識(shí)的能力,用受益匪淺這個(gè)詞語(yǔ)來概括這次難忘的活動(dòng)我覺得再合適不過了。但是,光是完成了作品還是不可以自我滿足的,在從一開始的時(shí)候就懷著將作品制作得更加人性化,更加令人滿意,更加地使功能完美又方便地被應(yīng)用領(lǐng)域這個(gè)最終目的下,隨著對(duì)單片機(jī)這門學(xué)科的認(rèn)識(shí)加深,到達(dá)了拓展的程度,我想這個(gè)目的將在不遠(yuǎn)的時(shí)期內(nèi)被實(shí)現(xiàn)。 總之,這次設(shè)計(jì)從軟件編寫、調(diào)試到軟硬件聯(lián)機(jī)調(diào)試,我傾注了大量的時(shí)間和心血。真是曾經(jīng)為程序的編寫而冥思查找過,曾經(jīng)為無法找出錯(cuò)誤而郁悶苦惱過,也曾經(jīng)為某一功能不 能實(shí)現(xiàn)而猶豫彷徨過,但最終我成功了。 我不僅品味到了結(jié)果的喜悅,更明白了過程的彌足珍貴。 電子系統(tǒng)專題設(shè)計(jì)實(shí)驗(yàn)報(bào)告 第 29 頁(yè) 共 46 頁(yè) 參考文獻(xiàn) [1] 郭天祥 .51 單片機(jī) C 語(yǔ)言教程 [M], 電子工業(yè) 出版社, . [2] 譚浩強(qiáng) .C 語(yǔ)言程序設(shè)計(jì)(第二版) [M], 北京 :清華大學(xué)出版社, 1991. [3] 陳蕾 , 鄧晶,仲興榮 . 單片機(jī) 原理與接口技術(shù) [M], 北京 : 機(jī)械工業(yè)出版社 , [4] 百度文庫(kù) .彩屏技術(shù)介紹 . 電子系統(tǒng)專題設(shè)計(jì)實(shí)驗(yàn)報(bào)告 第 30 頁(yè) 共 46 頁(yè) 附錄 A 萬年歷和溫度計(jì) 程序源代碼及注釋 include include include include include include define uchar unsigned char void Ds1302xianshi()。 void tempxianshi()。 void xuliehao()。 extern uchar sn[8]。 sbit key1=P3^2。 uchar count1。 uchar code table[]={0123456789ABCDEF}。 void delay(uint xms) //延時(shí) { uint i,j。 for(i=xms。i0。i) for(j=110。j0。j)。 } void main(void) //主函數(shù) { count1=0。 EA=1。//開總中斷 EX0=1。//開外部中斷 0 IT0=1。//外部中斷 0 下降沿觸發(fā)方式 TFT_Init()。 //彩屏初始化 // Ds1302Init()。 //初始化語(yǔ)句,加上后不能掉電保存時(shí)間 Ds18b20Init()。 //DS18B20 初始化 TFT_ClearScreen(0x0000)。 //彩屏清屏 Ds1302Write(0x8E,0x00)。 while(1){ switch(count1){ case 0 :{ Ds1302xianshi()。tempxianshi()。} break。 case 1 : {TFT_ClearScreen(0x0000)。xuliehao()。} break。 default : break。 } } } void tempxianshi() //溫度顯示函數(shù) { float tp。 int temp。 電子系統(tǒng)專題設(shè)計(jì)實(shí)驗(yàn)報(bào)告 第 31 頁(yè) 共 46 頁(yè) unsigned char datas[] = {0, 0, 0, 0, 0,0},a[10]={0}。 Ds18b20Init()。 temp=Ds18b20ReadTemp()。 if(temp 0) //當(dāng)溫度值為負(fù)數(shù) { GUI_WriteASCII(64, 163, , 0xF800, 0x0000)。 //因?yàn)樽x取的溫度是實(shí)際溫度的補(bǔ)碼,所以減 1,再取反求出原碼 temp=temp1。 temp=~temp。 tp=temp。 temp=tp**100+。 //留兩個(gè)小數(shù)點(diǎn)就 *100, + 是四舍五入,因?yàn)?C 語(yǔ)言浮點(diǎn)數(shù)轉(zhuǎn)換為整型的時(shí)候把小數(shù)點(diǎn) //后面的數(shù)自動(dòng)去掉,不管是否大于 ,而 + 之后大于 的就是進(jìn) 1 了,小于 的就 //算由 ?.5,還是在小數(shù)點(diǎn)后面。 } else { GUI_WriteASCII(64, 163, +, 0xF800, 0x0000)。 tp=temp。//因?yàn)閿?shù)據(jù)處理有小數(shù)點(diǎn)所以將溫度賦給一個(gè)浮點(diǎn)型變量 //如果溫度是正的那么,那么正數(shù)的原碼就是補(bǔ)碼它本身 temp=tp**100+。 //留兩個(gè)小數(shù)點(diǎn)就 *100, + 是四舍五入,因?yàn)?C 語(yǔ)言浮點(diǎn)數(shù)轉(zhuǎn)換為整型的時(shí)候把小數(shù)點(diǎn) //后面的數(shù)自動(dòng)去掉,不管是否大于 ,而 + 之后大于 的就是進(jìn) 1 了,小于 的就 //算加上 ,還是在小數(shù)點(diǎn)后面。 } datas[0] = temp / 10000+39。039。 datas[1] = temp % 10000 / 1000+39。039。 datas[2] = temp % 1000 / 100+39。039。 datas[3] =39。.39。 datas[4] = temp % 100 / 10+39。039。 datas[5] = temp % 10+39。039。 GUI_WriteASCII(80, 163, amp。datas[0], 0xF800, 0x0000)。 //顯示溫度 GUI_WriteASCII(176, 163, , 0xF800, 0x0000)。 GUI_Write32CnChar(0, 158, 溫度 , 0xF800, 0x0000)。 GUI_Write32CnChar(196, 158, ℃ , 0xF800, 0x0000)。 GUI_WriteASCII(228, 163, amp。a[0], 0xF800, 0x0000)。 } void Ds1302xianshi() //時(shí)間顯示函數(shù) { uchar a[40]={0}。 //定義該數(shù)組用于顯示時(shí)間,排除一些顯示亂碼 Ds1302ReadTime()。 a[0]=2+39。039。 a[1]=0+39。039。 a[2]=TIME[6]/16+39。039。 電子系統(tǒng)專題設(shè)計(jì)實(shí)驗(yàn)報(bào)告 第 32 頁(yè) 共 46 頁(yè) a[3]=TIME[6]%16+39。039。 a[4]=39。39。 a[5]=TIME[4]/16+39。039。 a[6]=TIME[4]%16+39。039。 a[7]=39。39。 a[8]=TIME[3]/16+39。039。 a[9]=TIME[3]%16+39。039。 a[15]=TIME[2]/16+39。039。 a[16]=TIME[2]%16+39。039。 a[17]=39。:39。 a[18]=TIME[1]/16+39。039。 a[19]=TIME[1]%16+39。039。 a[20]=39。:39。 a[21]=TIME[0]/16+39。039。 a[22]=TIME[0]%16+39。039。 GUI_Write32CnChar(60, 24, 電子日歷 , 0xF800, 0x0000)。 GUI_Line(60, 54, 180, 54, 0xF800)。 GUI_Line(60, 54, 180, 54, 0xF800)。 GUI_WriteASCII(158, 0, Reman, 0xF800, 0x0000)。 GUI_WriteASCII(32, 65, amp。a[0], 0xF800, 0x0000)。 //顯示年月日 GUI_WriteASCII(48, 100, amp。a[15], 0xF800, 0x0000)。 //顯示時(shí)分秒 GUI_Write32CnChar(60, 128, 星期 , 0xF800, 0x0000)。 switch(TIME[5]) //判別并顯示 星期幾 { case 1: GUI_Write32CnChar(150, 128, 一 , 0xF800, 0x0000)。 break。 case 2: GUI_Write32CnChar(150, 128, 二 , 0xF800, 0x0000)。 break。 case 3: GUI_Write32CnChar(150, 128, 三 , 0xF800, 0x0000)。 break。 case 4: GUI_Write32CnChar(150, 128, 四 , 0xF800, 0x0000)。 break。 case 5: GUI_Write32CnChar(150, 128, 五 , 0xF800, 0x0000)。 break。 case 6: GUI_Write32CnChar(150, 128, 六 , 0xF800, 0x0000)。 break。 case 7: GUI_Write32CnChar(150, 128, 日 , 0xF800, 0x0000)。 break。 default:break。 } } void xuliehao() //DS18B20 序列號(hào)顯示函數(shù) { int l,h,num,i=0。 rom()。 delay(100)。 //如果是不斷地讀取的話可以不延時(shí) for(num=0。num8。num++) //因?yàn)槭?8 個(gè)字節(jié),所以要循環(huán) 8 次,每次顯示一個(gè)字節(jié) { l=(sn[num]amp。0xf0)4。//獲取低四位 h=sn[num]amp。0x0f。//獲取高四位 電子系統(tǒng)專題設(shè)計(jì)實(shí)驗(yàn)報(bào)告 第 33 頁(yè) 共 46 頁(yè) GUI_WriteASCII(i, 138, amp。table[l], 0xF800, 0x0000)。 GUI_WriteASCII(i+14, 138, amp。table[h], 0xF800, 0x0000)。 i+=14。 } } void int0() interrupt 0 { EA=0。//關(guān)總中斷 delay(5)。//去抖 if(key1==0) { count1++。 if(count1==2) count1=1。 } EA=1。//開總中斷 } DS1302 相關(guān)代碼: include //DS1302 寫入和讀取時(shí)分秒的地址命令 // //秒分時(shí)日月周年 最低位讀寫位 。// uchar code READ_RTC_ADDR[7] = {0x81, 0x83, 0x85, 0x87, 0x89, 0x8b, 0x8d}。 uchar code WRITE_RTC_ADDR[7] = {0x80, 0x82, 0x84, 0x86, 0x88, 0x8a, 0x8c}。 //DS1302 時(shí)鐘初始化 2021 年 1 月 1 日星期二 12 點(diǎn) 00 分 00 秒。 // //存儲(chǔ)順序是秒分時(shí)日月周年 ,存儲(chǔ)格式是用 BCD 碼 // uchar TIME[7] = {0, 0x09, 0x12, 0x21, 0x10, 0x02, 0x14}。 void Ds1302Write(uchar addr, uchar dat) { uchar n。 RST = 0。 _nop_()。 SCLK = 0。//先將 SCLK 置低電平。 _nop_()。 RST = 1。 //然后將 RST(CE)置高電平。 _nop_()。 for (n=0。 n8。 n++)//開始傳送八位地址命令 { DSIO = addr amp。 0x01。//數(shù)據(jù)從低位開始傳送 a
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1