久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

單片機課程設計

時間:2019-05-12 15:17:38下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《單片機課程設計》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《單片機課程設計》。

第一篇:單片機課程設計

設計題目: 單片機課程設計

學生姓名:

院: 電氣與信息工程學院

級: 電子111班 指導教師:

日 期: 2014年9月20日

一、課程設計目的:

了解電子元器件的功能與原理,掌握單片機的結構和原理,學會使用單片機應用開發技術的相關軟件如 keill、STC_ISP_V394等,能夠使用c語言的語言編程簡單的功能。

二、設計的思想:

利用所提供的單片機和開發板的原理圖用keill軟件編程程序以實現一些功能。然后用STC_ISP_V394.exe軟件將編譯完全正確的程序生成的hxe文件下載到開發板上,再調試編譯的程序能否實現其所設計的功能。

1、對蜂鳴器的了解:

蜂鳴器是一種一體化結構的電子訊響器,采用直流電壓供電,它由振蕩器、電磁線圈、磁鐵、振動膜片及外殼組成,接通電源后,振蕩器產生的音頻信號由電流通過電磁線圈,使電磁線圈產生磁場,振動膜片在電磁線圈和磁鐵的相互作用下,周期性的振動發聲。

2、設計:

我們所使用的開發板實物圖如圖一,單片機對右上角蜂鳴器的控制是加入三極管接入vcc,單片機的第22引腳和負極上,以此來控制蜂鳴器工作。單片機我們選擇STC89C52RC+1602液晶來實現對蜂鳴器的控制及顯示所需要的信息。

圖一 調試說明:

首先用Keil軟件創建一個工程,將程序源代碼輸入并編譯生成單片可執行的.hex文件。其次,打開單片機實踐板的電源,接好串口線,用STC-ISP燒錄軟件,將.hex文件燒錄入單片機中。程序下載完畢后,單片機會自動執行程序功能。最后,觀察程序功能的執行情況,看是否達到了設計要求。

如果單片機實踐板硬件電路的執行結果與設計結果一致,則說明設計過程及流程沒有問題,完全符合設計要求。否則,先檢查單片機實踐板的硬件電路是否完好,是否有斷點、漏焊、虛焊以及元器件是否完好等情況,排除故障重新連接后重新進行調試。如果仍然無法正

常實現,則說明程序編寫有誤,需要認真檢查程序流程,然后經過反復的修改與調試排除故障,實現設計要求的各項功能。編譯和燒寫該程序到單片機:

(1)用Keil編譯上面的代碼,并設置產生16進制代碼文件*.hex.(2)用專用下載線,連接好實驗板和電腦串口(DB9)(2)運行hex文件燒寫軟件STC_ISP_V394.exe

選單片機的型號,并打開編譯產生好的hex文件

點擊下載,給開發板上電。

3、實現的功能:使用單片機將歌曲《八月桂花》的調子通過蜂鳴器播放出來,用1602液晶將想要表達的信息有步驟地顯示在液晶顯示屏上,并且調子與顯示內容可以任意通過修改的程序燒錄到單片機內,實現設計產品的使用性與靈活性。

三、實驗程序:

/************************************************************************

[主題] C51音樂程序《八月桂花》

[功能]

通過單片機演奏音樂,顯示一些內容

/**********************************************************************/

#include

#include

//本例采用89C52, 晶振為11.0592MHZ

//關于如何編制音樂代碼, 其實十分簡單,各位可以看以下代碼.//頻率常數即音樂術語中的音調,而節拍常數即音樂術語中的多少拍;

//所以拿出譜子, 試探編吧!

unsigned char i=0;sbit Beep = P2^7;

unsigned char p,m;

//m為頻率常數變量

unsigned char n=0;//n為節拍常數變量

unsigned char code music_tab[] ={

0x18, 0x30, 0x1C , 0x10, //格式為: 頻率常數, 節拍常數, 頻率常數, 節拍常數,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 控制節拍

{ 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--);各位可編譯一下看看匯編結果就知道了!

}

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忙碌狀態 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);

// 寫入指令數據到LCD //設定顯示位置

}

lcd_wdat(BYTE dat)

{

//寫入字符顯示數據到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初始化設定

//16*2顯示,5*7點陣,8位數據//顯示開,關光標 //移動光標 //清除LCD的顯示內容

// 初始化LCD

lcd_wcmd(0x06);

//向右移動光標

lcd_pos(0);

//設置顯示位置為第一行的第1個字符

j = 0;

while(dis1[ j ]!= '

主站蜘蛛池模板: 一本到在线观看视频| 欧洲丰满少妇做爰视频爽爽| 两个人看的www视频免费完整版| 亚洲人成无码区在线观看| 国产精品久久久久成人| 中文字幕乱码亚洲∧v日本| 波多野结衣网站| 久久精品国产亚洲精品2020| 亚洲无码国产精品| 白嫩少妇激情无码| 国产色无码精品视频免费| 亚洲一区av无码少妇电影| 麻豆国产av穿旗袍强迫女佣人| 国产女人18毛片水真多1| 久久99精品免费一区二区| 国产精品天干天干| 久草热久草热线频97精品| 人妻无码视频一区二区三区| 欧美成人aaa片一区国产精品| 国产精品成人无码a片在线看| 亚洲精品久久久无码av片软件| 看av免费毛片手机播放| 醉酒后少妇被疯狂内射视频| 性人久久久久| av在线网站无码不卡的| 自拍偷自拍亚洲精品播放| 久久亚洲中文字幕精品有坂深雪| 丝袜 亚洲 另类 欧美 变态| 亚洲成av不卡无码无码不卡| 亚洲精品不卡无码福利在线观看| 天天躁日日躁狠狠躁av麻豆男男| 狠狠热精品免费视频| 亚洲日韩性欧美中文字幕| 日本乱人伦aⅴ精品潮喷| 国产激情久久久久久熟女老人| 国内精品久久久久影院薰衣草| 国产又色又爽又黄刺激视频| 无码国产色欲xxxxx视频| 99精品产国品一二三产区| 欧美日韩国产成人高清视频| 国产成人av一区二区三区|