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

正文內(nèi)容

電子秒表時(shí)鐘設(shè)計(jì)課程設(shè)計(jì)-在線瀏覽

2024-08-03 00:16本頁(yè)面
  

【正文】 AT89C51 單片機(jī) 圖 41 AT89C51引腳圖 AT89C51 單片機(jī)簡(jiǎn)介: AT89S51 是一個(gè)低功耗,高性能 CMOS 8 位單片機(jī),片內(nèi)含 4k Bytes ISP(Insystem programmable)的可反復(fù)擦寫 1000 次的 Flash只讀程序存儲(chǔ)器,器件采用 ATMEL 公司的高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn) MCS51 指令系統(tǒng)及 80C51 引腳結(jié)構(gòu),芯片內(nèi)集成了通用 8 位中央處理器和 ISP Flash 存儲(chǔ)單元,功能強(qiáng)大的微型計(jì)算機(jī) 13 的 AT89S51 可為許多嵌入式控制應(yīng) 用系統(tǒng)提供高性價(jià)比的解決方案。 此外, AT89S51 設(shè)計(jì)和配置了振蕩頻率可為 0Hz 并可通過(guò)軟件設(shè)置省電模式。 主要功能特性 為 : 兼容 MCS51指令系統(tǒng) ; 4k 可反復(fù)擦寫 (1000 次) ISP Flash ROM; 32 個(gè)雙向 I/O 口 ; 工作電壓 ; 2 個(gè) 16 位可編程定時(shí) /計(jì)數(shù)器 ; 時(shí)鐘頻率 033MHz; 全雙工 UART 串行中斷口線 ; 128x8bit 內(nèi)部 RAM; 2 個(gè)外部中斷源 ; 低功耗空閑和省電模式 ; 中斷喚醒省電模式 ; 看門狗( WDT)電路 ; 靈活的 ISP 字節(jié)和分頁(yè)編程 ; 雙數(shù)據(jù)寄存器指針 。 (1) 51單片機(jī) 的優(yōu) 點(diǎn) 14 如果是作低成本的智能產(chǎn)品, 51 構(gòu)架單片機(jī)的成本優(yōu)勢(shì),還是無(wú)人能敵的。一片簡(jiǎn)單的 74 系列通用數(shù)字邏輯芯片還要 1 元左右,而一片 51 單片機(jī)內(nèi)部集成有成千上萬(wàn)個(gè)晶體管開(kāi)關(guān)電路。使用 51 單片機(jī)能夠有效的控制智能產(chǎn)品整機(jī)的成本, 51 系列還是有著無(wú)法替代的重要地位。 AT89S51 的 最高工作頻率為 33MHz, 89C51 的極限工作頻率是24M,就是說(shuō) S51 具有更高工作頻率,從而具有了更快的計(jì)算速度。 AT89S51 內(nèi)部集成看門狗計(jì)時(shí)器,不再需要像 89C51 那樣外接看門狗計(jì)時(shí)器單元電路。 AT89S51 具有 電源關(guān)閉標(biāo)識(shí)。 在 兼容性方面 , AT89S51 向下完全兼容 51 全部字系列產(chǎn)品。也就是 說(shuō) 不論教科 書上采用的單片機(jī)是 8051 15 還是 89C51 還是 MCS51 等等 。 AT89S51 與 AT89C51 就如同 INTEL 的 P3 向 P4 升級(jí)一樣,雖然都可以跑 Windows98,不過(guò)速度是不同的 。所以 AT89S51 芯片成為了本系統(tǒng)的首選。AT89S51 的引腳如圖 31 所示。 (1) 工作電源 電源是單片機(jī)工作的動(dòng)力源泉,對(duì)應(yīng)的接線方法為 。 (2) 時(shí)鐘電路 時(shí)鐘電路為單片機(jī)產(chǎn)生時(shí)序脈沖,單片機(jī)所有運(yùn)算與控制過(guò)程都是在統(tǒng)一的時(shí)序脈沖的驅(qū)動(dòng)下進(jìn)行的,時(shí)鐘電路就好比人的心臟一樣重要。 (3) 復(fù)位電路 在復(fù)位引腳 (9腳 )持續(xù)出現(xiàn) 24個(gè)振蕩器脈沖周期 (即 2個(gè)機(jī)器周期 )的高電平信號(hào)將使單片機(jī)復(fù)位。復(fù)位后,單片機(jī)從 0000H 單元開(kāi)始執(zhí)行程序,并初始化一些專用寄存器為復(fù)位狀態(tài)值。因此,時(shí)鐘頻率直接影響單片機(jī)的速度,時(shí)鐘電路的質(zhì)量也直接影響單片機(jī)系統(tǒng)的穩(wěn)定性。本文用的是內(nèi)部時(shí)鐘方式。 圖 43單片機(jī)時(shí)鐘 AT89S51 單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,該高增益反向放大器的輸入端為芯片引腳 XTAL1,輸出端為引腳XTAL2。 ( 2)電源電路 電源電路包括變壓器、橋式整流器、電容和穩(wěn)壓器。 ( 3)按鍵電路 按鍵電路如圖 44 所示,按鍵的開(kāi)關(guān)狀態(tài)通過(guò)一定的電路轉(zhuǎn)換為高、低電平狀態(tài)。閉合和釋放過(guò)程都要經(jīng)過(guò)一定的過(guò)程才能達(dá)到穩(wěn)定,這一過(guò)程是處于 17 高、低電平之間的一種不穩(wěn)定狀態(tài),稱為抖動(dòng)。為了避免 CPU 多次處理按鍵的一次閉合,應(yīng)采用措施消除抖動(dòng)。 口:秒表計(jì)成績(jī) /時(shí)鐘調(diào)整加 /倒計(jì)時(shí)調(diào)整加 。 口:秒表時(shí)鐘查看 /時(shí)鐘調(diào)整確認(rèn) /倒計(jì)時(shí)確認(rèn)。復(fù)位引腳RST 通過(guò)一個(gè)斯密特觸發(fā)器與復(fù)位電路相連,斯密特觸發(fā)器用來(lái)抑制噪聲,在每個(gè)機(jī)器周期的 S5P2,斯密特觸發(fā)器的輸出電平由復(fù)位電路采樣一次,然后才能 得到內(nèi)部復(fù)位操作所需要的信號(hào)。單段數(shù)碼管段選接P3公共端接地(共陰)。 19 ( 2) LED 顯示子程序 數(shù)碼管顯示的數(shù)據(jù)存放在內(nèi)存單元 Disp_Tab []數(shù)組中 中 ,位選存放在 dispbit[]數(shù)組中 。 20 第五章 軟件設(shè)計(jì)及說(shuō)明 1 軟件設(shè) 計(jì) 本設(shè)計(jì)采用 c 語(yǔ)言進(jìn)行軟件編寫 包括主程序、 定時(shí)器 T0 中斷子程序、時(shí)鐘顯示子程序 、秒表顯示子程序、倒計(jì)時(shí)顯示子程序、時(shí)鐘調(diào)整子程序 等。當(dāng) Stop 鍵按下則顯示第一次記錄的成績(jī),并且此時(shí)按 Relook 鍵則依次調(diào)出所存儲(chǔ)的成績(jī)。 調(diào)整,在滿足 M_S=2 以及 KM_S=1 的入口條件下檢測(cè) Start按鍵進(jìn)行需要調(diào)整的時(shí)鐘、分鐘、秒鐘的選擇; Number、 Stop 鍵則實(shí)現(xiàn)時(shí)鐘、分鐘、秒鐘的加 1減 1; Relook 鍵為確認(rèn)鍵按下后跳進(jìn)時(shí)鐘運(yùn)行。 主菜單,只要 KM_S 鍵按下則直接進(jìn)入主菜單,在此處可任意選擇秒表、時(shí)鐘、時(shí)鐘調(diào)整、倒計(jì)時(shí)功能。 本設(shè)計(jì)總共使用了一個(gè)定時(shí)器 T0 以及定時(shí)器 T0 中斷資源,十分節(jié)省單片機(jī)的硬件資源,為系統(tǒng)的升級(jí)提供了良好的空間。 接好用下圖的仿真按鈕 進(jìn)行仿真 。 23 總 結(jié) 實(shí)際上字做課程設(shè)計(jì)之前我已經(jīng)接觸到了許多超越 51 單片機(jī)的其他微機(jī)如 ,stm3 AVR、 msp430 等等,軟件方面已經(jīng)編寫過(guò) SD卡驅(qū)動(dòng)、 16 位真彩 TFT 彩屏驅(qū)動(dòng)的編寫、 fatfs 文件系統(tǒng)的移植與調(diào)試以及 UCGUI 圖形函數(shù)庫(kù)的移植與使用,并且能夠熟練的使用 SPI、I2C、 UART、 RTC、 SYSTICK 等等資源 。不過(guò),當(dāng)我在做本設(shè)計(jì)的時(shí)候卻遇到了不少的麻煩,首先是節(jié)約單片機(jī)資源的問(wèn)題。經(jīng)過(guò)反復(fù)的思考以及試驗(yàn)決定采用全局變量 M_S 的值作為函數(shù)入口通過(guò)與 KM_S 這個(gè)按鍵的配合解決了主菜單優(yōu)先級(jí)的問(wèn)題。不過(guò)有失必有得,做了這么多課題我了解了 LCD1602 的使用, PCF8591 這款 ADDA芯片的使用、知道了步進(jìn)電機(jī)的操作時(shí)序、并且很好的運(yùn)用了結(jié)構(gòu)化編程的思想。編程的門檻較低如果只會(huì)單片機(jī)的話并不能發(fā)揮我們專業(yè)的特點(diǎn),因?yàn)閾?jù)我所知不管是電類還是非電專業(yè)的學(xué)生都能在很短時(shí)間內(nèi)學(xué)會(huì)單片機(jī)。 在此還要感謝給予我?guī)椭睦蠋熗瑢W(xué)! 24 參考文獻(xiàn) [1]王迎旭 .《單片機(jī)原理與應(yīng)用》 .機(jī)械工業(yè)出版社 .2021 年 7 月 [2]胡漢才 .《單片機(jī)原理及系統(tǒng)設(shè)計(jì)》 .清華大學(xué)出版社 .2021年 1月 [3]潘永雄 .《新編單片機(jī)原理與應(yīng)用》 .西安電子科技大學(xué)出版社 .2021 年 2月 [4]張迎新 .《單片微型計(jì)算機(jī)原理、應(yīng)用及接口技術(shù)》 .國(guó)防工業(yè)出版社 25 附 錄 程序原理圖 26 程序清單 include typedef unsigned char u8。 typedef unsigned int u16; sbit Start = P2^0。 //秒表計(jì)數(shù)按鍵 sbit Stop = P2^2。 //查看成績(jī)按鍵 sbit KM_S = P2^4。 //時(shí)鐘秒表切換 1 u8 YIDONG。 u32 led_m = 0。 //時(shí)鐘計(jì)數(shù)變量 u32 led_w = 0。 //計(jì)時(shí)器長(zhǎng)期變量 u8 M_S。 //倒計(jì)標(biāo)志 //u8 JISHU = 0。 u8 counter1=0,counter2=0。 u8 code Disp_Tab[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}。 //段碼控制 u8 code dispbit[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdF,0xbF,0x7F}。 //時(shí)鐘運(yùn)行函數(shù) void Time0_Init(void)。 //定時(shí)器 T0初始化函數(shù) void TI0_Init(void)。 //延時(shí)函數(shù) void shumaguan_show(u16 a)。 //秒表功能函數(shù) 27 void choose(void)。 //成績(jī)查看函數(shù) void shumaguan_show1(u32 a,u8 W)。//設(shè)置定時(shí)器 T0 TH0 = 0xD8。 TR0 = 1。 //清楚溢出標(biāo)志位 } /*****************定時(shí)器 0中斷初始化 ********************/ void TI_T0_Init(void) { ET0=1。//開(kāi)總中斷 } /****************定時(shí)器 0中斷服務(wù)函數(shù) *****************/ void Time_0(void) interrupt 1 { TH0 = 0xd8。 //定時(shí)器 T0裝進(jìn)初值 55536 = 0xd8f0 led_w++。 switch(M_S) { case 0: led_m++。 } if(led_m==600000) { led_m= 0。 } case 2: if(led_w == 24000000) { led_w=0。 case 3: if(D_S==1) { if((led_m%10000)==0) { led_m=led_m4000。 } break。 } /********************延時(shí)函數(shù) **********************/ void delay(unsigned int a) { unsigned int i=0,j=0。ia。j123。 } /**************************** 數(shù) 碼 管 顯 示*******************************/ void shumaguan_show(u32 a) { u16 d。 LED_N[0] = Disp_Tab[a/100000]。 //萬(wàn)位數(shù) LED_N[2] = Disp_Tab[a/1000%10]。 //百位數(shù) 29 LED_N[4] = Disp_Tab[a/10%10]。 //個(gè)位數(shù) for(d=0。d++) { P1 = dispbit[d]。 delay(2)。 u8 e。 LED_N[0] = Disp_Tab[a/100000]。 //萬(wàn)位數(shù) LED_N[2] = Disp_Tab[a/1000%10]。 //百位數(shù) LED_N[4] = Disp_Tab[a/10%10]。 //個(gè)位數(shù) for(d=0。d++)
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1