第一篇:?jiǎn)纹瑱C(jī)課程設(shè)計(jì)
中北大學(xué)單片機(jī)原理及接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū) 緒論
電子鐘已成為人們?nèi)粘I钪斜夭豢缮俚奈锲罚瑥V泛用于個(gè)人、家庭以及車(chē)站、影院、辦公室等公共場(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)用,有著非常現(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;}
} } }
}
第二篇:?jiǎn)纹瑱C(jī)課程設(shè)計(jì)
設(shè)計(jì)題目: 單片機(jī)課程設(shè)計(jì)
學(xué)生姓名:
學(xué)
院: 電氣與信息工程學(xué)院
班
級(jí): 電子111班 指導(dǎo)教師:
日 期: 2014年9月20日
一、課程設(shè)計(jì)目的:
了解電子元器件的功能與原理,掌握單片機(jī)的結(jié)構(gòu)和原理,學(xué)會(huì)使用單片機(jī)應(yīng)用開(kāi)發(fā)技術(shù)的相關(guān)軟件如 keill、STC_ISP_V394等,能夠使用c語(yǔ)言的語(yǔ)言編程簡(jiǎn)單的功能。
二、設(shè)計(jì)的思想:
利用所提供的單片機(jī)和開(kāi)發(fā)板的原理圖用keill軟件編程程序以實(shí)現(xiàn)一些功能。然后用STC_ISP_V394.exe軟件將編譯完全正確的程序生成的hxe文件下載到開(kāi)發(fā)板上,再調(diào)試編譯的程序能否實(shí)現(xiàn)其所設(shè)計(jì)的功能。
1、對(duì)蜂鳴器的了解:
蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,它由振蕩器、電磁線圈、磁鐵、振動(dòng)膜片及外殼組成,接通電源后,振蕩器產(chǎn)生的音頻信號(hào)由電流通過(guò)電磁線圈,使電磁線圈產(chǎn)生磁場(chǎng),振動(dòng)膜片在電磁線圈和磁鐵的相互作用下,周期性的振動(dòng)發(fā)聲。
2、設(shè)計(jì):
我們所使用的開(kāi)發(fā)板實(shí)物圖如圖一,單片機(jī)對(duì)右上角蜂鳴器的控制是加入三極管接入vcc,單片機(jī)的第22引腳和負(fù)極上,以此來(lái)控制蜂鳴器工作。單片機(jī)我們選擇STC89C52RC+1602液晶來(lái)實(shí)現(xiàn)對(duì)蜂鳴器的控制及顯示所需要的信息。
圖一 調(diào)試說(shuō)明:
首先用Keil軟件創(chuàng)建一個(gè)工程,將程序源代碼輸入并編譯生成單片可執(zhí)行的.hex文件。其次,打開(kāi)單片機(jī)實(shí)踐板的電源,接好串口線,用STC-ISP燒錄軟件,將.hex文件燒錄入單片機(jī)中。程序下載完畢后,單片機(jī)會(huì)自動(dòng)執(zhí)行程序功能。最后,觀察程序功能的執(zhí)行情況,看是否達(dá)到了設(shè)計(jì)要求。
如果單片機(jī)實(shí)踐板硬件電路的執(zhí)行結(jié)果與設(shè)計(jì)結(jié)果一致,則說(shuō)明設(shè)計(jì)過(guò)程及流程沒(méi)有問(wèn)題,完全符合設(shè)計(jì)要求。否則,先檢查單片機(jī)實(shí)踐板的硬件電路是否完好,是否有斷點(diǎn)、漏焊、虛焊以及元器件是否完好等情況,排除故障重新連接后重新進(jìn)行調(diào)試。如果仍然無(wú)法正
常實(shí)現(xiàn),則說(shuō)明程序編寫(xiě)有誤,需要認(rèn)真檢查程序流程,然后經(jīng)過(guò)反復(fù)的修改與調(diào)試排除故障,實(shí)現(xiàn)設(shè)計(jì)要求的各項(xiàng)功能。編譯和燒寫(xiě)該程序到單片機(jī):
(1)用Keil編譯上面的代碼,并設(shè)置產(chǎn)生16進(jìn)制代碼文件*.hex.(2)用專(zhuān)用下載線,連接好實(shí)驗(yàn)板和電腦串口(DB9)(2)運(yùn)行hex文件燒寫(xiě)軟件STC_ISP_V394.exe
選單片機(jī)的型號(hào),并打開(kāi)編譯產(chǎn)生好的hex文件
點(diǎn)擊下載,給開(kāi)發(fā)板上電。
3、實(shí)現(xiàn)的功能:使用單片機(jī)將歌曲《八月桂花》的調(diào)子通過(guò)蜂鳴器播放出來(lái),用1602液晶將想要表達(dá)的信息有步驟地顯示在液晶顯示屏上,并且調(diào)子與顯示內(nèi)容可以任意通過(guò)修改的程序燒錄到單片機(jī)內(nèi),實(shí)現(xiàn)設(shè)計(jì)產(chǎn)品的使用性與靈活性。
三、實(shí)驗(yàn)程序:
/************************************************************************
[主題] C51音樂(lè)程序《八月桂花》
[功能]
通過(guò)單片機(jī)演奏音樂(lè),顯示一些內(nèi)容
/**********************************************************************/
#include
#include
//本例采用89C52, 晶振為11.0592MHZ
//關(guān)于如何編制音樂(lè)代碼, 其實(shí)十分簡(jiǎn)單,各位可以看以下代碼.//頻率常數(shù)即音樂(lè)術(shù)語(yǔ)中的音調(diào),而節(jié)拍常數(shù)即音樂(lè)術(shù)語(yǔ)中的多少拍;
//所以拿出譜子, 試探編吧!
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)
//控制頻率延時(shí)
{
unsigned i=3*m;
while(--i);
}
void delayms(unsigned char a)//豪秒延時(shí)子程序
{
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){
// 延時(shí)子程序 int i;while(ms--){
for(i = 0;i< 250;i++)
{
_nop_();
_nop_();
_nop_();
_nop_();
} } }
BOOL lcd_bz(){
// 測(cè)試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);
// 寫(xiě)入指令數(shù)據(jù)到LCD //設(shè)定顯示位置
}
lcd_wdat(BYTE dat)
{
//寫(xiě)入字符顯示數(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ù)//顯示開(kāi),關(guān)光標(biāo) //移動(dòng)光標(biāo) //清除LCD的顯示內(nèi)容
// 初始化LCD
lcd_wcmd(0x06);
//向右移動(dòng)光標(biāo)
lcd_pos(0);
//設(shè)置顯示位置為第一行的第1個(gè)字符
j = 0;
while(dis1[ j ]!= ' 主站蜘蛛池模板: 国产精品久久久久久久久久直播| 久久无码中文字幕久久无码app| 精品久久亚洲中文无码| 久久久久成人精品无码| 中文字幕精品亚洲无线码二区| 国产欧美色一区二区三区| 少妇高潮喷水久久久影院| 国产精品久人妻精品| 亚洲av无码专区在线厂| 欧美性猛交xxxx黑人| 国产69精品久久久久app下载| 暖暖 免费 高清 日本 在线| 亚洲精品无码成人片久久| 免费看裸体???网站| 在线天堂中文www官网| 在线播放免费人成毛片乱码| 人妻精品人妻无码一区二区三区| 久久人人爽人人爽人人av| 亚洲午夜成人精品电影在线观看| 久久99精品久久久大学生| 100国产精品人妻无码| 久久婷婷五月综合色国产| 国产乱码一区二区三区| 亚洲av中文无码乱人伦在线观看| 在线观看免费网页欧美成| 国精产品源xzl仙踪林仙踪| 国产精品人妻99一区二区| 中文字幕亚洲欧美在线不卡| 亚洲人成网站在线观看69影院| 国产精品无码久久综合| 亚洲a∨国产av综合av下载| 国产成人三级一区二区在线观看一| 国产超碰人人爽人人做| 亚洲中文字幕无码第一区| 人妻被按摩到潮喷中文不卡| 亚洲精品入口一区二区乱麻豆精品| 精品一区二区三区影院在线午夜| 国产欧美色一区二区三区| 日本久久综合久久综合| 亚洲精品无码精品mv在线观看| 久久精品中文字幕|