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

正文內(nèi)容

畢業(yè)設(shè)計-基于單片機的電子時鐘設(shè)計實現(xiàn)(參考版)

2024-12-07 18:51本頁面
  

【正文】 我覺的在完成畢業(yè)設(shè)計的過程中最大的收獲就是學(xué)會了用 c 語言對單片機進行編程, c 語言編程無論從編程效率上還是從實現(xiàn)的難易程度上都遠遠勝于匯編語言,在學(xué)校學(xué)習(xí)單片機的課程中,學(xué)習(xí)的是匯編語言,現(xiàn)在看來,學(xué)習(xí)匯編語言的目的是是更好的理解單片機的內(nèi)部結(jié)構(gòu)和工作原理,因為匯編語言中的每一條指令都對應(yīng)一個具體的硬件動作,在對于要求處理數(shù)據(jù)速度非??斓膱龊?,了解單片機的內(nèi)部工作原理對編程是非常重要的,這在更高等級的嵌入式單片機編程上體現(xiàn)的很明顯。在操作液晶的過程中,因為是第一次操作液晶沒有經(jīng)驗,只能從查閱資料做起,最開始編寫的程序在液晶上顯 北京工商大學(xué)畢業(yè)論文 (設(shè)計 ) 38 示出來總是出現(xiàn)亂碼或是在不是我想要的位置出現(xiàn)數(shù)據(jù),在幾次重復(fù)修改程序以后,終于顯示正常,液晶是一種最常見的顯示工具,在需要顯示數(shù)據(jù)的場合中,會經(jīng)常用到液晶,因此掌握了對液晶的操作在以后的設(shè)計過程中會省掉很多工作。在完成一項設(shè)計的過程中,需要經(jīng)常登陸這些芯片廠家的官方網(wǎng)站查閱芯片資料,官方網(wǎng)站上的芯片資料是最權(quán)威的,而且有的芯片最好閱讀原版的英文資料,因為經(jīng)過翻譯以后有的說明與芯片實際功能有些出入,因此有一定的英文資料的閱讀能力對完成設(shè)計是很有幫助的。數(shù)字芯片相比模擬芯片而言,具有穩(wěn)定性 高的特點,除了一些對芯片處理數(shù)據(jù)速度要求極高的場合需要模擬芯片,例如用在為彈道導(dǎo)彈制導(dǎo)裝在彈頭部的 A/D 芯片,要求極高的轉(zhuǎn)換速度,數(shù)字芯片的廣泛應(yīng)用已經(jīng)成為一種趨勢,掌握對普通數(shù)字芯片的編程無疑對于單片機的學(xué)習(xí)及完成任何一項有關(guān)單片機的設(shè)計具有時間意義。正是畢業(yè)設(shè)計,促使我在完成一項設(shè)計的過程中不斷的思考,怎樣使自己的設(shè)計實現(xiàn),盡管在這一過程中不斷有新問題出現(xiàn),但沒解決一個問題,都是對自己的一個提升,最重要的是在解決問題的過程中使我對電子這門學(xué)科越來越感興趣,給予自己動力不斷的學(xué)習(xí)下去。在這一段學(xué)習(xí)的過程中,使我對電子這門學(xué)科有了新的認識。 write1(12,week)。 write1(5,yue)。 write(6,miao)。 } write(0,dian)。 } } if(yue==13) { yue=0。 } } if((yue==4)||(yue==6)||(yue==9)||(yue==11)) { if(day==31) { day=0。 } } if(yue==2) { if(day==29) 北京工商大學(xué)畢業(yè)論文 (設(shè)計 ) 36 { day=0。 } if((yue==1)||(yue==3)||(yue==5)||(yue==7)||(yue==8)||(yue==10)||(yue==12)) { if(day==32) { day=0。 } if(dian==24) { dian=0。 } if(fen==60) { fen=0。 } if(miao==60) { miao=0。 if(num1==20) { 北京工商大學(xué)畢業(yè)論文 (設(shè)計 ) 35 num1=0。 TL0=(6553650000)%256。 break。 num2=0。 } } break。 else week。 if(key3==0) 北京工商大學(xué)畢業(yè)論文 (設(shè)計 ) 34 { while(!key3)。 write1(12,week)。 week++。 if(key2==0) { delay(5)。 } } break。 else day。 else day。 else day。 if(key3==0) { while(!key3)。 write1(8,day)。 北京工商大學(xué)畢業(yè)論文 (設(shè)計 ) 32 write1(8,day)。 write1(8,day)。 day++。 if(key2==0) { delay(5)。 } } break。 else yue。 if(key3==0) 北京工商大學(xué)畢業(yè)論文 (設(shè)計 ) 31 { while(!key3)。 write1(5,yue)。 yue++。 if(key2==0) { delay(5)。 } } break。 else nian。 if(key3==0) { while(!key3)。 write1(2,nian)。 nian++。 if(key2==0) { delay(5)。 } } break。 else dian。 if(key3==0) { while(!key3)。 write(0,dian)。 dian++。 if(key2==0) { delay(5)。 } } break。 else fen。 if(key3==0) { while(!key3)。 write(3,fen)。 fen++。 if(key2==0) { delay(5)。 } } break。 else miao。 if(key3==0) { while(!key3)。 北京工商大學(xué)畢業(yè)論文 (設(shè)計 ) 27 write(6,miao)。 miao++。 } } if(num2!=0)//如果 key被按下次數(shù)大于 1,進入循環(huán) { switch (num2) { case 1://key1按下 1次,光標停在秒位置,按 key2或 key3加減時間信息 if(key2==0) { delay(5)。 write_(0x80+0x40+0x07)。 TR0=0。 北京工商大學(xué)畢業(yè)論文 (設(shè)計 ) 26 編寫按鍵調(diào)節(jié)時間程序 void keyscan() { if(key1==0) { delay(5)。//送去液晶顯示十位 write_data(0x30+ge)。 write_(0x80+0x40+add)。 shi=inf/10。//寫一個字符后地址指針自動加 1 write_(0x01)。//設(shè)置 , , 8位數(shù)據(jù)接口 write_(0x0c)。//延時 en=0。//做簡短延時使數(shù)據(jù)穩(wěn)定 en=1。 編寫寫命令函數(shù)及初始化函數(shù) void write_(uchar ) { rs=0; //選自寫命令模式 P0=。 ( 3)將數(shù)據(jù)或命令送達數(shù)據(jù)線上。寫命令包括使液晶的光標顯示 /不顯示,光標閃爍 /不閃爍,需 /不需要移屏,在液晶的什么位置顯示,寫數(shù)據(jù)是指要顯示什么內(nèi)容。 TL0=(6553650000)%256。這個序號是編譯器識別不同中斷的唯一符號,因此在寫中斷服務(wù)程序時一定要寫正確;最后面的“ unsing 工作組”是指這個中斷函數(shù)使用單片機內(nèi)存中 4組工作寄存器中的一組, c51編譯器在編譯程序時會自動分配工作組,因此最后一句可以省略不寫。中斷服務(wù)程序 C51的中斷函數(shù)格式如下 : Void 函數(shù)名() interrupt 中斷號 using 工作組 { 中斷服務(wù)程序內(nèi)容 } 北京工商大學(xué)畢業(yè)論文 (設(shè)計 ) 24 中斷函數(shù)不能返回任何值,所以最前面 void。 ET0=1,打開 T0中斷。 EA=0,關(guān)閉全部中斷。 中斷允許寄存器用來設(shè)定各個中斷源的打開和關(guān)閉, IE在特殊功能 寄存器中,字節(jié)地址為 A8H,位地址(有低位到高位)分別是 A8HAFH,該寄存器可進行位尋址,即可對該寄存器的每一位進行單獨操作,單片機復(fù)位時 IE全部被清 0。 M1M0工作方式選擇位 每個定時器 /計數(shù)器都有 4 種工作方式,它由 M1M0 設(shè)定,對應(yīng)關(guān)系如下 表 定時器 /計數(shù)器工作方式 M1 M0 工作方式 0 0 方式 0,為 13位定時器 /計時器 0 1 方式 1,為 16位定時器 /計數(shù)器 1 0 方式 2, 8位初值自動重裝的 8位定時器 /計數(shù)器 1 1 方式 3,僅適用于 T0,分成兩個 8位計數(shù)器, T1停止計數(shù) TMOD=0X01。 C/T定時器模式和計數(shù)器模式選擇位 C/T=1,為計數(shù)器模式; C/T=0。 表 TMOD各位數(shù)據(jù) D1 D2 D3 D4 D5 D6 D7 D8 GATE C/T M1 M0 GATE C/T M1 M0 北京工商大學(xué)畢業(yè)論文 (設(shè)計 ) 23 GATE門控制位 GATE=0,定時器 /計數(shù)器啟動與停止僅受 TCON 寄存器中 TRX(X=0,1)來控制。啟動定時器 0 定時器 /計數(shù)器工作方式寄存器在特殊功能寄存器中,字節(jié)地址為 89H,不能位尋址,TMOD用來確定定時器的工作方式及功能選擇。當 GATE=1,且 INTI為高電平時, TR1置 1啟動定時器 1;當GATE=0時, TR1置 1啟動定時器 1。需要注意的是,如果使用定時器的中斷,那么該位完全不用認為去操作,但是如果使用軟件查詢方式的話,當查詢到該位置 1后,就需要用軟件清 0。 TF0定時器溢出標志位。 設(shè)置定時器工作方式和啟動定時器 定時器 /計數(shù)器控制寄存器在特殊功能寄存器中,字節(jié)地址為 88H,位地址(由低位到高位)分別是 88H8FH,該寄存器可進行為尋址, TCON寄存器用來控制定時器的啟停,標志定時器溢出和中斷情況。要計算機器周期 Tcy,就需要知道系統(tǒng)時鐘頻率,也就是單片機的晶振頻率,設(shè)計所用開發(fā)板上時鐘頻率為 ,那么時鐘周期為 12.( 1/1105200) ,若 t=50ms,N=50000/=45872,THX=(65535N)/256,TLX=(65535N)%256. 用 c語 言 編 程 時 , 直 接 對 TH0,TL0 賦 值 , 定 時 50ms TH0=(6553650000)/256。因此溢出一次共需 65535us,約等于 ,如果要定時 50ms時,就需要給 TH0和 TL0裝一個初值,在這個初值基礎(chǔ)上計 50000個數(shù)后,定時器溢出,此時剛好是 50ms。定時模式,則表示定時時間已到;如果工作于計數(shù)模式,則 表示計數(shù)值已滿。如果定時器 /計數(shù)器工作于設(shè)置為定時器模式時,加 1計數(shù)器是對內(nèi)部機器周期計數(shù)(一個機器周期等于 12個振蕩周期,即計數(shù)頻率為晶振頻率的 1/12)。定時器 /定時器的實質(zhì)是加 1計數(shù)器,由高 8位和低 8位兩個寄存器組成, TMOD是定時器 /計數(shù)器的工作方式寄存器,確定工作方式和功能; TCON是控制寄存器,控制 T0,T1的啟動 和停止及設(shè)置溢出標志。 單片機計時器簡介 實現(xiàn)電子時鐘第一步 ,利用單片機內(nèi)部自帶定時器通過中斷產(chǎn)生時間信息, 51單片機內(nèi)部共有兩個 16位可編程的定時器 /計數(shù)器,即定時器 T0定時器 T1。 有嚴格的句法檢查,錯誤很少,可容易地在高級語言的水平上迅速地被排掉; 提供常用的標準函數(shù)庫,以供用戶直接使用; 提供 small、 pact、 large 等編譯模式,以適應(yīng)片上存儲器的大??; C 語言提供復(fù)雜的數(shù)據(jù)類型(數(shù)組、結(jié)構(gòu)、聯(lián)合、枚舉、指針等),極大地增強了程序處理能力和靈活性; 程序具有堅固性:數(shù)據(jù)被破壞是導(dǎo)致程序運行異常的重要因素。 無須懂得單片機的具體硬件,也能夠編出符合硬件實際的專業(yè)水平的程序; 下面結(jié)合 8051介紹單片機 C語言的優(yōu)越性: 如果談到開發(fā)速度、軟件質(zhì)量、結(jié)構(gòu)嚴謹、程序堅固等方面的話,則 C語言的完美絕非匯編語言編程所可比擬的。 4K 字節(jié)以上的程度, C 語言的優(yōu)勢更能得到發(fā)揮。過去長期困擾人們的所謂 “ 高級語言產(chǎn)生代碼太長,運行速度太慢,因此不適合單片機使用 ” 的致使缺點已被大幅度地克服。 這些都是過去以 MPU 為基礎(chǔ)的 C語言所沒有的。 片上集成外圍設(shè)備的被寄存器化(即 SFR),而并不采用慣用的 I/O地址空間; 諾依慢結(jié)構(gòu)(程序與數(shù)據(jù)存儲器空間分立),再加上片上又多了位尋址存儲空間; 如: 北京工商大學(xué)畢業(yè)論文 (設(shè)計 ) 19 圖 完成目標選項設(shè)置 使用 C 語言編程的好處 將 C 向 MCU(俗稱
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1