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

正文內(nèi)容

單片機(jī)課程設(shè)計(jì)---基于51單片機(jī)的電子鐘設(shè)計(jì)-在線瀏覽

2025-01-06 20:31本頁面
  

【正文】 析與 解決實(shí)際問題的方法與手段,提高系統(tǒng)設(shè)計(jì)、程序編碼與調(diào)試方面的實(shí)際動(dòng)手能力,做一次實(shí)際的系統(tǒng)設(shè)計(jì)訓(xùn)練,從中體會(huì)理論與實(shí)踐之間的聯(lián)系與差別。同時(shí)在設(shè)計(jì)過程中還應(yīng)該注意按鍵去抖問題,保證正確的讀入按鍵值。這樣,既能做到經(jīng)濟(jì)合理又能實(shí)現(xiàn)預(yù)期的功能。程序可分為鬧鐘的音樂程序、時(shí)間顯示程序、鬧鐘顯示程序、調(diào)時(shí)顯示、定時(shí)程序,走時(shí)程序,復(fù)位的模塊化的程序。 模塊一:時(shí)間顯示模塊:用 51單片機(jī)的 6個(gè) LED七段數(shù)碼管,依次分別顯示時(shí),分,秒,中間用小數(shù)點(diǎn)分開。進(jìn)行調(diào)整時(shí)間 模塊三:鬧鐘音樂模塊:當(dāng)按下鍵值為 11的開關(guān)后,進(jìn)入鬧鐘時(shí)間設(shè)置狀態(tài),設(shè)定相應(yīng)的時(shí)間,當(dāng)?shù)搅嗽O(shè)定的時(shí)間之后,進(jìn)入產(chǎn)生中斷,進(jìn)入鬧鐘音樂程序 模塊四 :鍵盤掃描得到按鍵值函數(shù) :4*4矩陣鍵盤,用 8255的 PA口得到行值,p1口得到列值,最后得到按下開關(guān)的鍵值,根據(jù)鍵值轉(zhuǎn) 到相應(yīng)的模塊執(zhí)行相應(yīng)的功能。 三硬件設(shè)計(jì) 用到的元器件如下: AT89C51:該單片機(jī)功能強(qiáng)大,不僅能滿足設(shè)計(jì)的需要,也可以在設(shè)計(jì)要求的基礎(chǔ)上進(jìn)行一些擴(kuò)展。同時(shí)對(duì)單片機(jī)的并行接口擴(kuò)展了一個(gè) 8255,用 ,同時(shí)用到了 89c51的兩個(gè)十六位定時(shí)計(jì)數(shù)器 T0, T1,進(jìn)行顯示時(shí)間和鬧鐘響音樂的中斷控制。我們用到了 PB,PC口進(jìn)行對(duì)數(shù)碼顯示 管的片選和段選,PA口得到按鍵的行值。 單片機(jī)的 P2口作為選通端,連接各數(shù)碼管的 8引腳輪流顯示,連接時(shí)要加 7407和上拉電阻。 四軟件設(shè)計(jì) 關(guān)于電子鐘的功能,劃分出主要功能,次要功能。而次要功能,則是修改時(shí)間,設(shè)定鬧鐘等。 微型計(jì)算機(jī)原理與應(yīng)用 8 1) 主程序設(shè)計(jì):主程序中完成對(duì) 8255芯片和定時(shí)器設(shè)置的初始化,然后進(jìn)入無限循環(huán)的查詢模塊,動(dòng)態(tài)掃描 LED 顯示模塊,使顯示走時(shí)正常。這樣整個(gè) 程序就實(shí)現(xiàn)了連續(xù)有效的運(yùn)行。如果有鍵按下就通過行列掃描判斷出所按下鍵的位置,并相應(yīng)的形成鍵值,保存在一個(gè)全局變量中等待被查詢。 3) 顯示子程序:該子程序在 LED掃描中被調(diào)用。通過參數(shù)值在相應(yīng)位輸出顯示。在修改過程中正 在修改位用光標(biāo)來顯示,按下數(shù)字后光標(biāo)自動(dòng)轉(zhuǎn)移到下一位,可以通過左右移動(dòng)光標(biāo)來實(shí)現(xiàn)正在修改位的調(diào)整。 5) 響鈴子程序:當(dāng)設(shè)定的鬧鐘時(shí)間到時(shí),轉(zhuǎn)入本程序執(zhí)行。同時(shí)通過讀取時(shí)間表控制每一頻率所響的時(shí)間,這樣就可以在揚(yáng)聲器輸出音樂了。 五調(diào)試 由于我們采用了“模塊化”的編程思路,程序的 調(diào)試變得相對(duì)簡(jiǎn)單。由于程序編寫分工完成,這個(gè)階段碰到最大的問題之一就是程序中對(duì)變量的復(fù)雜定義極大的浪費(fèi)了資源,甚至有些重名的非法定義。最后這個(gè)問題得 到了比較好的解決。很多時(shí)候程序執(zhí)行出來的結(jié)果和所設(shè)想的有很大差距,這就靠著不斷的修正邏輯錯(cuò)誤來調(diào)試。 實(shí)現(xiàn)方法如下:將鍵 12,13,14 復(fù)用,分別作為開始鍵,暫停(繼續(xù))鍵和清零鍵。由于在清零函數(shù)中,將變量 pp 置零,取消了鬧鐘模式,因此在秒表模式下不會(huì)出現(xiàn)鬧鈴響的情況。注意,在鍵盤掃描值得到以后因?yàn)橐D(zhuǎn)向不同的處理程序,在處理程序中要將鍵值先修改,避免因鍵值不變,而重復(fù)進(jìn)入子程序。 七小結(jié) 項(xiàng)目進(jìn)行中遇到了各種各樣的問題,有些問題是預(yù)想中沒有過的。程序正常編寫過程中遇到的主要問題是邏輯的錯(cuò)誤,往往很多程序的運(yùn)行并不像預(yù)想的那樣,所以往往要一遍遍重復(fù)的修改,這個(gè)工作量是相當(dāng)大的??傊?,這次的項(xiàng)目鍛煉了我的能力,真正的把學(xué)到的知識(shí)運(yùn)用到了實(shí)際當(dāng)中去,做出的東西也很讓人振奮。 unsigned char data second_bell=59,minute_bell=59,hour_bell=23。 unsigned code tab_low[10]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef}。 unsigned char tab2[6]={0x00,0x00,0x00,0x00,0x00,0x00}。 unsigned char key_value。 unsigned char data position=0。 unsigned char i。 //響鈴函數(shù)變量組 define Clk 0x070000 sbit P17 = P1^7。 //計(jì)數(shù)器高字節(jié) unsigned char data val_L。 //響鈴音樂頻率對(duì)應(yīng)時(shí)間表 unsigned char code time_list[]= { 4, 6, 2, 4, 4, 6, 2, 4, 4, 6, 2, 4, 4,12, 1, 3, 6, 2, 4, 4, 6, 2, 4, 4, 6, 2, 4, 4,12, 4, 6, 2, 4, 4, 6, 2, 4, 4, 6, 2, 4, 4,12, 4, 6, 2, 4, 4, 6, 2, 4, 4, 6, 2, 4, 4,12}。 for(i=0。i++){} } //清除函數(shù) void clear() { timer=0。 minute=0。 pp=0。 P1= 0x00。 key_down = (~cc) amp。 } //得到按鍵值函數(shù) void getkey() { unsigned char value。 for(i=0。 i++) { P1 = j。 0x0f。 0x01)) { key_value = i + 0。 } if(!(value amp。 return。 0x04)) 微型計(jì)算機(jī)原理與應(yīng)用 12 { key_value = i + 8。 } if(!(value amp。 return。 } } //鍵盤情況函數(shù) void keycondition() { keyscan()。 keyscan()。 } } } //***********************************// //顯示函數(shù)組(包括數(shù)碼管顯示函數(shù)和顯示光標(biāo)函數(shù) ) //數(shù)碼管顯示函數(shù) void display( unsigned char V ,unsigned char M) {
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1