人的記憶力會(huì)隨著歲月的流逝而衰退,寫(xiě)作可以彌補(bǔ)記憶的不足,將曾經(jīng)的人生經(jīng)歷和感悟記錄下來(lái),也便于保存一份美好的回憶。那么我們?cè)撊绾螌?xiě)一篇較為完美的范文呢?接下來(lái)小編就給大家介紹一下優(yōu)秀的范文該怎么寫(xiě),我們一起來(lái)看一看吧。
單片機(jī)課程設(shè)計(jì)選題簡(jiǎn)單 單片機(jī)課程設(shè)計(jì)選題及程序篇一
基于at89s51單片機(jī)的密碼鎖設(shè)計(jì),具體功能如下:(1)總共可以設(shè)置8位密碼,每位密碼值范圍為1~8。(2)用戶可自行設(shè)定和修改密碼。(3)按每個(gè)密碼時(shí)都有聲音提示。
(4)若鍵入的8位開(kāi)鎖密碼不完全正確,則報(bào)警5s已提醒他人注意。
(5)開(kāi)鎖密碼連續(xù)錯(cuò)3次要報(bào)警1分鐘,報(bào)警期間輸入密碼無(wú)效,以防竊賊多次試探密碼。
(6)鍵入的8位開(kāi)鎖密碼完全正確才能開(kāi)鎖,開(kāi)鎖時(shí)要有1s的提示音。(7)電磁鎖的電磁線圈每次充電5s,然后恢復(fù)初態(tài)。
(8)密碼鍵盤(pán)上只允許有8個(gè)密碼按鍵。鎖內(nèi)有備用電池,只有內(nèi)部上電復(fù)位才能設(shè)置或修改密碼,因此,僅僅在門(mén)外按鍵是不能修改或設(shè)置密碼的。(9)密碼設(shè)置完畢后要有2s的提示音。硬件設(shè)計(jì)
2.1 設(shè)計(jì)思路
按照系統(tǒng)設(shè)計(jì)的要求和功能,將系統(tǒng)分為主控模塊;按鍵掃描模塊;蜂鳴器;電源電路;復(fù)位電路晶振電路;驅(qū)動(dòng)電路幾個(gè)模塊,系統(tǒng)組成框圖如圖1-1所示。主控模塊采用at89s51單片機(jī)。
電源電路復(fù)位電路主控模塊晶振電路at89s51按鍵掃描模塊驅(qū)動(dòng)器蜂鳴器 圖1-1 基于at89s51單片機(jī)的密碼鎖組成框圖 鎮(zhèn)江高等??茖W(xué)校課程設(shè)計(jì)2.2 硬件圖及說(shuō)明(硬件圖見(jiàn)圖1-2,)
元件型號(hào)單片機(jī)晶振電容型號(hào)數(shù)量/個(gè)用途元件型號(hào)蜂鳴器電阻型號(hào)數(shù)量/個(gè)用途at89s52 1 控制核心12mhz 1 晶振電路30pf 2 晶振電路1 報(bào)警電路1kω10kω4.7kω1 上拉電路1 復(fù)位電路1 放大電路電阻電阻繼電器電源電解電容20uf/10v 1 復(fù)位電路按鍵三極管二極管9 按鍵電路8550 2 放大電路in4004 1 5v 1 控制對(duì)象+5v/0.5a 1 提供+5v電源 圖1-3 基于at89s51單片機(jī)的密碼鎖元件清單
注:89s51是一個(gè)低功耗,高性能cmos 8位單片機(jī),片內(nèi)含4k bytes isp(in-system programmable)的可反復(fù)擦寫(xiě)1000次的flash只讀程序存儲(chǔ)器,器件采用atmel公司的高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)mcs-51指令系統(tǒng)及80c51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和isp flash存儲(chǔ)單元,功能強(qiáng)大的微型計(jì)算機(jī)的at89s51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價(jià)比的解決方案。
2.蜂鳴器的工作原理: 軟件設(shè)計(jì)
2.1 設(shè)計(jì)思路 鎮(zhèn)江高等??茖W(xué)校課程設(shè)計(jì)應(yīng)位置的,分析程序時(shí)可以仔細(xì)對(duì)照參考。該密碼鎖中ram存儲(chǔ)單元的分配方案如下所示
如圖1-3所示給出了該單片機(jī)密碼鎖電路的軟件軟件流程圖。圖中aa1~aa8以及start,set,save是程序中的標(biāo)號(hào),是為了理解程序而專門(mén)標(biāo)在流程圖的對(duì)? 31h~38h;依次存放8位設(shè)定的密碼,首位密碼存放在31h單元中。? r0:只指向密碼地址 ? r2;已經(jīng)輸入密碼的位數(shù)
? r3:存放允許的錯(cuò)碼次數(shù)3與實(shí)際錯(cuò)碼次數(shù)的差值。? r4~ r7:延時(shí)用。? 00h:錯(cuò)碼標(biāo)志位。
對(duì)于rom存儲(chǔ)單元的分配,由于程序比較短,而且占用的存儲(chǔ)空間的較少,因此,在無(wú)特殊要求時(shí),可以從0030h單元(其他地址也可以)開(kāi)始存放主程序。3.2 程序流程圖
開(kāi)始初始化1s提示音等待設(shè)置密碼nn有鍵按下?y短音提示保存設(shè)置密碼n是否夠8位?y長(zhǎng)音提示錯(cuò)誤次數(shù)清零錯(cuò)誤標(biāo)識(shí)清零n有鍵按下?y短音提示密碼對(duì)否?y是否夠8位?y標(biāo)志=1?n開(kāi)鎖并長(zhǎng)音提示延時(shí)鎖恢復(fù)錯(cuò)誤清零錯(cuò)3次?y報(bào)警1 min錯(cuò)誤次數(shù)清零報(bào)警5s錯(cuò)誤標(biāo)志清零y錯(cuò)誤次數(shù)加1nn錯(cuò)誤標(biāo)志置1 圖1-4 基于at89s51單片機(jī)的密碼鎖程序流程圖
3.3 程序清單(注釋)
loc obj line source
0000 1 org 0000h 0000 0130 2 ajmp start 0030 3 org 0030h 鎮(zhèn)江高等??茖W(xué)校課程設(shè)計(jì)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)江高等專科學(xué)校課程設(shè)計(jì)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)江高等??茖W(xué)校課程設(shè)計(jì) 72 end 3.4 程序調(diào)試
按鍵an1~an7分別代表數(shù)碼1~7,按鍵an0代表8。在沒(méi)有鍵按下時(shí),p1.0~p1.7全是高電平1;若某個(gè)鍵被按下,相應(yīng)的口就變?yōu)榈碗娖?.加入設(shè)定的密碼是612345678,當(dāng)按鍵an6被按下時(shí),p1.6變?yōu)榈碗娖剑琾1端口其余口線為高電平,此時(shí)從p1口輸入的數(shù)值為10111111,存到31h單元的密碼值就是10111111,也就是bfh。以此類推,存到32h至38h單元的密碼值分別是fdh,fbh,f7h,efh,dfh,7fh,feh。開(kāi)鎖時(shí)必須先按an6,使從p1口讀入的第一個(gè)密碼值與31h單元存儲(chǔ)的設(shè)定值相同,再按順序按an1,an2,an3,an4,an5,an7,an0才能開(kāi)鎖。否則不能開(kāi)鎖,同時(shí)開(kāi)始報(bào)警。小結(jié)
通過(guò)此次課程設(shè)計(jì),使我更加扎實(shí)的掌握了有關(guān)單片機(jī)方面的知識(shí),在設(shè)計(jì)過(guò)程中雖然遇到了一些問(wèn)題,但經(jīng)過(guò)一次又一次的思考,一遍又一遍的檢查終于找出了原因所在,也暴露出了前期我在這方面的知識(shí)欠缺和經(jīng)驗(yàn)不足。實(shí)踐出真知,通過(guò)親自動(dòng)手制作,使我們掌握的知識(shí)不再是紙上談兵。
實(shí)驗(yàn)過(guò)程中,也對(duì)團(tuán)隊(duì)精神的進(jìn)行了考察,讓我們?cè)诤献髌饋?lái)更加默契,在成功后一起體會(huì)喜悅的心情。果然是團(tuán)結(jié)就是力量,只有互相之間默契融洽的配合才能換來(lái)最終完美的結(jié)果。
此次設(shè)計(jì)也讓我明白了思路即出路,有什么不懂不明白的地方要及時(shí)請(qǐng)教或上網(wǎng)查詢,只要認(rèn)真鉆研,動(dòng)腦思考,動(dòng)手實(shí)踐,就沒(méi)有弄不懂的知識(shí),收獲頗豐
參考文獻(xiàn):(另起一頁(yè))
【1】楊居義。單片機(jī)課程設(shè)計(jì)指導(dǎo)。北京:北京大學(xué)出版社,2009。
【2】王效華,張?jiān)伱?。單片機(jī)原理與應(yīng)用。北京:北京交通大學(xué)出版社,2007。【3】楊光義,馬寧,靳光明等。單片機(jī)原理與工程應(yīng)用。北京:清華大學(xué)出版社,2009。
單片機(jī)課程設(shè)計(jì)選題簡(jiǎn)單 單片機(jī)課程設(shè)計(jì)選題及程序篇二
單片機(jī)原理與接口技術(shù)課程設(shè)計(jì)題目
以下題目任選其一,1-2人一組,自由組合,組內(nèi)各人必須有明確的分工,原則上同一組最多一個(gè)同學(xué)得優(yōu)。
可使用任何單片機(jī)或arm,1-4要求自己設(shè)計(jì)全部硬件和焊接電路板,5-10題可用現(xiàn)成的單片機(jī)開(kāi)發(fā)板,5-6題亦可用proteus仿真。自擬題的根據(jù)題目難度由指導(dǎo)老師決定能否用現(xiàn)成的單片機(jī)開(kāi)發(fā)板。
一、pc機(jī)看門(mén)狗(每班最多6人選此題,難度系數(shù):低)
功能:當(dāng)pc機(jī)死機(jī)時(shí)能自動(dòng)使其重新啟動(dòng)。
硬件:可使用串口或usb與pc機(jī)通訊。
軟件:pc機(jī)上軟件編程可選用任何一種面向?qū)ο箝_(kāi)發(fā)軟件,如vc,delphi等。
實(shí)現(xiàn)原理:pc機(jī)正常時(shí),每隔一段時(shí)間通過(guò)串口向單片機(jī)發(fā)送一些固定的數(shù)據(jù),單片機(jī)如果收到此數(shù)據(jù),說(shuō)明pc機(jī)正常,如果超時(shí)未收到,則控制pc機(jī)重新啟動(dòng)。
二、電子琴設(shè)計(jì)(每班最多6人選此題,難度系數(shù):中)
按下1-7,實(shí)驗(yàn)箱上的蜂鳴器發(fā)出對(duì)應(yīng)的音調(diào)(中音),當(dāng)同時(shí)按下l和1-7時(shí)是,蜂鳴器發(fā)出低音,同時(shí)按下h和1-7時(shí),蜂鳴器發(fā)高音。只要按鍵沒(méi)松開(kāi),蜂鳴器一直發(fā)聲,直到
擴(kuò)展功能:在彩屏lcd上顯示電子屏琴圖片,用觸摸屏控制發(fā)音,就像真正彈電子琴一樣。
三、自行車測(cè)速儀(難度系數(shù):中偏高)
基本功能:能實(shí)時(shí)顯示自行車的行駛速度
附加功能:實(shí)時(shí)時(shí)鐘,行駛里程累計(jì)
要求具備一定的實(shí)用價(jià)值,即要考慮如下問(wèn)題(也是答辯時(shí)的考察和評(píng)分指標(biāo)):
1、體積要做到盡量小
2、為了省電,要使用低電壓工作的單片機(jī),比如使用2.0-3.3v工作電壓的單片機(jī)
3、供電采用可充電的聚合物鋰電池(普通手機(jī)電池),一次充電后的使用時(shí)間最少1
2小時(shí)
4、最好能直接用單車輪子的旋轉(zhuǎn)為電池充電(選做)。
四、計(jì)算器設(shè)計(jì)
5、使用4×4行列式鍵盤(pán)和1602液晶(其他液晶亦可)或數(shù)碼管,實(shí)現(xiàn)普通十進(jìn)制計(jì)
算器的功能,鍵盤(pán)符號(hào)定義如下:
6、“c”表示退格,即刪除鍵,按一次刪除鍵刪掉顯示的最后一個(gè)數(shù)字。
7、如果是用lcd,lcd的第一行顯示運(yùn)算式,第二行顯示運(yùn)算結(jié)果。比如要計(jì)算機(jī)
12+34,在鍵盤(pán)上按下相應(yīng)鍵后,lcd的第一行顯示“12+34”,按下“=”號(hào)后,lcd的第二行顯示“=46”。
8、如果用數(shù)碼管,至少用6位的數(shù)碼管,按“=”前顯示輸入的數(shù)字和運(yùn)算符,按“=”
后顯示運(yùn)算結(jié)果。
9、其他功能參考普通計(jì)算器。
10、基本功能:四則運(yùn)算、退格功能,按“=”號(hào)后再按數(shù)字時(shí)自動(dòng)清除之前的輸入和
計(jì)算結(jié)果,重新開(kāi)始下一次新的計(jì)算過(guò)程。
11、擴(kuò)展功能:負(fù)數(shù)、小數(shù)運(yùn)算。復(fù)合運(yùn)算。連續(xù)運(yùn)算。2進(jìn)制、8進(jìn)制運(yùn)算。觸摸功
能:直接在lcd上顯示一個(gè)計(jì)算器,用觸摸屏操作。
12、必須考慮不正常輸入的情況,答辯時(shí)會(huì)測(cè)試是否能處理各種不正常輸入。
五、pc機(jī)控制的計(jì)算器設(shè)計(jì)(每班最多6人選此題,難度:中偏高)計(jì)算器要實(shí)現(xiàn)的功能同第四題。與第四題不同的是:
1、計(jì)算器的輸入不使用單片機(jī)板上的鍵盤(pán),而是用pc機(jī)的鍵盤(pán)輸入,pc機(jī)將銨鍵通過(guò)串口發(fā)給單片機(jī),并在單片機(jī)的lcd上顯示。
2、在lcd上開(kāi)光標(biāo)顯示并閃爍,可將光標(biāo)退回去修改輸入的計(jì)算式,通過(guò)pc機(jī)的左右箭頭鍵將光標(biāo)移到要修改的位置,再按下數(shù)字或操作符號(hào)可替換光標(biāo)所在位置的字符。
3、按退格鍵刪除光標(biāo)前面一個(gè)位置的字符,按del鍵刪除光標(biāo)所在位置的字符。
3、任何時(shí)候按“=”鍵開(kāi)始計(jì)算結(jié)果,按了“=”之后還可以將光標(biāo)退回到計(jì)算式上修改計(jì)算式。再按“=”則重新計(jì)算新的結(jié)果。
此題可用現(xiàn)成的單片機(jī)開(kāi)發(fā)板,亦可用proteus仿真。
六、單片機(jī)用普通io口實(shí)現(xiàn)串口通信(每班最多6人選此題,難度系數(shù):中)
在理解單片機(jī)異步串口通信的基礎(chǔ)上,不使用單片機(jī)的串口模塊,用普通的io口實(shí)現(xiàn)與pc機(jī)的串口通信的功能,要求實(shí)現(xiàn)的基本參數(shù):波特率1200、數(shù)據(jù)位8位、無(wú)奇偶校驗(yàn)、停止位1位。
其他功能:有關(guān)參數(shù)能方便地修改。
此題主要鍛煉編程能力,所以可以用proteus仿真或現(xiàn)成的單片機(jī)開(kāi)發(fā)板做。
七、基于三軸加速度傳感器的新型鼠標(biāo)(難度系數(shù):高)
利用三軸加速度傳感器實(shí)現(xiàn)鼠標(biāo)的四個(gè)方向的移動(dòng)光標(biāo)的功能。有兩種方案可以選擇:一種是設(shè)計(jì)一種usb接口連接電腦,只要按usb鼠標(biāo)的協(xié)議收發(fā)數(shù)據(jù),則pc機(jī)上不需另外做驅(qū)動(dòng);第二種方案是用串口連接電腦,但pc機(jī)上需要設(shè)計(jì)驅(qū)動(dòng)程序,可以采用api函數(shù)的控制鼠標(biāo)移動(dòng),可參考下面網(wǎng)址或百度搜索相關(guān)資料。
注:此題可用現(xiàn)成的單片機(jī)開(kāi)發(fā)板,另加上自己的三軸加速度傳感器來(lái)做,即傳感器模塊的硬件需要自己設(shè)計(jì),單片機(jī)部分可用現(xiàn)成的開(kāi)發(fā)板。
八、智能學(xué)習(xí)型紅外遙控器(難度系數(shù):中偏高)
可學(xué)習(xí)其他遙控器的按鍵功能,替換原遙控器各按鍵的遙控功能。
功能參考淘寶上產(chǎn)品:
注:此題可用現(xiàn)成的單片機(jī)開(kāi)發(fā)板,如果開(kāi)發(fā)板上沒(méi)有紅外的收和發(fā)模塊,則需另加上紅外的收發(fā)模塊。
對(duì)物聯(lián)網(wǎng)感興趣的同學(xué),可做這個(gè)題目,以后再加上zigbee模塊就成為物聯(lián)網(wǎng)家居里面的一個(gè)應(yīng)用。
九、zigbee無(wú)線臺(tái)燈設(shè)計(jì)
利用cc2530單片機(jī)無(wú)線收發(fā)數(shù)據(jù),實(shí)現(xiàn)對(duì)臺(tái)燈的控制。
cc2530單片機(jī)模塊由webee提供,單片機(jī)板上有1個(gè)按鍵,按1次開(kāi)臺(tái)燈,快速按2次則關(guān)臺(tái)燈??刂婆_(tái)燈需要另加繼電器,這些控制電路需要自己設(shè)計(jì)。
對(duì)物聯(lián)網(wǎng)家居感興趣的同學(xué),可做這個(gè)題目。cc2530就是一個(gè)增強(qiáng)型的51單片機(jī),學(xué)習(xí)起來(lái)并不復(fù)雜。
十、電梯模型(難度系數(shù):高)
設(shè)計(jì)一個(gè)五層樓的電梯模型,每層樓的電梯口2個(gè)指示燈(指明電梯運(yùn)行方向是上或下),2個(gè)按鍵(上、下);電梯廂內(nèi)7個(gè)燈及7個(gè)按鍵(1-5目標(biāo)樓層選擇各一個(gè),開(kāi)關(guān)門(mén)各一個(gè))??捎矛F(xiàn)成的單片機(jī)開(kāi)發(fā)板,其他模塊自做。
十一、自擬題
鼓勵(lì)大家自擬題目,但需指導(dǎo)老師的同意。歡迎大家選擇智能家居和物聯(lián)網(wǎng)有關(guān)的題目。
選題必須在課程設(shè)計(jì)開(kāi)始的第二天中午前確定好,班長(zhǎng)統(tǒng)計(jì)好各人的題目后,將匯總表發(fā)到郵箱:23647837@
格式:
答疑方式及時(shí)間:qq答疑(全天候)、現(xiàn)場(chǎng)答疑(先預(yù)約)
答辯時(shí)間:初定第10周四下午和周五全天,答辯時(shí)必須帶上打印好的課程設(shè)計(jì)報(bào)告。題目難度大的可以推遲答辯,具體時(shí)間再商定。
答疑及答辯地點(diǎn):工一407
注意事項(xiàng):每個(gè)組答辯完后硬件暫時(shí)保留在實(shí)驗(yàn)室,待全部同學(xué)答辯完后再發(fā)還給大家,所以要求在自己的硬件上貼上標(biāo)簽,標(biāo)簽上寫(xiě)明組內(nèi)各成員的班級(jí)、學(xué)號(hào)和姓名,注意標(biāo)簽貼牢一些,不要輕易就掉了。
課程設(shè)計(jì)報(bào)告:詳細(xì)記錄課程設(shè)計(jì)過(guò)程中碰到的難點(diǎn)和問(wèn)題、問(wèn)題的解決過(guò)程及解決方法,心得體會(huì)。上交的打印稿不需附程序源碼,但需有程序框圖及軟件的操作說(shuō)明。報(bào)告要有操作界面的截圖,特別是自已做的硬件,要有整體的照片。
班長(zhǎng)收集全班同學(xué)的程序源碼及課程設(shè)計(jì)報(bào)告電子文檔壓縮打包上交。
答辯注意事項(xiàng):除了書(shū)本上已有的例子,絕不允許抄襲其他同學(xué)的程序,先做好的同學(xué)先答辯,答辯時(shí)如果發(fā)現(xiàn)某段程序與已答辯的同學(xué)雷同,則答辯不能通過(guò)。
允許參考,但不允許抄襲,參考是指先看懂別人的程序,然后自己編程,而不是照抄(復(fù)制)別人的某段程序,也不是在別人的程序基礎(chǔ)做修改,所有的代碼一定要自己寫(xiě)。
單片機(jī)課程設(shè)計(jì)選題簡(jiǎn)單 單片機(jī)課程設(shè)計(jì)選題及程序篇三
選題一 簡(jiǎn)易電子琴
基本功能:設(shè)計(jì)電子琴按鍵,使得按不同的按鍵能夠發(fā)出1,2,3,4,5,6,7等音符 選題二 電子音樂(lè)盒
基本功能:設(shè)置0-7號(hào)按鍵控制播放不同的音樂(lè)
選題三 8×8點(diǎn)陣式led顯示系統(tǒng)
基本功能:能夠顯示點(diǎn)陣漢字
選題四 電子計(jì)算器
基本功能:能夠進(jìn)行加減乘除運(yùn)算,并顯示運(yùn)算結(jié)果
選題五 數(shù)字溫度計(jì)
基本功能:能夠?qū)崟r(shí)顯示環(huán)境溫度
選題六 lcd液晶顯示系統(tǒng)
基本功能:能夠顯示英文字符
選題七 電子秒表
基本功能:能夠?qū)崿F(xiàn)秒表計(jì)時(shí),并顯示計(jì)時(shí)值,能夠清零,重新計(jì)時(shí)
選題八 電子萬(wàn)年歷
基本功能:能夠輸入初始年月日,并能夠顯示當(dāng)前日期
選題九 智能交通燈
基本功能:模擬十字交通路口的紅綠黃三種燈的閃亮情況,控制交通
選題十 電子密碼鎖
基本功能:能夠預(yù)設(shè)3位初始密碼,當(dāng)輸入密碼與預(yù)設(shè)密碼一致時(shí)自動(dòng)開(kāi)鎖,否則報(bào)警 選題十一 搖搖棒
基本功能:當(dāng)搖搖棒搖動(dòng)時(shí),能夠顯示不同變換效果圖
提示:可以選用振動(dòng)開(kāi)關(guān)
選題十二 多功能數(shù)字電子鐘
基本功能:能夠預(yù)置初始時(shí)間,并能夠?qū)崟r(shí)顯示當(dāng)前時(shí)間
每組選題人數(shù)不超過(guò)5人。
論文寫(xiě)作分以下幾個(gè)部分
一、選題的意義
二、主要功能
三、設(shè)計(jì)方案
四、硬件電路
五、軟件設(shè)計(jì)
六、總結(jié)
自制封面:包含課程設(shè)計(jì)題目、學(xué)號(hào)、姓名、班級(jí)等內(nèi)容
單片機(jī)課程設(shè)計(jì)選題簡(jiǎn)單 單片機(jī)課程設(shè)計(jì)選題及程序篇四
《單片機(jī)技術(shù)》課程設(shè)計(jì)說(shuō)明書(shū)
音樂(lè)盒
院、部:電氣與信息工程學(xué)院 學(xué)生姓名:劉亮 指導(dǎo)教師:凌云職稱講師 專業(yè):電子信息工程 班級(jí):電子1302班 學(xué)
號(hào):1330340220 完成時(shí)間: 2016年1月11日
摘要
音樂(lè)盒起始于中世紀(jì)歐洲,當(dāng)時(shí)為使教會(huì)的鐘塔報(bào)時(shí),而將大小的鐘表上裝置機(jī)械設(shè)備,被稱為可發(fā)出聲音的組鐘。
本次的課題主要分為數(shù)碼管顯示模塊、供電模塊、按鍵模塊、發(fā)聲模塊、復(fù)位電路和at89s52單片機(jī)。數(shù)碼管顯示模塊采用共陽(yáng)極數(shù)碼管,通過(guò)p0口控制,實(shí)現(xiàn)歌曲序號(hào)的顯示;供電模塊采用+5v供電;按鍵通過(guò)p3口控制,實(shí)現(xiàn)歌曲播放順序的調(diào)換和暫停播放功能;揚(yáng)聲器由p3.1口控制,實(shí)現(xiàn)歌曲播放。
主要的工作過(guò)程是通過(guò)按鍵控制下一首和上一首播放以及暫停和播放,同時(shí)有數(shù)碼管顯示當(dāng)前正在播放的歌曲序號(hào),揚(yáng)聲器播放出音樂(lè)。
此次設(shè)計(jì)主要用到proteus、keil編程和ad作圖軟件。用proteus畫(huà)出原理圖,用keil編寫(xiě)程序,將程序?qū)朐韴D中進(jìn)行仿真。最后用ad畫(huà)出pcb圖,打印圖紙進(jìn)行腐蝕焊接。將程序下載到單片機(jī)中,利用i/o口產(chǎn)生方波,驅(qū)動(dòng)揚(yáng)聲器,發(fā)出音調(diào),從而演奏樂(lè)曲。
關(guān)鍵詞:揚(yáng)聲器;at89s52單片機(jī);i/0口
目 錄
背景意義、任務(wù)要求及設(shè)計(jì)原理、框圖··························1 1.1 背景意義···············································1 1.2 任務(wù)要求···············································1 1.3 設(shè)計(jì)原理···············································1 1.4 設(shè)計(jì)框圖···············································1 2 硬件系統(tǒng)····················································3 2.1 數(shù)碼管模塊··············································3 2.2 鍵盤(pán)模塊················································3 2.3 復(fù)位電路················································3 2.4 蜂鳴器模塊··············································4 3 軟件系統(tǒng)·····················································5 3.1 主程序介紹及流程圖······································5 3.2 各個(gè)模塊及功能介紹······································6 3.2.1 定時(shí)器模塊········································6 3.2.2 延時(shí)模塊··········································6 3.2.3 中斷模塊··········································7 3.2.4 數(shù)碼管顯示模塊 ···································9 4 電路仿真和程序檢測(cè)··········································10 5 實(shí)物制作及調(diào)試··············································11 結(jié)束語(yǔ) ····························································12 參考文獻(xiàn) ··························································13 致 謝· ···························································14 附 錄· ···························································15 背景意義、任務(wù)要求及設(shè)計(jì)原理、框圖
1.1 背景意義
音樂(lè)盒的起源是中世紀(jì)歐洲的教會(huì)用來(lái)鐘塔報(bào)時(shí),后來(lái),隨著工業(yè)的發(fā)展,逐漸的體積變小,功能變多,不過(guò)多數(shù)以機(jī)械音樂(lè)盒為主,這樣的音樂(lè)盒大部分體積較大音調(diào)單一,容易受到外界的影響,而且,代價(jià)昂貴。
此次設(shè)計(jì)的音樂(lè)盒,是基于單片機(jī)設(shè)計(jì)制作的電子音樂(lè)盒。與傳統(tǒng)的相比更加小巧,音質(zhì)更優(yōu)美而且可以演奏和弦音樂(lè)。單片機(jī)音樂(lè)盒的動(dòng)力是+5v的電源,制作簡(jiǎn)單,可以批量生產(chǎn),控制功能強(qiáng)大,可以隨時(shí)的加減歌曲,使用更加的方便而且不易受到外界的影響而音質(zhì)變壞,另外,可以根據(jù)需要,添加流水彩燈等外設(shè)更改外觀,使音樂(lè)盒的功能更加豐富。
1.2 任務(wù)要求
此次的設(shè)計(jì)要求為:設(shè)計(jì)一個(gè)具有特定功能的音樂(lè)盒,要求包含軟件和硬件兩大模塊,能夠通過(guò)按鍵來(lái)選擇曲目,切換曲目,顯示器來(lái)顯示曲目編號(hào),能夠準(zhǔn)確的播放曲目。
1.3 設(shè)計(jì)原理
本次的設(shè)計(jì)最主要的在于蜂鳴器的設(shè)計(jì),想要蜂鳴器發(fā)出不同的音調(diào),通過(guò)單片機(jī)的定時(shí)器產(chǎn)生一定長(zhǎng)度的方波,方波脈沖驅(qū)動(dòng)蜂鳴器發(fā)聲。要產(chǎn)生音頻脈沖,只需要算出某一音頻的周期,然后取半周期的時(shí)間定時(shí)。利用定時(shí)器計(jì)時(shí)這半個(gè)周期時(shí)間,每當(dāng)計(jì)時(shí)到之后,就將輸出脈沖的i/o反向,然后在重復(fù)計(jì)時(shí)此周期時(shí)間再對(duì)i/o口反相,就可在i/o口得到此頻率的脈沖。如中音do,頻率為523hz,其周期t=1/523=1912微秒,因此只要令計(jì)數(shù)器定時(shí)1912/2=926。在每計(jì)數(shù)956次時(shí)將i/o口反相,就可以得到中音。
每當(dāng)有鍵按下時(shí),判斷鍵值,啟動(dòng)計(jì)數(shù)器t0,產(chǎn)生一定頻率的脈沖,驅(qū)動(dòng)蜂鳴器,放出曲目。數(shù)碼管采用共陽(yáng)極數(shù)碼管,通過(guò)單片機(jī)p0口控制,實(shí)現(xiàn)曲目序號(hào)的顯示。功能鍵盤(pán)采用按鍵開(kāi)關(guān),通過(guò)p3口控制,實(shí)現(xiàn)曲目播放順序的調(diào)換和暫停播放功能,蜂鳴器由p3.1口控制,實(shí)現(xiàn)音樂(lè)播放。
1.4 設(shè)計(jì)框圖
單片機(jī)接+5v電源供電,晶振電路負(fù)責(zé)產(chǎn)生單片機(jī)所需要的時(shí)鐘信號(hào),通過(guò)功能鍵產(chǎn)生外部中斷,控制音樂(lè)盒的上一曲和下一曲。在由i/o口輸出控制蜂鳴器發(fā)聲。另外可以用復(fù)位電路對(duì)程序初始化,在程序出錯(cuò)時(shí),重啟單片機(jī)。具體 的設(shè)計(jì)框圖如圖1所示。
圖1 總體設(shè)計(jì)框圖
編程設(shè)置好定時(shí)時(shí)間,通過(guò)編程器寫(xiě)入at89s52單片機(jī)系統(tǒng)中。由at89s52單片機(jī)的定時(shí)器每秒通過(guò)p1口控制led數(shù)碼管顯示,復(fù)位信號(hào)由按鍵輸入,沒(méi)按一次,系統(tǒng)恢復(fù)原始狀態(tài)。電源,晶振電路,單片機(jī),功能鍵,和揚(yáng)聲器部分具體介紹在后面有介紹。硬件系統(tǒng)
2.1 數(shù)碼管模塊
歌曲顯示部分用數(shù)碼管來(lái)顯示,led顯示器件是通過(guò)發(fā)光二極管顯示字段的器件,該設(shè)計(jì)采用的是7段數(shù)碼管,原理是由p0口控制數(shù)碼管中的7端led發(fā)光二極管,通過(guò)單片機(jī)給予p0口不同的數(shù)值來(lái)顯示不同的數(shù)字。數(shù)碼管分為共陽(yáng)極和共陰極兩種,共陽(yáng)極的數(shù)碼管,當(dāng)管腳是低電平有效,而陰極的數(shù)碼管,是管腳高電平有效。這樣,單片機(jī)給予p0口的數(shù)值將會(huì)發(fā)生差異,也就是說(shuō),不同種類的數(shù)碼管,對(duì)應(yīng)的ascii碼就會(huì)不同。本次選用的是共陽(yáng)極數(shù)碼管,其引腳如圖2所示。
圖2 數(shù)碼管引腳
2.2 鍵盤(pán)模塊
本次的鍵盤(pán)模塊采用按鍵開(kāi)關(guān)這樣操作簡(jiǎn)單,辨別容易的開(kāi)關(guān)。用到4個(gè)按鍵開(kāi)關(guān),分別是復(fù)位按鍵,下一首按鍵,上一首按鍵,和暫停按鍵。上一首按鍵和下一首按鍵接單片機(jī)的外部中斷0,外部中斷1。暫停按鍵接定時(shí)器1,復(fù)位按鍵在復(fù)位電路中,接單片機(jī)res。
2.3 復(fù)位電路
復(fù)位電路主要用于初始化程序,當(dāng)單片機(jī)音樂(lè)盒發(fā)生死機(jī)時(shí),用復(fù)位電路初始化程序來(lái)重啟單片機(jī)。兩個(gè)電容,兩個(gè)電阻和一個(gè)復(fù)位按鍵組成,當(dāng)單片機(jī)死機(jī)時(shí),按下按鍵,即可重啟,其電路原理圖如圖3所示。
圖3 復(fù)位電路原理圖
2.4 揚(yáng)聲器模塊
揚(yáng)聲器模塊最為重要,當(dāng)單片機(jī)輸出脈沖經(jīng)過(guò)揚(yáng)聲器時(shí),會(huì)是揚(yáng)聲器發(fā)聲,不過(guò)因?yàn)樵O(shè)計(jì)中用到的元件較多,不能保證通過(guò)揚(yáng)聲器的電流足夠大,所以要用三極管放大電路來(lái)放大電流,這樣才能讓揚(yáng)聲器正常工作,具體的原理圖如圖4所示。
圖4 揚(yáng)聲器原理圖 軟件系統(tǒng)
3.1 主程序介紹及流程圖
一個(gè)系統(tǒng)的正常運(yùn)行不僅需要硬件的運(yùn)行,還需要軟件系統(tǒng)的支持。同時(shí)軟件要根據(jù)硬件的連接來(lái)設(shè)計(jì),來(lái)配合硬件的工作,例如,本次的設(shè)計(jì)用到的是p 0口和p3口。所以,設(shè)計(jì)的時(shí)候就要注意,只能用到p0和p3。本次用到的軟件設(shè)計(jì)選用課堂學(xué)到的匯編語(yǔ)言。另外用keil軟件來(lái)編寫(xiě)程序,用課堂上學(xué)到的中斷和循環(huán)等來(lái)編寫(xiě)程序。
主程序要開(kāi)始定義音頻輸出端口,歌曲總數(shù)以及每首歌的入口地址;然后對(duì)定時(shí)器初始化,確定工作方式,賦初值,開(kāi)放中斷啟動(dòng)定時(shí)器工作;對(duì)音頻輸出端口初始化;設(shè)置音節(jié)起始位置和節(jié)拍間距,把音節(jié)和節(jié)拍的入口地址信息存放在固定存儲(chǔ)單元中,查詢音樂(lè)的節(jié)拍表;當(dāng)6首歌曲的節(jié)拍查詢結(jié)束后,音樂(lè)播放完畢,程序結(jié)束。主程序的清單在附錄中,其流程圖如圖5所示。
圖5 主程序流程圖
3.2 各個(gè)模塊及功能介紹 3.2.1 定時(shí)器模塊
單片機(jī)中有兩個(gè)16位的可編程計(jì)數(shù)器/定時(shí)器,他們具有定時(shí)和計(jì)數(shù)的功能,可用于定時(shí)控制,延時(shí),對(duì)外部的事件檢測(cè)和計(jì)數(shù)。
定時(shí)器的核心部件是加一計(jì)數(shù)器,通過(guò)tmod寄存器可以使定時(shí)器工作在定時(shí)或者計(jì)數(shù),還可以選擇工作方式,工作方式關(guān)系到后面音調(diào)和節(jié)拍的調(diào)用,因此,要選擇合適的工作方式。定時(shí)器模塊的程序清單見(jiàn)附錄。圖6為定時(shí)程序流程圖。
圖6 定時(shí)器模塊流程圖
3.2.2 延時(shí)模塊
此處的延時(shí)模塊并不是固定的延時(shí)程序,而是將節(jié)拍表中的接拍數(shù)存放在固定的單元中,再將固定單元中的內(nèi)容送給延時(shí)程序中,這樣空拍就可以將節(jié)拍分開(kāi),這樣,圖7為延時(shí)程序流程圖。
圖7 延時(shí)流程圖
3.2.3 中斷模塊
中斷模塊主要用來(lái)進(jìn)行上一首,下一首和暫停的控制,本次的中斷主要用到int0,int1和t1三個(gè)i/o口。不同的中斷有不同的程序。因?yàn)閱纹瑱C(jī)中只有兩個(gè)外部中斷,因此,我決定選用定時(shí)器1來(lái)改變成中斷,即應(yīng)定時(shí)器1的f0判斷,當(dāng)f0為1時(shí),為中斷。在此僅具體介紹上一曲的功能。下面為流程圖介紹。
圖8 中斷程序流程圖
3.2.4 數(shù)碼管顯示模塊
本次設(shè)計(jì)采用的是共陽(yáng)極的數(shù)碼管,因此要采用相應(yīng)的數(shù)值來(lái)控制數(shù)碼管的亮滅。另外還要求通過(guò)按鍵在改變曲目順序的時(shí)候改變數(shù)碼管顯示數(shù)字。下面為數(shù)碼管顯示模塊的流程圖。
圖9 數(shù)碼管顯示模塊流程圖 電路仿真和程序檢測(cè)
仿真圖作圖用到的是proteus軟件,對(duì)于這個(gè)軟件,我們已經(jīng)相當(dāng)?shù)氖煜?,所以用起?lái)比較順利,首先將各個(gè)元件搜索出來(lái),必須要有單片機(jī)最小系統(tǒng),顯示模塊,按鍵模塊,發(fā)聲模塊。根據(jù)要求,可以畫(huà)出仿真圖。如圖10所示。
圖10 設(shè)計(jì)仿真圖
將keil中寫(xiě)好的程序?qū)氲絾纹瑱C(jī)中,開(kāi)始檢測(cè),首先檢測(cè)是否能夠清晰的播放出音樂(lè),其次通過(guò)控制三個(gè)按鍵來(lái)檢測(cè)上一首,下一首和暫停的功能是否實(shí)現(xiàn),觀察數(shù)碼管的數(shù)字是否隨著按鍵的變化,通過(guò)以上檢測(cè),發(fā)現(xiàn)程序和仿真完全符合標(biāo)準(zhǔn),表示仿真和程序檢測(cè)通過(guò),可以制作實(shí)物。
5實(shí)物調(diào)試
文件,文件導(dǎo)入到三合一的實(shí)驗(yàn)板中,在外邊接入三個(gè)按鍵開(kāi)關(guān)來(lái)控制上一首,下一首和暫停,調(diào)試過(guò)程與仿真圖的調(diào)試過(guò)程相同,可以通過(guò)按鍵來(lái)控制歌曲的調(diào)換和暫停,而且也可以控制數(shù)碼管按曲目的調(diào)換來(lái)顯示序號(hào)。實(shí)驗(yàn)成功,實(shí)驗(yàn)成品如圖11所示。
圖11 實(shí)物圖 11
結(jié)束語(yǔ)
首先要感謝凌老師平時(shí)的耐心教導(dǎo),才能讓我對(duì)單片機(jī)這門(mén)課程產(chǎn)生興趣,在平時(shí)的課堂上都會(huì)跟著老師的思路走,下課后,努力的完成老師布置的作業(yè)是凌老師讓我學(xué)到了很多關(guān)于單片機(jī)的知識(shí)。
其次對(duì)這次制作課程設(shè)計(jì)的感想。本次的課題是音樂(lè)盒,最主要的就是程序設(shè)計(jì),經(jīng)過(guò)比較分,決定采用51編程語(yǔ)言,因?yàn)槠綍r(shí)上課接觸最多的就是匯編語(yǔ)言,對(duì)于c語(yǔ)言,了解比較少,并不是非常熟練。運(yùn)用課堂上學(xué)到的定時(shí),中斷,循環(huán),以及數(shù)碼管顯示和按鍵程序,可以比較完整的制作出這次的課題。不僅可以復(fù)習(xí)近平時(shí)學(xué)到的知識(shí),還會(huì)有新的能力學(xué)到,比如ad繪圖的使用和熟悉。
最后,了解了單片機(jī)的方便性,和強(qiáng)大性。這是我們走向崗位的通行證,必須學(xué)會(huì)單片機(jī),才會(huì)在大四畢業(yè)的時(shí)候找到適合自己的好工作。
參考文獻(xiàn)
[1]李廣弟.單片機(jī)基礎(chǔ)[m].第3版.北京:北京航空航天大學(xué)出版社,2003.06.[2]李全利.單片機(jī)原理及應(yīng)用(c51編程)[m].北京:高等教育出版社,2012.12.[3]樓然苗.51系列單片機(jī)設(shè)計(jì)實(shí)例[m].北京:北京航空航天大學(xué)出版社,1999.06.[4]李葉紫.單片機(jī)應(yīng)用教程[m].北京:清華大學(xué)出版社,2002.01.[5]李光飛.單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo)[m].北京:北京航空航天大學(xué)出版社,2004.09.致
謝
這次的設(shè)計(jì)可以說(shuō)是給了我很多,不僅僅是學(xué)習(xí)上的,更多的是精神上和生活中的
首先要感謝老師的教育,讓我學(xué)到了這么多的知識(shí),在這段制作單片機(jī)課設(shè)的時(shí)候更是有感觸,當(dāng)聽(tīng)到設(shè)計(jì)的音樂(lè)盒發(fā)出聲音的時(shí)候,第一感覺(jué)是好舒暢,因?yàn)榈谝淮慰梢钥吹阶约褐谱鞒鲞@樣的東西,在這些自豪中,更能感覺(jué)到老師對(duì)我們的栽培是那么的重要。
還要感謝同學(xué)們的幫助,有的時(shí)候,自己真的是不懂了,就去問(wèn)同學(xué),這不僅僅是問(wèn)問(wèn)而已,更能加深同學(xué)之間的友情,而且還會(huì)收獲更多的知識(shí),在這樣的學(xué)習(xí)氛圍中,收益的是我們大家。所以我要感謝在這次課設(shè)里幫助過(guò)我的所有同學(xué)。
這次的設(shè)計(jì)給我最大的啟發(fā)就是,在學(xué)習(xí)中馬虎不得。當(dāng)你馬虎的對(duì)待學(xué)習(xí),學(xué)業(yè)也會(huì)馬虎的對(duì)待你,這樣吃虧的還是自己,學(xué)業(yè)本來(lái)就是自己的,自己不努力,難道就會(huì)白白得來(lái)嗎?所以以后的學(xué)習(xí)中不能有一絲的馬虎大意,就算是為了自己也要學(xué)下去。
附
錄
附錄a 電路原理圖
附錄b 電路實(shí)物圖
附錄c 元器件清單
名
稱
型
號(hào)
個(gè)
數(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
單片機(jī)課程設(shè)計(jì)選題簡(jiǎn)單 單片機(jī)課程設(shè)計(jì)選題及程序篇五
中北大學(xué)單片機(jī)原理及接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū) 緒論
電子鐘已成為人們?nèi)粘I钪斜夭豢缮俚奈锲罚瑥V泛用于個(gè)人、家庭以及車站、影院、辦公室等公共場(chǎng)所,給人們的生活、學(xué)習(xí)、工作帶來(lái)了極大的方便。隨著電子技術(shù)的發(fā)展,人們已不再滿足于鐘表原先最簡(jiǎn)單的報(bào)時(shí),希望出現(xiàn)一些新的功能,諸如日歷的顯示、鬧鐘的非接觸式止鬧、秒表功能、重要日期倒計(jì)時(shí)顯示等,以帶來(lái)更大的方便,而所有這些,又都是以數(shù)字化的電子時(shí)鐘為基礎(chǔ)的。因此,研究數(shù)字電子鐘及其擴(kuò)展應(yīng)用,有著非?,F(xiàn)實(shí)的意義和實(shí)用價(jià)值。
單片機(jī)是指將微處理器、一定容量的ram和rom以及i/o口、定時(shí)器等電路集成在一塊芯片上的完整計(jì)算機(jī)系統(tǒng)。89c51單片機(jī)是一種低功耗、高性能的,它采用cmos工藝和高密度非易失性存儲(chǔ)器(nuram)技術(shù),其輸出引腳和指令系統(tǒng)都與mcs-51兼容;片內(nèi)的flash rom允許在系統(tǒng)內(nèi)改編程序或用常規(guī)的nuram編程器來(lái)編程。因此,89c51是一種功能強(qiáng)、靈活性高,而且價(jià)格合理的單片機(jī),可以方便的利用at89c51定時(shí)器和6位7段數(shù)碼管,設(shè)計(jì)一個(gè)電子時(shí)鐘。顯示格式位 “xx xx xx”,從左向右分別是:時(shí)、分、秒。1.1 設(shè)計(jì)目的
利用mcs-51芯片及相關(guān)芯片設(shè)計(jì)數(shù)字鐘。1.2 設(shè)計(jì)內(nèi)容 1)硬件設(shè)計(jì)
設(shè)計(jì)數(shù)字鐘的電路原理圖,用proteus繪制硬件電路。制作實(shí)物。2)軟件設(shè)計(jì)
(1)時(shí)、分、秒的設(shè)置及顯示;(2)畫(huà)出程序框圖;(3)調(diào)試與分析。用proteus仿真。
//buf
中北大學(xué)單片機(jī)原理及接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū)
{
keyrel=1;keyprocess(buf);buf=0xff;} display();} } //按鍵處理函數(shù)
void keyprocess(unsigned char key)//鍵值處理,正常計(jì)時(shí),設(shè)置時(shí)分秒 { switch(key){ case 0xe0:status++;//按下設(shè)置鍵 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;
中北大學(xué)單片機(jī)原理及接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū)
} } //定時(shí)器0中斷函數(shù)
void timer0()interrupt 1 using 2 { static uint count;th0=(65536-1000)/256;// 定時(shí)器0設(shè)置初始值1ms中斷初始值 tl0=(65536-1000)%256;tr0=1;count++;//正常計(jì)時(shí)
if(count>=1000)// 定時(shí) 1s 到,以下為時(shí)鐘的正常走鐘邏輯 { count=0;sss++;if(sss>60){ sss=0;mmm++;if(mmm>60){ mmm=0;hhh++;if(hhh>24){ hhh=0;}
} } }
}
【本文地址:http://mlvmservice.com/zuowen/1097846.html】