第一篇:單片機(jī)課程設(shè)計實(shí)施方案
2012年上期單片機(jī)課程設(shè)計實(shí)施方案
(電子系2009級電信專業(yè))
一、課程設(shè)計的目的和意義
本課程設(shè)計的開設(shè)是培養(yǎng)電子技術(shù)應(yīng)用性人才的必要途徑,是提高學(xué)生單片機(jī)技術(shù)應(yīng)用能力以及文字總結(jié)能力的綜合性訓(xùn)練環(huán)節(jié),是配合單片機(jī)課程內(nèi)容掌握、應(yīng)用的專門性實(shí)踐類課程。其要求在學(xué)完單片機(jī)原理課程之后綜合利用所學(xué)單片機(jī)及電子技術(shù)知識完成一個單片機(jī)應(yīng)用系統(tǒng)設(shè)計。該課程設(shè)計的主要任務(wù)是通過解決
一、兩個實(shí)際問題,鞏固和加深“單片機(jī)原理與應(yīng)用”課程中所學(xué)的理論知識和實(shí)驗(yàn)?zāi)芰Γ菊莆諉纹瑱C(jī)應(yīng)用電路的一般設(shè)計方法,提高電子電路的設(shè)計和實(shí)驗(yàn)?zāi)芰Γ由顚纹瑱C(jī)軟硬知識的理解,初步具備應(yīng)用單片機(jī)進(jìn)行設(shè)備技術(shù)改造、產(chǎn)品開發(fā)的能力,“學(xué)以致用”,為以后從事生產(chǎn)和科研工作打下一定的基礎(chǔ)。
二、課程設(shè)計的要求
單片機(jī)課程設(shè)計的主要內(nèi)容包括,理論設(shè)計、調(diào)試及寫出總結(jié)報告等。其中理論設(shè)計又包括選擇總體方案,硬件系統(tǒng)設(shè)計、軟件系統(tǒng)設(shè)計;硬件設(shè)計包括單元電路,選擇元器件及計算參數(shù)等;軟件設(shè)計包括模塊化層次結(jié)構(gòu)圖,程序流程圖。程序設(shè)計是課程設(shè)計的關(guān)鍵環(huán)節(jié),通過調(diào)試進(jìn)一步完善程序設(shè)計,使之達(dá)到課題所要求的指標(biāo),使理論設(shè)計更接近于實(shí)際產(chǎn)品。課程設(shè)計的最后要求是寫出設(shè)計總結(jié)報告,把理論設(shè)計內(nèi)容,調(diào)試的過程及性能指標(biāo)的測試結(jié)果進(jìn)行全面的總結(jié),把實(shí)踐內(nèi)容上升到理論高度。
三、課程設(shè)計方式
由指導(dǎo)教師下達(dá)設(shè)計任務(wù)(學(xué)生自選題目需要通過指導(dǎo)教師審核),由學(xué)生完成方案設(shè)計,硬件制作,軟件編制,系統(tǒng)調(diào)試,并撰寫設(shè)計報告。
四、課程設(shè)計選題
學(xué)生分組選擇設(shè)計題目,題目可由指導(dǎo)教師出題也可有學(xué)生自選題目,但設(shè)計題應(yīng)滿足如下原則:
1.完整性——相對獨(dú)立,自成系統(tǒng)。
2.全面性——涉及的內(nèi)容盡可能廣泛。
3.功能性——具備具體功能。
參考題目
1、多功能數(shù)字電子鐘設(shè)計
主要設(shè)計要求:能顯示時、分和秒,可通過按鍵設(shè)置分校時,可通過按鍵設(shè)置鬧鐘功能,且停鬧無須手工操作。
2、智能電風(fēng)扇控制系統(tǒng)
設(shè)計要求:電風(fēng)扇隨環(huán)境溫度的變化而自動變換檔位,實(shí)現(xiàn)“溫度高,風(fēng)力大,溫度低,風(fēng)力弱”的性能。通過鍵盤控制面板,用戶可以在一定范圍內(nèi)設(shè)置
電風(fēng)扇的最低工作溫度,當(dāng)溫度低于所設(shè)置溫度時,電風(fēng)扇將自動關(guān)閉,當(dāng)高于此溫度時電風(fēng)扇又將重新啟動。
3、計算器模擬系統(tǒng)
設(shè)計具體要求:要求模擬的計算器至少顯示8位數(shù)字,開機(jī)運(yùn)行時,最低位顯示為“0”,其余位全部不顯示;設(shè)計4×4鍵盤,分別表示0~
9、+、-、×、/、=和清零鍵CL,輸入的數(shù)字從設(shè)計的鍵盤輸入;可以對計算結(jié)果小于256的兩個無符號數(shù)進(jìn)行加、減、乘、除運(yùn)算,并顯示計算結(jié)果。
4、遙控音頻放大器設(shè)計
主要設(shè)計要求:實(shí)現(xiàn)紅外遙控調(diào)節(jié)音頻放大的音量,遙控、放音效果好
5、電子密碼鎖設(shè)計
主要設(shè)計要求:根據(jù)設(shè)定好的密碼,采用二個按鍵實(shí)現(xiàn)密碼的輸入功能,當(dāng)密碼輸入正確之后,鎖就打開,如果輸入的三次的密碼不正確,就鎖定按鍵30秒鐘,同時發(fā)現(xiàn)報警聲,直到?jīng)]有按鍵按下30秒鐘后,才打開按鍵鎖定功能;否則在30秒鐘內(nèi)仍有按鍵按下,就重新鎖定按鍵30秒時間并報警。在開鎖狀態(tài)下有修改密碼功能。
6、直流電機(jī)調(diào)速控制設(shè)計
主要設(shè)計要求:編程實(shí)現(xiàn)PWM控制電機(jī)轉(zhuǎn)速,有按鍵操控,并能顯示實(shí)時轉(zhuǎn)速。
7、步進(jìn)電機(jī)控制設(shè)計
主要設(shè)計要求:四位LED數(shù)碼管用于步數(shù)的顯示,設(shè)計4個按鍵接口用于加速、減速、正轉(zhuǎn)/反轉(zhuǎn)和啟動/停止的控制。轉(zhuǎn)速調(diào)節(jié)范圍為100步/秒―200步/秒―400步/秒―600步/秒―800步/秒-1000步/秒六個速度等級范圍。
8、信號發(fā)生器設(shè)計
主要設(shè)計要求:產(chǎn)生各類波形,有按鍵實(shí)現(xiàn)波形選擇、頻率及幅度控制。
9、數(shù)顯頻率計設(shè)計
利用單片機(jī)的內(nèi)部資源,測量外來信號頻率,有按鍵選擇頻段范圍的功能,能實(shí)時顯示數(shù)據(jù)。誤差不超過±1HZ。
10、超聲波測距設(shè)計
主要設(shè)計要求:實(shí)現(xiàn)0.5-2m的測距,實(shí)時顯示距離,誤差不超過±0.05m。
11、GPS定位顯示儀 主要設(shè)計要求:實(shí)現(xiàn)實(shí)時GPS經(jīng)緯度及時間顯示。
五、考核辦法及成績
1、考核辦法:理論設(shè)計方案,演示所設(shè)計的系統(tǒng),總成績35%;設(shè)計報告,占總成績35%;回答教師所提出的問題,占總成績20%;考勤情況,占總成績10%;課程設(shè)計報告寫作要求見附件一。
2、考核成績:分為優(yōu)、良、中、及格和不及格。
六、分組
2009級3人/小組,6小組/大組,共9大組。
第二篇:單片機(jī)課程設(shè)計
設(shè)計題目: 單片機(jī)課程設(shè)計
學(xué)生姓名:
學(xué)
院: 電氣與信息工程學(xué)院
班
級: 電子111班 指導(dǎo)教師:
日 期: 2014年9月20日
一、課程設(shè)計目的:
了解電子元器件的功能與原理,掌握單片機(jī)的結(jié)構(gòu)和原理,學(xué)會使用單片機(jī)應(yīng)用開發(fā)技術(shù)的相關(guān)軟件如 keill、STC_ISP_V394等,能夠使用c語言的語言編程簡單的功能。
二、設(shè)計的思想:
利用所提供的單片機(jī)和開發(fā)板的原理圖用keill軟件編程程序以實(shí)現(xiàn)一些功能。然后用STC_ISP_V394.exe軟件將編譯完全正確的程序生成的hxe文件下載到開發(fā)板上,再調(diào)試編譯的程序能否實(shí)現(xiàn)其所設(shè)計的功能。
1、對蜂鳴器的了解:
蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,它由振蕩器、電磁線圈、磁鐵、振動膜片及外殼組成,接通電源后,振蕩器產(chǎn)生的音頻信號由電流通過電磁線圈,使電磁線圈產(chǎn)生磁場,振動膜片在電磁線圈和磁鐵的相互作用下,周期性的振動發(fā)聲。
2、設(shè)計:
我們所使用的開發(fā)板實(shí)物圖如圖一,單片機(jī)對右上角蜂鳴器的控制是加入三極管接入vcc,單片機(jī)的第22引腳和負(fù)極上,以此來控制蜂鳴器工作。單片機(jī)我們選擇STC89C52RC+1602液晶來實(shí)現(xiàn)對蜂鳴器的控制及顯示所需要的信息。
圖一 調(diào)試說明:
首先用Keil軟件創(chuàng)建一個工程,將程序源代碼輸入并編譯生成單片可執(zhí)行的.hex文件。其次,打開單片機(jī)實(shí)踐板的電源,接好串口線,用STC-ISP燒錄軟件,將.hex文件燒錄入單片機(jī)中。程序下載完畢后,單片機(jī)會自動執(zhí)行程序功能。最后,觀察程序功能的執(zhí)行情況,看是否達(dá)到了設(shè)計要求。
如果單片機(jī)實(shí)踐板硬件電路的執(zhí)行結(jié)果與設(shè)計結(jié)果一致,則說明設(shè)計過程及流程沒有問題,完全符合設(shè)計要求。否則,先檢查單片機(jī)實(shí)踐板的硬件電路是否完好,是否有斷點(diǎn)、漏焊、虛焊以及元器件是否完好等情況,排除故障重新連接后重新進(jìn)行調(diào)試。如果仍然無法正
常實(shí)現(xiàn),則說明程序編寫有誤,需要認(rèn)真檢查程序流程,然后經(jīng)過反復(fù)的修改與調(diào)試排除故障,實(shí)現(xiàn)設(shè)計要求的各項功能。編譯和燒寫該程序到單片機(jī):
(1)用Keil編譯上面的代碼,并設(shè)置產(chǎn)生16進(jìn)制代碼文件*.hex.(2)用專用下載線,連接好實(shí)驗(yàn)板和電腦串口(DB9)(2)運(yùn)行hex文件燒寫軟件STC_ISP_V394.exe
選單片機(jī)的型號,并打開編譯產(chǎn)生好的hex文件
點(diǎn)擊下載,給開發(fā)板上電。
3、實(shí)現(xiàn)的功能:使用單片機(jī)將歌曲《八月桂花》的調(diào)子通過蜂鳴器播放出來,用1602液晶將想要表達(dá)的信息有步驟地顯示在液晶顯示屏上,并且調(diào)子與顯示內(nèi)容可以任意通過修改的程序燒錄到單片機(jī)內(nèi),實(shí)現(xiàn)設(shè)計產(chǎn)品的使用性與靈活性。
三、實(shí)驗(yàn)程序:
/************************************************************************
[主題] C51音樂程序《八月桂花》
[功能]
通過單片機(jī)演奏音樂,顯示一些內(nèi)容
/**********************************************************************/
#include
#include
//本例采用89C52, 晶振為11.0592MHZ
//關(guān)于如何編制音樂代碼, 其實(shí)十分簡單,各位可以看以下代碼.//頻率常數(shù)即音樂術(shù)語中的音調(diào),而節(jié)拍常數(shù)即音樂術(shù)語中的多少拍;
//所以拿出譜子, 試探編吧!
unsigned char i=0;sbit Beep = P2^7;
unsigned char p,m;
//m為頻率常數(shù)變量
unsigned char n=0;//n為節(jié)拍常數(shù)變量
unsigned char code music_tab[] ={
0x18, 0x30, 0x1C , 0x10, //格式為: 頻率常數(shù), 節(jié)拍常數(shù), 頻率常數(shù), 節(jié)拍常數(shù),0x20, 0x40, 0x1C , 0x10,0x18, 0x10, 0x20 , 0x10,0x1C, 0x10, 0x18 , 0x40,0x1C, 0x20, 0x20 , 0x20,0x1C, 0x20, 0x18 , 0x20,0x20, 0x80, 0xFF , 0x20,0x30, 0x1C, 0x10 , 0x18,0x20, 0x15, 0x20 , 0x1C,0x20, 0x20, 0x20 , 0x26,0x40, 0x20, 0x20 , 0x2B,0x20, 0x26, 0x20 , 0x20,0x20, 0x30, 0x80 , 0xFF,0x20, 0x20, 0x1C , 0x10,0x18, 0x10, 0x20 , 0x20,0x26, 0x20, 0x2B , 0x20,0x30, 0x20, 0x2B , 0x40,0x20, 0x20, 0x1C , 0x10,0x18, 0x10, 0x20 , 0x20,0x26, 0x20, 0x2B , 0x20,0x30, 0x20, 0x2B , 0x40,0x20, 0x30, 0x1C , 0x10,0x18, 0x20, 0x15 , 0x20,0x1C, 0x20, 0x20 , 0x20,0x26, 0x40, 0x20 , 0x20,0x2B, 0x20, 0x26 , 0x20,0x20, 0x20, 0x30 , 0x80,0x20, 0x30, 0x1C , 0x10,0x20, 0x10, 0x1C , 0x10,0x20, 0x20, 0x26 , 0x20,0x2B, 0x20, 0x30 , 0x20,0x2B, 0x40, 0x20 , 0x15,0x1F, 0x05, 0x20 , 0x10,0x1C, 0x10, 0x20 , 0x20,0x26, 0x20, 0x2B , 0x20,0x30, 0x20, 0x2B , 0x40,0x20, 0x30, 0x1C , 0x10,0x18, 0x20, 0x15 , 0x20,0x1C, 0x20, 0x20 , 0x20,0x26, 0x40, 0x20 , 0x20,0x2B, 0x20, 0x26 , 0x20,0x20, 0x20, 0x30 , 0x30,0x20, 0x30, 0x1C , 0x10,0x18, 0x40, 0x1C , 0x20,0x20, 0x20, 0x26 , 0x40,0x13, 0x60, 0x18 , 0x20,0x15, 0x40, 0x13 , 0x40,0x18, 0x80, 0x00
};
void int0()interrupt 1
//采用中斷0 控制節(jié)拍
{ TH0=0xd8;
TL0=0xef;
n--;
}
void delay(unsigned char m)
//控制頻率延時
{
unsigned i=3*m;
while(--i);
}
void delayms(unsigned char a)//豪秒延時子程序
{
while(--a);
//采用while(--a)不要采用while(a--);各位可編譯一下看看匯編結(jié)果就知道了!
}
typedef unsigned char BYTE;typedef bit BOOL;
sbit LCD_RS = P2^0;
sbit LCD_RW = P2^1;sbit LCD_EP = P2^2;
BYTE code dis1[] = {“
WLCOME TO
”};BYTE code dis2[] = {“
DanPianJi ”};BYTE code dis3[] = {“
111iZnaiD
”};BYTE code dis4[] = {“
eiXeiX ”};
delays(int ms){
// 延時子程序 int i;while(ms--){
for(i = 0;i< 250;i++)
{
_nop_();
_nop_();
_nop_();
_nop_();
} } }
BOOL lcd_bz(){
// 測試LCD忙碌狀態(tài) BOOL result;LCD_RS = 0;LCD_RW = 1;LCD_EP = 1;_nop_();_nop_();_nop_();_nop_();result =(BOOL)(P0 & 0x80);LCD_EP = 0;return result;}
lcd_wcmd(BYTE cmd){
while(lcd_bz());LCD_RS = 0;LCD_RW = 0;LCD_EP = 0;_nop_();_nop_();P0 = cmd;_nop_();_nop_();_nop_();_nop_();LCD_EP = 1;_nop_();_nop_();_nop_();_nop_();LCD_EP = 0;
}
lcd_pos(BYTE pos){
lcd_wcmd(pos | 0x80);
// 寫入指令數(shù)據(jù)到LCD //設(shè)定顯示位置
}
lcd_wdat(BYTE dat)
{
//寫入字符顯示數(shù)據(jù)到LCD while(lcd_bz());LCD_RS = 1;LCD_RW = 0;LCD_EP = 0;P0 = dat;_nop_();_nop_();_nop_();_nop_();LCD_EP = 1;_nop_();_nop_();_nop_();_nop_();LCD_EP = 0;}
lcd_init(){
lcd_wcmd(0x38);
delays(1);lcd_wcmd(0x0c);
delays(1);lcd_wcmd(0x06);
delays(1);lcd_wcmd(0x01);
delays(1);}
void main()
{
BYTE j;
lcd_init();
delays(10);
//LCD初始化設(shè)定
//16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)//顯示開,關(guān)光標(biāo) //移動光標(biāo) //清除LCD的顯示內(nèi)容
// 初始化LCD
lcd_wcmd(0x06);
//向右移動光標(biāo)
lcd_pos(0);
//設(shè)置顯示位置為第一行的第1個字符
j = 0;
while(dis1[ j ]!= '