人的記憶力會隨著歲月的流逝而衰退,寫作可以彌補記憶的不足,將曾經的人生經歷和感悟記錄下來,也便于保存一份美好的回憶。那么我們該如何寫一篇較為完美的范文呢?接下來小編就給大家介紹一下優(yōu)秀的范文該怎么寫,我們一起來看一看吧。
單片機課程設計選題簡單 單片機課程設計選題及程序篇一
基于at89s51單片機的密碼鎖設計,具體功能如下:(1)總共可以設置8位密碼,每位密碼值范圍為1~8。(2)用戶可自行設定和修改密碼。(3)按每個密碼時都有聲音提示。
(4)若鍵入的8位開鎖密碼不完全正確,則報警5s已提醒他人注意。
(5)開鎖密碼連續(xù)錯3次要報警1分鐘,報警期間輸入密碼無效,以防竊賊多次試探密碼。
(6)鍵入的8位開鎖密碼完全正確才能開鎖,開鎖時要有1s的提示音。(7)電磁鎖的電磁線圈每次充電5s,然后恢復初態(tài)。
(8)密碼鍵盤上只允許有8個密碼按鍵。鎖內有備用電池,只有內部上電復位才能設置或修改密碼,因此,僅僅在門外按鍵是不能修改或設置密碼的。(9)密碼設置完畢后要有2s的提示音。硬件設計
2.1 設計思路
按照系統(tǒng)設計的要求和功能,將系統(tǒng)分為主控模塊;按鍵掃描模塊;蜂鳴器;電源電路;復位電路晶振電路;驅動電路幾個模塊,系統(tǒng)組成框圖如圖1-1所示。主控模塊采用at89s51單片機。
電源電路復位電路主控模塊晶振電路at89s51按鍵掃描模塊驅動器蜂鳴器 圖1-1 基于at89s51單片機的密碼鎖組成框圖 鎮(zhèn)江高等??茖W校課程設計2.2 硬件圖及說明(硬件圖見圖1-2,)
元件型號單片機晶振電容型號數(shù)量/個用途元件型號蜂鳴器電阻型號數(shù)量/個用途at89s52 1 控制核心12mhz 1 晶振電路30pf 2 晶振電路1 報警電路1kω10kω4.7kω1 上拉電路1 復位電路1 放大電路電阻電阻繼電器電源電解電容20uf/10v 1 復位電路按鍵三極管二極管9 按鍵電路8550 2 放大電路in4004 1 5v 1 控制對象+5v/0.5a 1 提供+5v電源 圖1-3 基于at89s51單片機的密碼鎖元件清單
注:89s51是一個低功耗,高性能cmos 8位單片機,片內含4k bytes isp(in-system programmable)的可反復擦寫1000次的flash只讀程序存儲器,器件采用atmel公司的高密度、非易失性存儲技術制造,兼容標準mcs-51指令系統(tǒng)及80c51引腳結構,芯片內集成了通用8位中央處理器和isp flash存儲單元,功能強大的微型計算機的at89s51可為許多嵌入式控制應用系統(tǒng)提供高性價比的解決方案。
2.蜂鳴器的工作原理: 軟件設計
2.1 設計思路 鎮(zhèn)江高等??茖W校課程設計應位置的,分析程序時可以仔細對照參考。該密碼鎖中ram存儲單元的分配方案如下所示
如圖1-3所示給出了該單片機密碼鎖電路的軟件軟件流程圖。圖中aa1~aa8以及start,set,save是程序中的標號,是為了理解程序而專門標在流程圖的對? 31h~38h;依次存放8位設定的密碼,首位密碼存放在31h單元中。? r0:只指向密碼地址 ? r2;已經輸入密碼的位數(shù)
? r3:存放允許的錯碼次數(shù)3與實際錯碼次數(shù)的差值。? r4~ r7:延時用。? 00h:錯碼標志位。
對于rom存儲單元的分配,由于程序比較短,而且占用的存儲空間的較少,因此,在無特殊要求時,可以從0030h單元(其他地址也可以)開始存放主程序。3.2 程序流程圖
開始初始化1s提示音等待設置密碼nn有鍵按下?y短音提示保存設置密碼n是否夠8位?y長音提示錯誤次數(shù)清零錯誤標識清零n有鍵按下?y短音提示密碼對否?y是否夠8位?y標志=1?n開鎖并長音提示延時鎖恢復錯誤清零錯3次?y報警1 min錯誤次數(shù)清零報警5s錯誤標志清零y錯誤次數(shù)加1nn錯誤標志置1 圖1-4 基于at89s51單片機的密碼鎖程序流程圖
3.3 程序清單(注釋)
loc obj line source
0000 1 org 0000h 0000 0130 2 ajmp start 0030 3 org 0030h 鎮(zhèn)江高等??茖W校課程設計0030 11a1 4 start:acall bp 0032 7831 5 mov r0,#31h 0034 7a08 6 mov r2,#8 0036 7590ff 7 set1:mov p1,#0ffh 0039 e590 8 mov a,p1 003b b4ff02 9 cjne a,#0ffh,l8 003e 0136 10 ajmp set1
0040 11b0 11 l8: acall delay 0042 b4ff02 12 cjne a,#0ffh,save 0045 0136 13 ajmp set1 0047 11a1 14 save: acall bp 0049 f6 15 mov @r0,a 004a 08 16 inc r0 004b dae9 17 djnz r2,set1 004d 7d10 18 mov r5,#16 004f 11a1 19 d2s: acall bp 0051 ddfc 20 djnz r5,d2s 0053 7831 21 mov r0,#31h 0055 7b03 22 mov r3,#3 0057 7a08 23 aa1: mov r2,#8 0059 7590ff 24 aa2: mov p1,#0ffh 005c e590 25 mov a,p1 005e b4ff02 26 cjne a,#0ffh, l9 0061 0159 27 ajmp aa2 0063 11b0 28 l9:acall delay 0065 b4ff02 29 cjne a,#0ffh,aa3 0068 0159 30 ajmp aa2 006a 11a1 31 aa3: acall bp 006c c3 32 clr c 006d 96 33 subb a, @r0 006e 08 34 inc r0 006f b40002 35 cjne a,#00h,aa4 0072 0176 36 ajmp aa5 0074 d200 37 aa4: setb 00h 鎮(zhèn)江高等??茖W校課程設計0076 dae1 38 aa5: djnz r2,aa2 0078 20000e 39 jb 00h,aa6 007b c2b5 40 clr p3.5 007d 7d08 41 l3:mov r5,#8 007f 11a1 42 acall bp 0081 dcfa 43 djnz r4,l3 0083 7b03 44 mov r3,#3
0085 d2b5 45 setb p3.5 0087 0157 46 ajmp aa1 0089 db0c 47 aa6: djnz r3,aa7 008b 7d18 48 mov r5,#24 008d 7cc8 49 l5: mov r4,#200 008f 11a1 50 l4: acall bp 0091 dcfc 51 djnz r4,l4 0093 ddf8 52 djnz r5,l5 0095 7b03 53 mov r3,#3 0097 7d28 54 aa7: mov r5,#40 0099 11a1 55 acall bp 009b ddfa 56 djnz r5,aa7 009d c200 57 aa8: clr 00h 009f 0157 58 ajmp aa1 00a1 c2b7 59 bp: clr p3.7 00a3 7ffa 60 mov r7,#250 00a5 7e7c 61 l2: mov r6,#124 00a7 defe 62 l1: djnz r6,l1 00a9 b2b7 63 cpl p3.7 00ab dff8 64 djnz r7,l2 00ad d2b7 65 setb p3.7 00af 22 66 ret 00b0 7f14 67 delay:mov r7,#20 00b2 7e7d 68 l7: mov r6,#125 00b4 defe 69 l6: djnz r6,l6 00b6 dffa 70 djnz r7,l7 00b8 22 71 ret 鎮(zhèn)江高等專科學校課程設計 72 end 3.4 程序調試
按鍵an1~an7分別代表數(shù)碼1~7,按鍵an0代表8。在沒有鍵按下時,p1.0~p1.7全是高電平1;若某個鍵被按下,相應的口就變?yōu)榈碗娖?.加入設定的密碼是612345678,當按鍵an6被按下時,p1.6變?yōu)榈碗娖?,p1端口其余口線為高電平,此時從p1口輸入的數(shù)值為10111111,存到31h單元的密碼值就是10111111,也就是bfh。以此類推,存到32h至38h單元的密碼值分別是fdh,fbh,f7h,efh,dfh,7fh,feh。開鎖時必須先按an6,使從p1口讀入的第一個密碼值與31h單元存儲的設定值相同,再按順序按an1,an2,an3,an4,an5,an7,an0才能開鎖。否則不能開鎖,同時開始報警。小結
通過此次課程設計,使我更加扎實的掌握了有關單片機方面的知識,在設計過程中雖然遇到了一些問題,但經過一次又一次的思考,一遍又一遍的檢查終于找出了原因所在,也暴露出了前期我在這方面的知識欠缺和經驗不足。實踐出真知,通過親自動手制作,使我們掌握的知識不再是紙上談兵。
實驗過程中,也對團隊精神的進行了考察,讓我們在合作起來更加默契,在成功后一起體會喜悅的心情。果然是團結就是力量,只有互相之間默契融洽的配合才能換來最終完美的結果。
此次設計也讓我明白了思路即出路,有什么不懂不明白的地方要及時請教或上網查詢,只要認真鉆研,動腦思考,動手實踐,就沒有弄不懂的知識,收獲頗豐
參考文獻:(另起一頁)
【1】楊居義。單片機課程設計指導。北京:北京大學出版社,2009。
【2】王效華,張詠梅。單片機原理與應用。北京:北京交通大學出版社,2007?!?】楊光義,馬寧,靳光明等。單片機原理與工程應用。北京:清華大學出版社,2009。
單片機課程設計選題簡單 單片機課程設計選題及程序篇二
單片機原理與接口技術課程設計題目
以下題目任選其一,1-2人一組,自由組合,組內各人必須有明確的分工,原則上同一組最多一個同學得優(yōu)。
可使用任何單片機或arm,1-4要求自己設計全部硬件和焊接電路板,5-10題可用現(xiàn)成的單片機開發(fā)板,5-6題亦可用proteus仿真。自擬題的根據(jù)題目難度由指導老師決定能否用現(xiàn)成的單片機開發(fā)板。
一、pc機看門狗(每班最多6人選此題,難度系數(shù):低)
功能:當pc機死機時能自動使其重新啟動。
硬件:可使用串口或usb與pc機通訊。
軟件:pc機上軟件編程可選用任何一種面向對象開發(fā)軟件,如vc,delphi等。
實現(xiàn)原理:pc機正常時,每隔一段時間通過串口向單片機發(fā)送一些固定的數(shù)據(jù),單片機如果收到此數(shù)據(jù),說明pc機正常,如果超時未收到,則控制pc機重新啟動。
二、電子琴設計(每班最多6人選此題,難度系數(shù):中)
按下1-7,實驗箱上的蜂鳴器發(fā)出對應的音調(中音),當同時按下l和1-7時是,蜂鳴器發(fā)出低音,同時按下h和1-7時,蜂鳴器發(fā)高音。只要按鍵沒松開,蜂鳴器一直發(fā)聲,直到
擴展功能:在彩屏lcd上顯示電子屏琴圖片,用觸摸屏控制發(fā)音,就像真正彈電子琴一樣。
三、自行車測速儀(難度系數(shù):中偏高)
基本功能:能實時顯示自行車的行駛速度
附加功能:實時時鐘,行駛里程累計
要求具備一定的實用價值,即要考慮如下問題(也是答辯時的考察和評分指標):
1、體積要做到盡量小
2、為了省電,要使用低電壓工作的單片機,比如使用2.0-3.3v工作電壓的單片機
3、供電采用可充電的聚合物鋰電池(普通手機電池),一次充電后的使用時間最少1
2小時
4、最好能直接用單車輪子的旋轉為電池充電(選做)。
四、計算器設計
5、使用4×4行列式鍵盤和1602液晶(其他液晶亦可)或數(shù)碼管,實現(xiàn)普通十進制計
算器的功能,鍵盤符號定義如下:
6、“c”表示退格,即刪除鍵,按一次刪除鍵刪掉顯示的最后一個數(shù)字。
7、如果是用lcd,lcd的第一行顯示運算式,第二行顯示運算結果。比如要計算機
12+34,在鍵盤上按下相應鍵后,lcd的第一行顯示“12+34”,按下“=”號后,lcd的第二行顯示“=46”。
8、如果用數(shù)碼管,至少用6位的數(shù)碼管,按“=”前顯示輸入的數(shù)字和運算符,按“=”
后顯示運算結果。
9、其他功能參考普通計算器。
10、基本功能:四則運算、退格功能,按“=”號后再按數(shù)字時自動清除之前的輸入和
計算結果,重新開始下一次新的計算過程。
11、擴展功能:負數(shù)、小數(shù)運算。復合運算。連續(xù)運算。2進制、8進制運算。觸摸功
能:直接在lcd上顯示一個計算器,用觸摸屏操作。
12、必須考慮不正常輸入的情況,答辯時會測試是否能處理各種不正常輸入。
五、pc機控制的計算器設計(每班最多6人選此題,難度:中偏高)計算器要實現(xiàn)的功能同第四題。與第四題不同的是:
1、計算器的輸入不使用單片機板上的鍵盤,而是用pc機的鍵盤輸入,pc機將銨鍵通過串口發(fā)給單片機,并在單片機的lcd上顯示。
2、在lcd上開光標顯示并閃爍,可將光標退回去修改輸入的計算式,通過pc機的左右箭頭鍵將光標移到要修改的位置,再按下數(shù)字或操作符號可替換光標所在位置的字符。
3、按退格鍵刪除光標前面一個位置的字符,按del鍵刪除光標所在位置的字符。
3、任何時候按“=”鍵開始計算結果,按了“=”之后還可以將光標退回到計算式上修改計算式。再按“=”則重新計算新的結果。
此題可用現(xiàn)成的單片機開發(fā)板,亦可用proteus仿真。
六、單片機用普通io口實現(xiàn)串口通信(每班最多6人選此題,難度系數(shù):中)
在理解單片機異步串口通信的基礎上,不使用單片機的串口模塊,用普通的io口實現(xiàn)與pc機的串口通信的功能,要求實現(xiàn)的基本參數(shù):波特率1200、數(shù)據(jù)位8位、無奇偶校驗、停止位1位。
其他功能:有關參數(shù)能方便地修改。
此題主要鍛煉編程能力,所以可以用proteus仿真或現(xiàn)成的單片機開發(fā)板做。
七、基于三軸加速度傳感器的新型鼠標(難度系數(shù):高)
利用三軸加速度傳感器實現(xiàn)鼠標的四個方向的移動光標的功能。有兩種方案可以選擇:一種是設計一種usb接口連接電腦,只要按usb鼠標的協(xié)議收發(fā)數(shù)據(jù),則pc機上不需另外做驅動;第二種方案是用串口連接電腦,但pc機上需要設計驅動程序,可以采用api函數(shù)的控制鼠標移動,可參考下面網址或百度搜索相關資料。
注:此題可用現(xiàn)成的單片機開發(fā)板,另加上自己的三軸加速度傳感器來做,即傳感器模塊的硬件需要自己設計,單片機部分可用現(xiàn)成的開發(fā)板。
八、智能學習型紅外遙控器(難度系數(shù):中偏高)
可學習其他遙控器的按鍵功能,替換原遙控器各按鍵的遙控功能。
功能參考淘寶上產品:
注:此題可用現(xiàn)成的單片機開發(fā)板,如果開發(fā)板上沒有紅外的收和發(fā)模塊,則需另加上紅外的收發(fā)模塊。
對物聯(lián)網感興趣的同學,可做這個題目,以后再加上zigbee模塊就成為物聯(lián)網家居里面的一個應用。
九、zigbee無線臺燈設計
利用cc2530單片機無線收發(fā)數(shù)據(jù),實現(xiàn)對臺燈的控制。
cc2530單片機模塊由webee提供,單片機板上有1個按鍵,按1次開臺燈,快速按2次則關臺燈??刂婆_燈需要另加繼電器,這些控制電路需要自己設計。
對物聯(lián)網家居感興趣的同學,可做這個題目。cc2530就是一個增強型的51單片機,學習起來并不復雜。
十、電梯模型(難度系數(shù):高)
設計一個五層樓的電梯模型,每層樓的電梯口2個指示燈(指明電梯運行方向是上或下),2個按鍵(上、下);電梯廂內7個燈及7個按鍵(1-5目標樓層選擇各一個,開關門各一個)。可用現(xiàn)成的單片機開發(fā)板,其他模塊自做。
十一、自擬題
鼓勵大家自擬題目,但需指導老師的同意。歡迎大家選擇智能家居和物聯(lián)網有關的題目。
選題必須在課程設計開始的第二天中午前確定好,班長統(tǒng)計好各人的題目后,將匯總表發(fā)到郵箱:23647837@
格式:
答疑方式及時間:qq答疑(全天候)、現(xiàn)場答疑(先預約)
答辯時間:初定第10周四下午和周五全天,答辯時必須帶上打印好的課程設計報告。題目難度大的可以推遲答辯,具體時間再商定。
答疑及答辯地點:工一407
注意事項:每個組答辯完后硬件暫時保留在實驗室,待全部同學答辯完后再發(fā)還給大家,所以要求在自己的硬件上貼上標簽,標簽上寫明組內各成員的班級、學號和姓名,注意標簽貼牢一些,不要輕易就掉了。
課程設計報告:詳細記錄課程設計過程中碰到的難點和問題、問題的解決過程及解決方法,心得體會。上交的打印稿不需附程序源碼,但需有程序框圖及軟件的操作說明。報告要有操作界面的截圖,特別是自已做的硬件,要有整體的照片。
班長收集全班同學的程序源碼及課程設計報告電子文檔壓縮打包上交。
答辯注意事項:除了書本上已有的例子,絕不允許抄襲其他同學的程序,先做好的同學先答辯,答辯時如果發(fā)現(xiàn)某段程序與已答辯的同學雷同,則答辯不能通過。
允許參考,但不允許抄襲,參考是指先看懂別人的程序,然后自己編程,而不是照抄(復制)別人的某段程序,也不是在別人的程序基礎做修改,所有的代碼一定要自己寫。
單片機課程設計選題簡單 單片機課程設計選題及程序篇三
選題一 簡易電子琴
基本功能:設計電子琴按鍵,使得按不同的按鍵能夠發(fā)出1,2,3,4,5,6,7等音符 選題二 電子音樂盒
基本功能:設置0-7號按鍵控制播放不同的音樂
選題三 8×8點陣式led顯示系統(tǒng)
基本功能:能夠顯示點陣漢字
選題四 電子計算器
基本功能:能夠進行加減乘除運算,并顯示運算結果
選題五 數(shù)字溫度計
基本功能:能夠實時顯示環(huán)境溫度
選題六 lcd液晶顯示系統(tǒng)
基本功能:能夠顯示英文字符
選題七 電子秒表
基本功能:能夠實現(xiàn)秒表計時,并顯示計時值,能夠清零,重新計時
選題八 電子萬年歷
基本功能:能夠輸入初始年月日,并能夠顯示當前日期
選題九 智能交通燈
基本功能:模擬十字交通路口的紅綠黃三種燈的閃亮情況,控制交通
選題十 電子密碼鎖
基本功能:能夠預設3位初始密碼,當輸入密碼與預設密碼一致時自動開鎖,否則報警 選題十一 搖搖棒
基本功能:當搖搖棒搖動時,能夠顯示不同變換效果圖
提示:可以選用振動開關
選題十二 多功能數(shù)字電子鐘
基本功能:能夠預置初始時間,并能夠實時顯示當前時間
每組選題人數(shù)不超過5人。
論文寫作分以下幾個部分
一、選題的意義
二、主要功能
三、設計方案
四、硬件電路
五、軟件設計
六、總結
自制封面:包含課程設計題目、學號、姓名、班級等內容
單片機課程設計選題簡單 單片機課程設計選題及程序篇四
《單片機技術》課程設計說明書
音樂盒
院、部:電氣與信息工程學院 學生姓名:劉亮 指導教師:凌云職稱講師 專業(yè):電子信息工程 班級:電子1302班 學
號:1330340220 完成時間: 2016年1月11日
摘要
音樂盒起始于中世紀歐洲,當時為使教會的鐘塔報時,而將大小的鐘表上裝置機械設備,被稱為可發(fā)出聲音的組鐘。
本次的課題主要分為數(shù)碼管顯示模塊、供電模塊、按鍵模塊、發(fā)聲模塊、復位電路和at89s52單片機。數(shù)碼管顯示模塊采用共陽極數(shù)碼管,通過p0口控制,實現(xiàn)歌曲序號的顯示;供電模塊采用+5v供電;按鍵通過p3口控制,實現(xiàn)歌曲播放順序的調換和暫停播放功能;揚聲器由p3.1口控制,實現(xiàn)歌曲播放。
主要的工作過程是通過按鍵控制下一首和上一首播放以及暫停和播放,同時有數(shù)碼管顯示當前正在播放的歌曲序號,揚聲器播放出音樂。
此次設計主要用到proteus、keil編程和ad作圖軟件。用proteus畫出原理圖,用keil編寫程序,將程序導入原理圖中進行仿真。最后用ad畫出pcb圖,打印圖紙進行腐蝕焊接。將程序下載到單片機中,利用i/o口產生方波,驅動揚聲器,發(fā)出音調,從而演奏樂曲。
關鍵詞:揚聲器;at89s52單片機;i/0口
目 錄
背景意義、任務要求及設計原理、框圖··························1 1.1 背景意義···············································1 1.2 任務要求···············································1 1.3 設計原理···············································1 1.4 設計框圖···············································1 2 硬件系統(tǒng)····················································3 2.1 數(shù)碼管模塊··············································3 2.2 鍵盤模塊················································3 2.3 復位電路················································3 2.4 蜂鳴器模塊··············································4 3 軟件系統(tǒng)·····················································5 3.1 主程序介紹及流程圖······································5 3.2 各個模塊及功能介紹······································6 3.2.1 定時器模塊········································6 3.2.2 延時模塊··········································6 3.2.3 中斷模塊··········································7 3.2.4 數(shù)碼管顯示模塊 ···································9 4 電路仿真和程序檢測··········································10 5 實物制作及調試··············································11 結束語 ····························································12 參考文獻 ··························································13 致 謝· ···························································14 附 錄· ···························································15 背景意義、任務要求及設計原理、框圖
1.1 背景意義
音樂盒的起源是中世紀歐洲的教會用來鐘塔報時,后來,隨著工業(yè)的發(fā)展,逐漸的體積變小,功能變多,不過多數(shù)以機械音樂盒為主,這樣的音樂盒大部分體積較大音調單一,容易受到外界的影響,而且,代價昂貴。
此次設計的音樂盒,是基于單片機設計制作的電子音樂盒。與傳統(tǒng)的相比更加小巧,音質更優(yōu)美而且可以演奏和弦音樂。單片機音樂盒的動力是+5v的電源,制作簡單,可以批量生產,控制功能強大,可以隨時的加減歌曲,使用更加的方便而且不易受到外界的影響而音質變壞,另外,可以根據(jù)需要,添加流水彩燈等外設更改外觀,使音樂盒的功能更加豐富。
1.2 任務要求
此次的設計要求為:設計一個具有特定功能的音樂盒,要求包含軟件和硬件兩大模塊,能夠通過按鍵來選擇曲目,切換曲目,顯示器來顯示曲目編號,能夠準確的播放曲目。
1.3 設計原理
本次的設計最主要的在于蜂鳴器的設計,想要蜂鳴器發(fā)出不同的音調,通過單片機的定時器產生一定長度的方波,方波脈沖驅動蜂鳴器發(fā)聲。要產生音頻脈沖,只需要算出某一音頻的周期,然后取半周期的時間定時。利用定時器計時這半個周期時間,每當計時到之后,就將輸出脈沖的i/o反向,然后在重復計時此周期時間再對i/o口反相,就可在i/o口得到此頻率的脈沖。如中音do,頻率為523hz,其周期t=1/523=1912微秒,因此只要令計數(shù)器定時1912/2=926。在每計數(shù)956次時將i/o口反相,就可以得到中音。
每當有鍵按下時,判斷鍵值,啟動計數(shù)器t0,產生一定頻率的脈沖,驅動蜂鳴器,放出曲目。數(shù)碼管采用共陽極數(shù)碼管,通過單片機p0口控制,實現(xiàn)曲目序號的顯示。功能鍵盤采用按鍵開關,通過p3口控制,實現(xiàn)曲目播放順序的調換和暫停播放功能,蜂鳴器由p3.1口控制,實現(xiàn)音樂播放。
1.4 設計框圖
單片機接+5v電源供電,晶振電路負責產生單片機所需要的時鐘信號,通過功能鍵產生外部中斷,控制音樂盒的上一曲和下一曲。在由i/o口輸出控制蜂鳴器發(fā)聲。另外可以用復位電路對程序初始化,在程序出錯時,重啟單片機。具體 的設計框圖如圖1所示。
圖1 總體設計框圖
編程設置好定時時間,通過編程器寫入at89s52單片機系統(tǒng)中。由at89s52單片機的定時器每秒通過p1口控制led數(shù)碼管顯示,復位信號由按鍵輸入,沒按一次,系統(tǒng)恢復原始狀態(tài)。電源,晶振電路,單片機,功能鍵,和揚聲器部分具體介紹在后面有介紹。硬件系統(tǒng)
2.1 數(shù)碼管模塊
歌曲顯示部分用數(shù)碼管來顯示,led顯示器件是通過發(fā)光二極管顯示字段的器件,該設計采用的是7段數(shù)碼管,原理是由p0口控制數(shù)碼管中的7端led發(fā)光二極管,通過單片機給予p0口不同的數(shù)值來顯示不同的數(shù)字。數(shù)碼管分為共陽極和共陰極兩種,共陽極的數(shù)碼管,當管腳是低電平有效,而陰極的數(shù)碼管,是管腳高電平有效。這樣,單片機給予p0口的數(shù)值將會發(fā)生差異,也就是說,不同種類的數(shù)碼管,對應的ascii碼就會不同。本次選用的是共陽極數(shù)碼管,其引腳如圖2所示。
圖2 數(shù)碼管引腳
2.2 鍵盤模塊
本次的鍵盤模塊采用按鍵開關這樣操作簡單,辨別容易的開關。用到4個按鍵開關,分別是復位按鍵,下一首按鍵,上一首按鍵,和暫停按鍵。上一首按鍵和下一首按鍵接單片機的外部中斷0,外部中斷1。暫停按鍵接定時器1,復位按鍵在復位電路中,接單片機res。
2.3 復位電路
復位電路主要用于初始化程序,當單片機音樂盒發(fā)生死機時,用復位電路初始化程序來重啟單片機。兩個電容,兩個電阻和一個復位按鍵組成,當單片機死機時,按下按鍵,即可重啟,其電路原理圖如圖3所示。
圖3 復位電路原理圖
2.4 揚聲器模塊
揚聲器模塊最為重要,當單片機輸出脈沖經過揚聲器時,會是揚聲器發(fā)聲,不過因為設計中用到的元件較多,不能保證通過揚聲器的電流足夠大,所以要用三極管放大電路來放大電流,這樣才能讓揚聲器正常工作,具體的原理圖如圖4所示。
圖4 揚聲器原理圖 軟件系統(tǒng)
3.1 主程序介紹及流程圖
一個系統(tǒng)的正常運行不僅需要硬件的運行,還需要軟件系統(tǒng)的支持。同時軟件要根據(jù)硬件的連接來設計,來配合硬件的工作,例如,本次的設計用到的是p 0口和p3口。所以,設計的時候就要注意,只能用到p0和p3。本次用到的軟件設計選用課堂學到的匯編語言。另外用keil軟件來編寫程序,用課堂上學到的中斷和循環(huán)等來編寫程序。
主程序要開始定義音頻輸出端口,歌曲總數(shù)以及每首歌的入口地址;然后對定時器初始化,確定工作方式,賦初值,開放中斷啟動定時器工作;對音頻輸出端口初始化;設置音節(jié)起始位置和節(jié)拍間距,把音節(jié)和節(jié)拍的入口地址信息存放在固定存儲單元中,查詢音樂的節(jié)拍表;當6首歌曲的節(jié)拍查詢結束后,音樂播放完畢,程序結束。主程序的清單在附錄中,其流程圖如圖5所示。
圖5 主程序流程圖
3.2 各個模塊及功能介紹 3.2.1 定時器模塊
單片機中有兩個16位的可編程計數(shù)器/定時器,他們具有定時和計數(shù)的功能,可用于定時控制,延時,對外部的事件檢測和計數(shù)。
定時器的核心部件是加一計數(shù)器,通過tmod寄存器可以使定時器工作在定時或者計數(shù),還可以選擇工作方式,工作方式關系到后面音調和節(jié)拍的調用,因此,要選擇合適的工作方式。定時器模塊的程序清單見附錄。圖6為定時程序流程圖。
圖6 定時器模塊流程圖
3.2.2 延時模塊
此處的延時模塊并不是固定的延時程序,而是將節(jié)拍表中的接拍數(shù)存放在固定的單元中,再將固定單元中的內容送給延時程序中,這樣空拍就可以將節(jié)拍分開,這樣,圖7為延時程序流程圖。
圖7 延時流程圖
3.2.3 中斷模塊
中斷模塊主要用來進行上一首,下一首和暫停的控制,本次的中斷主要用到int0,int1和t1三個i/o口。不同的中斷有不同的程序。因為單片機中只有兩個外部中斷,因此,我決定選用定時器1來改變成中斷,即應定時器1的f0判斷,當f0為1時,為中斷。在此僅具體介紹上一曲的功能。下面為流程圖介紹。
圖8 中斷程序流程圖
3.2.4 數(shù)碼管顯示模塊
本次設計采用的是共陽極的數(shù)碼管,因此要采用相應的數(shù)值來控制數(shù)碼管的亮滅。另外還要求通過按鍵在改變曲目順序的時候改變數(shù)碼管顯示數(shù)字。下面為數(shù)碼管顯示模塊的流程圖。
圖9 數(shù)碼管顯示模塊流程圖 電路仿真和程序檢測
仿真圖作圖用到的是proteus軟件,對于這個軟件,我們已經相當?shù)氖煜ぃ杂闷饋肀容^順利,首先將各個元件搜索出來,必須要有單片機最小系統(tǒng),顯示模塊,按鍵模塊,發(fā)聲模塊。根據(jù)要求,可以畫出仿真圖。如圖10所示。
圖10 設計仿真圖
將keil中寫好的程序導入到單片機中,開始檢測,首先檢測是否能夠清晰的播放出音樂,其次通過控制三個按鍵來檢測上一首,下一首和暫停的功能是否實現(xiàn),觀察數(shù)碼管的數(shù)字是否隨著按鍵的變化,通過以上檢測,發(fā)現(xiàn)程序和仿真完全符合標準,表示仿真和程序檢測通過,可以制作實物。
5實物調試
文件,文件導入到三合一的實驗板中,在外邊接入三個按鍵開關來控制上一首,下一首和暫停,調試過程與仿真圖的調試過程相同,可以通過按鍵來控制歌曲的調換和暫停,而且也可以控制數(shù)碼管按曲目的調換來顯示序號。實驗成功,實驗成品如圖11所示。
圖11 實物圖 11
結束語
首先要感謝凌老師平時的耐心教導,才能讓我對單片機這門課程產生興趣,在平時的課堂上都會跟著老師的思路走,下課后,努力的完成老師布置的作業(yè)是凌老師讓我學到了很多關于單片機的知識。
其次對這次制作課程設計的感想。本次的課題是音樂盒,最主要的就是程序設計,經過比較分,決定采用51編程語言,因為平時上課接觸最多的就是匯編語言,對于c語言,了解比較少,并不是非常熟練。運用課堂上學到的定時,中斷,循環(huán),以及數(shù)碼管顯示和按鍵程序,可以比較完整的制作出這次的課題。不僅可以復習近平時學到的知識,還會有新的能力學到,比如ad繪圖的使用和熟悉。
最后,了解了單片機的方便性,和強大性。這是我們走向崗位的通行證,必須學會單片機,才會在大四畢業(yè)的時候找到適合自己的好工作。
參考文獻
[1]李廣弟.單片機基礎[m].第3版.北京:北京航空航天大學出版社,2003.06.[2]李全利.單片機原理及應用(c51編程)[m].北京:高等教育出版社,2012.12.[3]樓然苗.51系列單片機設計實例[m].北京:北京航空航天大學出版社,1999.06.[4]李葉紫.單片機應用教程[m].北京:清華大學出版社,2002.01.[5]李光飛.單片機課程設計實例指導[m].北京:北京航空航天大學出版社,2004.09.致
謝
這次的設計可以說是給了我很多,不僅僅是學習上的,更多的是精神上和生活中的
首先要感謝老師的教育,讓我學到了這么多的知識,在這段制作單片機課設的時候更是有感觸,當聽到設計的音樂盒發(fā)出聲音的時候,第一感覺是好舒暢,因為第一次可以看到自己制作出這樣的東西,在這些自豪中,更能感覺到老師對我們的栽培是那么的重要。
還要感謝同學們的幫助,有的時候,自己真的是不懂了,就去問同學,這不僅僅是問問而已,更能加深同學之間的友情,而且還會收獲更多的知識,在這樣的學習氛圍中,收益的是我們大家。所以我要感謝在這次課設里幫助過我的所有同學。
這次的設計給我最大的啟發(fā)就是,在學習中馬虎不得。當你馬虎的對待學習,學業(yè)也會馬虎的對待你,這樣吃虧的還是自己,學業(yè)本來就是自己的,自己不努力,難道就會白白得來嗎?所以以后的學習中不能有一絲的馬虎大意,就算是為了自己也要學下去。
附
錄
附錄a 電路原理圖
附錄b 電路實物圖
附錄c 元器件清單
名
稱
型
號
個
數(shù)
芯片
at89s52 1 數(shù)碼管八段2
電容
22μf
電容
33pf
三極管1
電阻
470ω
電阻
300ω
電阻
200ω
電阻
1kω led燈8
下載口
晶振
12mhz1
按鍵
排阻8位4
排阻
2位1
短路帽
插針
若干
附錄d 程序清單
out bit p3.1
n equ 6 out_num equ p0 org 0000h ajmp main org 0003h ajmp last_song org 000bh ljmp f_t0 org 0013h ajmp next_song org 001bh ajmp start_pause org 0030h main: mov sp ,#60h mov dptr,#table mov r0 ,#30h mov r5 ,#00h mov r6 ,#1 set_tab: mov a,r5 movc a ,@a+dptr mov @r0 ,a inc r5 inc r0 mov a ,r5 movc a ,@a+dptr mov @r0 ,a inc r5 inc r0 mov a ,r5 movc a ,@a+dptr mov @r0 ,a inc r5 inc r0 mov a,r5 movc a,@a+dptr mov @r0 ,a inc r0 inc r5 inc r6 cjne r6,#n+1,set_tab mov tmod ,#61h mov th1,#0ffh mov tl1,#0ffh setb et1 setb et0 clr pt0 setb pt1 setb it0 setb px0 setb it1 setb px1 setb ex1 setb ex0 setb ea setb tr1 setb out clr f0 mov 22h ,#01h mov dptr,#out_tab mov a,22h movc a,@a+dptr mov out_num,a mov r7,#00h
start0: mov r4,#00h mov r0,#30h mov a,r7 add a,r0 mov r0,a mov dph,@r0 inc r0 mov dpl,@r0 inc r0 mov a,r4 inc r4 movc a,@a+dptr mov 26h,a next:mov r0,#30h mov a,r7 add a,r0 mov r0,a mov dph,@r0 inc r0 mov dpl,@r0 inc r0 mov a,r4 inc r4 movc a,@a+dptr jz end0 mov r1,a anl a,#0fh mov r2,a mov a,r1 swap a anl a,#0fh jnz sing clr tr0 sjmp sing1 sing:dec a mov r3,a rl a mov dph,@r0 inc r0 mov dpl,@r0 inc r0 movc a,@a+dptr mov 21h,a mov th0,a mov a,r3 rl a inc a movc a,@a+dptr mov 20h,a mov tl0,a setb tr0 sing1: lcall delay jb f0,for ajmp next for:clr tr0 jb f0,$ ajmp next end0: clr tr0 mov a,22h cjne a,#n,ww mov 22h,#01h mov r7,#00h mov out_num,#11111001b ajmp www ww:mov a,r7 add a,#4 mov r7,a inc 22h clr ea push dph push dpl mov a,22h mov dptr,#out_tab movc a,@a+dptr mov out_num,a pop dpl pop dph www:setb ea ajmp start0 f_t0:mov th0,21h mov tl0,20h cpl out reti next_song: push acc push dph push dpl clr ea mov a,22h cjne a,#n,q mov r7,#00h mov 22h,#01h ajmp back q: inc 22h mov a,r7 add a,#4 mov r7,a back: mov r4,#00h mov a,22h mov dptr,#out_tab movc a,@a+dptr mov out_num,a mov b ,r0 mov r4,#00h mov r0,#30h mov a,r7 add a,r0 mov r0,a mov dph,@r0 inc r0 mov dpl,@r0 inc r0 mov a,r4 inc r4 movc a,@a+dptr mov 26h,a dec r4 mov r0,b pop dpl pop dph pop acc setb ea reti last_song: push acc push dph push dpl clr ea mov a,22h cjne a,#1,qq mov 22h,#n mov b,#4 mov a,#n-1 mul ab mov r7,a ajmp back2 qq: dec 22h mov a,r7 subb a,#4 mov r7,a back2: mov r4,#00h mov a,22h mov dptr ,#out_tab movc a,@a+dptr mov out_num,a mov b,r0 mov r4,#00h mov r0,#30h mov a,r7 add a,r0 mov r0 ,a mov dph,@r0 inc r0 mov dpl,@r0 inc r0 mov a,r4 inc r4 movc a,@a+dptr mov 26h ,a dec r4 mov r0,b pop dpl pop dph pop acc setb ea
reti start_pause: cpl f0 jb f0,return setb tr0 return: reti delay: mov 27h,26h d2: d3:
mov 28h,#125 mov 29h,#248 djnz 29h,$ djnz 28h,d3 djnz 27h,d2 djnz r2,delay ret out_tab: db 0ch,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h,86h,8eh,0ffh table: dw song1,table1,song2,table2,song3,table3,song4,table4,song5,table5,song6,table6 table1: dw 64580,64684,64777,64820,64898,64968,65030 dw 63628,63835,64021,64103,64260,64400,64524 song1: db 04h db 32h,54h,52h,32h,54h,52h,32h,12h,12h,32h,32h,54h,52h,32h,52h,52h,32h,32h,21h,31h,4h,0e2h,0d1h,0e1h,0d2h,0c2h,14h,14h db 0c2h,32h,32h,12h,21h,31h,24h,32h,34h,0d2h,0c2h,14h,14h,32h,52h,52h,32 26
h,52h,54h,32h,34h,31h,21h,12h,24h,34h db 34h,0e2h,0c2h,0d1h,0e1h,0d4h,12h,0e2h,32h,32h,0e2h,32h,32h,0e2h,0d1h,0e1h,0d4h,0d2h,0e2h,32h,32h,0e2h,0e2h,0d1h,0e1h,0d4h db 22h,0d1h,11h,0e2h,0d2h,0c2h,0c4h,0c4h,32h,52h,52h,32h,62h,05h,61h,54h,31h,52h,31h,12h,31h,32h,54h,52h,32h,52h,52h,32h db 32h,21h,31h,24h,0e2h,0d1h,0e1h,0d2h,0c2h,34h,34h,32h,52h,52h,32h,62h,51h,61h,54h,31h,12h,32h,12h,32h,12h,32h,32h,54h,52h
db db db 32h,52h,52h,31h,31h,32h,21h,31h,24h,0e2h,0d1h,0e1h,0d2h,0c2h,14h,14h 32h,52h,52h,32h,32h,21h,31h,24h,0e2h,0d1h,0e1h,0d2h,0c2h,14h,14h 0c2h,32h,32h,12h,21h,31h,24h,32h,34h,0d2h,0c2h,14h,14h,32h,52h,52h,32h,34h,31h,21h,12h,24h,24h db 34h,0e2h,0c2h,0d1h,0e1h,0d4h,12h,0e2h,32h,32h,0e2h,0d1h,0e1h,0d4h,0d2h,0e2h,32h,32h,0e2h,0e2h,0d1h,0e1h,0d4h table2: dw 63835,64021,64103,64260,64400,64524,64580,64684,64777 dw 64820,64898,64968,65030,65058,65110,65157,65178 song2: db 02h db 04h,94h db 0e8h,0e4h,0e4h,0e8h,0e4h,0f4h,0d4h,0c4h,0b4h,84h,84h,92h,92h,94h,92h,02h
02h db 0a4h,0a2h,0b2h,0b4h,0c4h,84h,82h,92h,94h,0a4h db 04h,0c2h,0c2h,0d4h,0c2h,0d2h,0d8h,0d4h,0d2h,92h db 0e8h,0e4h,0e4h,0e8h,0e4h,0f4h,0d4h,0c4h,0b4h,84h,84h,92h,92h,94h,92h, 27
db 0a4h,0a2h,0b2h,0b4h,0c4h,0e8h,0d8h db 0c8h,0c8h,08h,08h,78h,28h,38h,34h,24h db 24h,64h,64h,24h,64h,72h,72h,78h,58h,54h,44h,38h,34h,14h,34h,84h,74h,74h,62h,0d8h,78h,28h,38h,34h,24h
db db db
58h,58h,58h,58h,0a8h,0a8h,0a4h,0b4h,0a4h,84h,0a4h, 24h,64h,64h,24h,64h,72h,72h,72h,94h,92h,94h,0a4h,58h,58h,54h,44h 94h,98h,98h,08h 84h,82h,82h,82h,82h,94h,0a2h,94h,92h,82h,74h,72h,74h,72h,72h,72h,72h,92h,91h,91h,94h,54h,74h,94h 02h db 0a4h,0a2h,0b2h,0b4h,0c4h,84h,82h,92h,94h,0a4h,04h,0c2h,0c2h,0d4h,0d8h,0d4h,0d2h,92h 02h db 0a4h,0a2h,0b2h,0b4h,0c4h,84h,82h,92h,94h,0a4h,04h,0c2h,0c2h,0d4h,0d8h,0d4h,0d2h,92h
db 0a4h,0a2h,0b2h,0b3h,0c4h,0e8h,0d8h db 0c8h,0c8h,0c8h,08h db 00h db 0e8h,0e4h,0e4h,0e8h,0e4h,0f4h,0d4h,0c4h,0b4h,84h,84h,92h,92h,94h,92h,db 0e8h,0e4h,0e4h,0e8h,0e4h,0f4h,0d4h,0c4h,0b4h,84h,84h,92h,92h,94h,92h,table3: dw 64898,64968,65030,65086,65135,65158,65199,64260,64400,64524,64580,64684,64777,64862 song3: db 03h db 28
04h,04h,0c2h,14h,12h,12h,12h,11h,11h,0c2h,0d1h,0e1h,14h,14h,02h,32h,12h,21h,31h,52h,51h,51h,54h db 32h,31h,31h,12h,11h,31h,52h,51h,31h,24h,24h,24h,64h,54h,24h,34h,52h,34h,52h,32h,21h,31h,12h,11h,21h,34h,04h db 52h,51h,0d1h,12h,12h,32h,31h,31h,52h,51h,51h,22h,22h,22h,0d2h,0d1h,0d1h,24h,22h,0c2h,14h,12h,12h,34h,32h,32h,54h,54h,54h,54h db 12h,11h,31h,52h,51h,51h,64h,54h,32h,31h,11h,52h,52h,52h,32h,02h,12h,02h,0c4h,14h db 0a2h,0a1h,11h,52h,52h,52h,32h,02h,12h,02h,0c4h,14h,0c4h,14h,0c4h,14h,14h,04h db 04h,04h,04h,04h db 00h table4: dw 64260,64400,64524,64580 ,64684,64777,64280,64898,64968,65030,65058,65110,65157,65178,65217 song4: db 04h
db 82h,01h,81h,94h,84h db 0b4h,0a4h,04h db 82h,01h,81h,94h,84h db 0c4h,0b4h,04h db 82h,01h,81h,94h,84h db 0b4h,0a4h,04h db 82h,01h,81h,94h,84h db 0c4h,0b4h,04h db 82h,01h,81h,94h,84h db 0b4h,0a4h,04h db 82h,01h,81h,94h,84h db 0c4h,0b4h,04h 29
db 82h,01h,81h,94h,84h db 0b4h,0a4h,04h db 0c4h,0b4h,04h db 00h db 82h,01h,81h,94h,84h table5: dw 64021,64103,64260,64400 ,64524,64580,64684,64777,64820,64898,64968,65030,64934 song5:
db 05h db 42h,82h,82h,82h,84h,02h,72h db 62h,72h,62h,52h,48h db 0b2h,0b2h,0b2h,0b2h,0b4h,02h,0a2h db 12h,0a2h,0d2h,92h,88h db 82h,0b2h,0b2h,0a2h,84h,02h,72h db 62h,72h,62h,52h,44h,02h,12h db 12h,62h,62h,52h,44h,02h,82h db 72h,62h,52h,32h,48h db 00h table6: 64021,6103,64260,64400,64524,64580,64624,64777,64820,64898,64958,65030,65058,65110,65157 song6: db 06h
db 0a2h,0b2h,0d2h,0b2h,0a4h,0b2h,0d2h db 0b2h,0a2h,82h,72h,88h db 72h,82h,0a2h,82h,72h,62h,42h,62h db 0a4h,02h,0b2h,0a4h,84h db 72h,82h,72h,62h,72h,84h,72h db 64h,62h,12h,34h,02h,42h db 38h,38h dw db 38h,38h 30
db 44h,02h,32h,44h,64h db 72h,74h,82h,0a4h,02h,062h db 0a8h,0a8h db 0b2h,0b4h,0a2h,84h,82h,72h db 62h,72h,82h,0a2h,88h db 72h,74h,62h,42h,32h,32h,62h db 78h,78h db 82h,84h,72h,82h,0a2h,84h db 72h,82h,72h,62h,48h db 32h,0a2h,82h,0f2h,0a2h,0b2h,82h,72h db 68h,68h db 0b2h,0b2h,0b2h,0a2h,82h,84h,02h db 72h,74h,62h,42h,32h,42h,62h db 78h,78h db 0a2h,0b2h,0a2h,72h,82h,84h,82h db 72h,74h,62h,44h,64h db 0a8h,0a4h,02h,0a2h db 0a2h,0b1h,0a1h,82h,0a2h,0b4h,0b2h,0c2h db 0a2h,0b2h,0a2h,82h,78h db 84h,72h,62h,44h,02h,62h db 72h,81h,71h,62h,72h,84h,02h,0a2h db 0b4h,02h,82h,74h,82h,72h db 68h,68h db 00h end db 72h,82h,72h,62h,72h,84h,0a2h 31
單片機課程設計選題簡單 單片機課程設計選題及程序篇五
中北大學單片機原理及接口技術課程設計說明書 緒論
電子鐘已成為人們日常生活中必不可少的物品,廣泛用于個人、家庭以及車站、影院、辦公室等公共場所,給人們的生活、學習、工作帶來了極大的方便。隨著電子技術的發(fā)展,人們已不再滿足于鐘表原先最簡單的報時,希望出現(xiàn)一些新的功能,諸如日歷的顯示、鬧鐘的非接觸式止鬧、秒表功能、重要日期倒計時顯示等,以帶來更大的方便,而所有這些,又都是以數(shù)字化的電子時鐘為基礎的。因此,研究數(shù)字電子鐘及其擴展應用,有著非?,F(xiàn)實的意義和實用價值。
單片機是指將微處理器、一定容量的ram和rom以及i/o口、定時器等電路集成在一塊芯片上的完整計算機系統(tǒng)。89c51單片機是一種低功耗、高性能的,它采用cmos工藝和高密度非易失性存儲器(nuram)技術,其輸出引腳和指令系統(tǒng)都與mcs-51兼容;片內的flash rom允許在系統(tǒng)內改編程序或用常規(guī)的nuram編程器來編程。因此,89c51是一種功能強、靈活性高,而且價格合理的單片機,可以方便的利用at89c51定時器和6位7段數(shù)碼管,設計一個電子時鐘。顯示格式位 “xx xx xx”,從左向右分別是:時、分、秒。1.1 設計目的
利用mcs-51芯片及相關芯片設計數(shù)字鐘。1.2 設計內容 1)硬件設計
設計數(shù)字鐘的電路原理圖,用proteus繪制硬件電路。制作實物。2)軟件設計
(1)時、分、秒的設置及顯示;(2)畫出程序框圖;(3)調試與分析。用proteus仿真。
//buf
中北大學單片機原理及接口技術課程設計說明書
{
keyrel=1;keyprocess(buf);buf=0xff;} display();} } //按鍵處理函數(shù)
void keyprocess(unsigned char key)//鍵值處理,正常計時,設置時分秒 { switch(key){ case 0xe0:status++;//按下設置鍵 if(status>=4)status = 0;
break;case 0xd0:switch(status)//按下加1鍵,3種模式下加1
{
case 0x01:if(hhh<24)hhh++;
else hhh=0;break;case 0x02:if(mmm<60)mmm++;
else mmm=0;break;case 0x03:if(sss<60)sec++;
else sss=0;break;} break;case 0xb0:switch(status)//按下減1鍵 { case 0x01:if(hhh>0)hhh--;
else hour=23;break;
中北大學單片機原理及接口技術課程設計說明書
} } //定時器0中斷函數(shù)
void timer0()interrupt 1 using 2 { static uint count;th0=(65536-1000)/256;// 定時器0設置初始值1ms中斷初始值 tl0=(65536-1000)%256;tr0=1;count++;//正常計時
if(count>=1000)// 定時 1s 到,以下為時鐘的正常走鐘邏輯 { count=0;sss++;if(sss>60){ sss=0;mmm++;if(mmm>60){ mmm=0;hhh++;if(hhh>24){ hhh=0;}
} } }
}
【本文地址:http://www.aiweibaby.com/zuowen/1097846.html】