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

正文內(nèi)容

電子秒表時鐘設(shè)計課程設(shè)計(編輯修改稿)

2024-07-13 00:16 本頁面
 

【文章內(nèi)容簡介】 。當(dāng) Stop 鍵按下則顯示第一次記錄的成績,并且此時按 Relook 鍵則依次調(diào)出所存儲的成績。 時鐘,在滿足 M_S=1 以及 KM_S=1 的入口條件下一直 自動運(yùn)行時鐘函數(shù)無按鍵操作。 調(diào)整,在滿足 M_S=2 以及 KM_S=1 的入口條件下檢測 Start按鍵進(jìn)行需要調(diào)整的時鐘、分鐘、秒鐘的選擇; Number、 Stop 鍵則實現(xiàn)時鐘、分鐘、秒鐘的加 1減 1; Relook 鍵為確認(rèn)鍵按下后跳進(jìn)時鐘運(yùn)行。 倒計時,在滿足 M_S=3 以及 KM_S=1 的入口條件下檢測 Start鍵進(jìn)行需要設(shè)置的時鐘、分鐘、秒鐘的選擇; Number、 Stop 鍵則實現(xiàn)時鐘、分鐘、秒鐘的加 1減 1; Relook 鍵為確認(rèn)鍵按下則倒計時開 21 始。 主菜單,只要 KM_S 鍵按下則直接進(jìn)入主菜單,在此處可任意選擇秒表、時鐘、時鐘調(diào)整、倒計時功能。 定時器 T0 中斷函數(shù),定時器初值設(shè)置為 55535;每 10ms 進(jìn)行一次中斷,在中斷服務(wù)函數(shù)中掃描 M_S 的值: 0,全局變量 led_m++為秒表函數(shù)提供時間變量; 2,全局變量 led_w++以及 led_ww++為時鐘以及時鐘函數(shù)提供時間變量; 3,全局變量 led_m— 為倒計時函數(shù)提供時間變量。 本設(shè)計總共使用了一個定時器 T0 以及定時器 T0 中斷資源,十分節(jié)省單片機(jī)的硬件資源,為系統(tǒng)的升級提供了良好的空間。 5. 2 流程 圖 Y Y Y N N N N 圖 52 加 1 鍵子程序流程框圖 開始 判斷 M_S 0 秒表 : 開始,計數(shù) , 停止 , 查看 1 時鐘 :自動運(yùn)行 2 調(diào)整 :選位,加減,確定 3 倒計時 :選位,調(diào)整,確定 M_S=0, KM_S=1 M_S=1, KM_S=1 M_S=2, KM_S=1 M_S=3, KM_S=1 4 主菜單:選擇時鐘、秒表、倒計時、調(diào)整 22 第六章 調(diào)試結(jié)果與調(diào)試說明 6. 1 調(diào)試步驟 把編好的程序(見附錄)輸入新建在軟件 keil c51里的工程里,保存,運(yùn)行,顯示結(jié)果為時、分之間的分隔點的閃爍體現(xiàn)時間精度為,數(shù)碼管顯示當(dāng)前的時間值,調(diào)試: 建立一個新工程,輸入上面的源程序,最后編譯得到一個 ***.hex目標(biāo)文件,用編程器把 ***.hex寫入單片機(jī) AT89S51中, 然后再用 Protues仿真軟件進(jìn)行仿真,按圖(見附錄)接好單片機(jī)以及外部元件。 接好用下圖的仿真按鈕 進(jìn)行仿真 。 6. 2 調(diào)試結(jié)果 若先按下仿真按鈕, 數(shù)碼管 顯示器正常從 開始運(yùn)行,按下菜單鍵能夠進(jìn)行功能選擇,秒表、時鐘、時鐘調(diào)整、倒計時按設(shè)計運(yùn)行。 23 總 結(jié) 實際上字做課程設(shè)計之前我已經(jīng)接觸到了許多超越 51 單片機(jī)的其他微機(jī)如 ,stm3 AVR、 msp430 等等,軟件方面已經(jīng)編寫過 SD卡驅(qū)動、 16 位真彩 TFT 彩屏驅(qū)動的編寫、 fatfs 文件系統(tǒng)的移植與調(diào)試以及 UCGUI 圖形函數(shù)庫的移植與使用,并且能夠熟練的使用 SPI、I2C、 UART、 RTC、 SYSTICK 等等資源 。 剛開始做 51課程設(shè)計的時候略微有點輕視。不過,當(dāng)我在做本設(shè)計的時候卻遇到了不少的麻煩,首先是節(jié)約單片機(jī)資源的問題。我沒有使用外部中斷而次用普通的獨(dú)立按鍵作為主菜單,這里就存在一個優(yōu)先級設(shè)置的問題,剛開始總是不能達(dá)到預(yù)期的效果,菜單鍵并不能有效的中斷秒表、時鐘等函數(shù)的運(yùn)行。經(jīng)過反復(fù)的思考以及試驗決定采用全局變量 M_S 的值作為函數(shù)入口通過與 KM_S 這個按鍵的配合解決了主菜單優(yōu)先級的問題。經(jīng)過兩天的編寫與調(diào)試終于完成了這次設(shè)計工作,另外我?guī)缀踝鐾炅诉@次單片機(jī)課程設(shè)計的全部課題,做了航標(biāo)燈、直流電機(jī)、步進(jìn)電機(jī)、 密碼鎖、計分器、電子琴的設(shè)計花費(fèi)了不少時間,以至于我自己的設(shè)計做得不是特別的好。不過有失必有得,做了這么多課題我了解了 LCD1602 的使用, PCF8591 這款 ADDA芯片的使用、知道了步進(jìn)電機(jī)的操作時序、并且很好的運(yùn)用了結(jié)構(gòu)化編程的思想。 不過雖然做這些課題都比較順利,但是我也越來越清晰的意識到了一個問題,越是容易做的東西含金量不高。編程的門檻較低如果只會單片機(jī)的話并不能發(fā)揮我們專業(yè)的特點,因為據(jù)我所知不管是電類還是非電專業(yè)的學(xué)生都能在很短時間內(nèi)學(xué)會單片機(jī)。而真正能夠看出我們區(qū)別的還是專業(yè)理論知識的深度, 如果作為一個電類學(xué)生沒有很好的模擬數(shù)字電路基礎(chǔ)沒有良好的電路分析能力是遠(yuǎn)遠(yuǎn)不夠的,總而言之優(yōu)秀的理論基礎(chǔ)是指引我們走向成功的必要條件。 在此還要感謝給予我?guī)椭睦蠋熗瑢W(xué)! 24 參考文獻(xiàn) [1]王迎旭 .《單片機(jī)原理與應(yīng)用》 .機(jī)械工業(yè)出版社 .2021 年 7 月 [2]胡漢才 .《單片機(jī)原理及系統(tǒng)設(shè)計》 .清華大學(xué)出版社 .2021年 1月 [3]潘永雄 .《新編單片機(jī)原理與應(yīng)用》 .西安電子科技大學(xué)出版社 .2021 年 2月 [4]張迎新 .《單片微型計算機(jī)原理、應(yīng)用及接口技術(shù)》 .國防工業(yè)出版社 25 附 錄 程序原理圖 26 程序清單 include typedef unsigned char u8。 typedef unsigned long u32。 typedef unsigned int u16; sbit Start = P2^0。 //秒表開始按鍵 sbit Number = P2^1。 //秒表計數(shù)按鍵 sbit Stop = P2^2。 //秒表停止按鍵 sbit Relook = P2^3。 //查看成績按鍵 sbit KM_S = P2^4。 //菜單 sbit KM_SS = P2^5。 //時鐘秒表切換 1 u8 YIDONG。 u8 MM_S。 u32 led_m = 0。 //秒表計數(shù)變量 u16 led_s = 0。 //時鐘計數(shù)變量 u32 led_w = 0。 u32 led_ww = 0。 //計時器長期變量 u8 M_S。 //時鐘秒表切換變量 u8 D_S=0。 //倒計標(biāo)志 //u8 JISHU = 0。 u16 Counter[30]。 u8 counter1=0,counter2=0。 u8 start1。 u8 code Disp_Tab[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}。 //段碼控制 u8codeDisp_Tab1[]= {0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xc0}。 //段碼控制 u8 code dispbit[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdF,0xbF,0x7F}。 //位選控制 查表的方法控制 void Shizhong(void)。 //時鐘運(yùn)行函數(shù) void Time0_Init(void)。 // 定時器 T0 初始化函數(shù) void TI_T0_Init(void)。 //定時器 T0初始化函數(shù) void TI0_Init(void)。 //外部中斷 0初始化函數(shù) void delay(unsigned int a)。 //延時函數(shù) void shumaguan_show(u16 a)。 //數(shù)碼管顯示函數(shù) void Miaobiao(void)。 //秒表功能函數(shù) 27 void choose(void)。 //功能選擇函數(shù) void Look(void)。 //成績查看函數(shù) void shumaguan_show1(u32 a,u8 W)。 //數(shù)碼管閃爍函數(shù) /******************定時器 0初始化 *********************/ void Time0_Init(void) { TMOD = 0x01。//設(shè)置定時器 T0 TH0 = 0xD8。 TL0 = 0xef。 TR0 = 1。 TF0 = 0。 //清楚溢出標(biāo)志位 } /*****************定時器 0中斷初始化 ********************/ void TI_T0_Init(void) { ET0=1。//允許 T0中斷 EA=1。//開總中斷 } /****************定時器 0中斷服務(wù)函數(shù) *****************/ void Time_0(void) interrupt 1 { TH0 = 0xd8。 TL0 = 0xef。 //定時器 T0裝進(jìn)初值 55536 = 0xd8f0 led_w++。 led_ww++。 switch(M_S) { case 0: led_m++。 if(led_m%10000=6000) { led_m=led_m+4000。 } if(led_m==600000) { led_m= 0。 } case 1: 28 if(led_w == 24000000) { led_w=0。 } case 2: if(led_w == 24000000) { led_w=0。 } break。 case 3: if(D_S==1) { if((led_m%10000)==0) { led_m=led_m4000。 } led_m。 } break。 } TF0 = 0。 } /********************延時函數(shù) **********************/ void delay(unsigned int a) { unsigned int i=0,j=0。 for(i=0。ia。i++) for(j=0。j123。j++)。 } /**************************** 數(shù) 碼 管 顯 示*******************************/ void shumaguan_show(u32 a) { u16 d。 u8 LED_N[6]。 LED_N[0] = Disp_Tab[a/100000]。 //十萬位數(shù) LED_N[1] = Disp_Tab1[a/10000%10]。 //萬位數(shù) LED_N[2] = Disp_Tab[a/1000%10]。 //千位數(shù) LED_N[3] = Disp_Tab1[a/100%10]。 //百位數(shù) 29
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1