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

基于AT89C51單片機(jī)的電子計(jì)算器的課程設(shè)計(jì)[5篇]

時(shí)間:2019-05-12 05:28:48下載本文作者:會(huì)員上傳
簡(jiǎn)介:寫寫幫文庫小編為你整理了多篇相關(guān)的《基于AT89C51單片機(jī)的電子計(jì)算器的課程設(shè)計(jì)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《基于AT89C51單片機(jī)的電子計(jì)算器的課程設(shè)計(jì)》。

第一篇:基于AT89C51單片機(jī)的電子計(jì)算器的課程設(shè)計(jì)

C51單片機(jī)電子計(jì)算器課程設(shè)計(jì)

一.課程設(shè)計(jì)背景

當(dāng)今時(shí)代,是一個(gè)新技術(shù)層出不窮的時(shí)代。在電子領(lǐng)域,尤其是自動(dòng)化智能控制領(lǐng)域,傳統(tǒng)的分立元件或數(shù)字邏輯電路構(gòu)成的控制系統(tǒng)正以前所未見的速度被單片機(jī)智能控制系統(tǒng)所取代。單片機(jī)具有體積小、功能強(qiáng)、成本低、應(yīng)用面廣等優(yōu)點(diǎn),可以說,智能控制與自動(dòng)控制的核心就是單片機(jī)。目前,一個(gè)學(xué)習(xí)與應(yīng)用單片機(jī)的高潮正在工廠、學(xué)校及企事業(yè)單位大規(guī)模地興起。過去習(xí)慣于傳統(tǒng)電子領(lǐng)域的工程師、技術(shù)員正面臨著全新的挑戰(zhàn),如不能在較短時(shí)間內(nèi)學(xué)會(huì)單片機(jī),勢(shì)必會(huì)被時(shí)代所遺棄,只有勇敢地面對(duì)現(xiàn)實(shí),挑戰(zhàn)自我,加強(qiáng)學(xué)習(xí),爭(zhēng)取在較短的時(shí)間內(nèi)將單片機(jī)技術(shù)融會(huì)貫通,才能跟上時(shí)代的步伐。

它所給人帶來的方便也是不可否定的,它在一塊芯片內(nèi)集成了計(jì)算機(jī)的各種功能部件,構(gòu)成一種單片式的微型計(jì)算機(jī)。20世紀(jì)80年代以來,國際上單片機(jī)的發(fā)展迅速,其產(chǎn)品之多令人目不暇接,單片機(jī)應(yīng)用不斷深入,新技術(shù)層出不窮。20世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展,在其推動(dòng)下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會(huì)的各個(gè)領(lǐng)域,有力地推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程度的提高,同時(shí)也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。本設(shè)計(jì)是由單片機(jī)實(shí)現(xiàn)的模擬計(jì)算器,它不僅能實(shí)現(xiàn)數(shù)據(jù)的加減乘除運(yùn)算,而且還能使數(shù)據(jù)及其計(jì)算結(jié)果在數(shù)碼管上顯示出來,能夠?qū)崿F(xiàn)0-256的數(shù)字四則運(yùn)算。本設(shè)計(jì)是用單片機(jī)AT89C51來控制,采用共陽極數(shù)碼顯示,軟件部分是由C語言來編寫的。設(shè)計(jì)任務(wù)

二、元器件清單及簡(jiǎn)介

89c51型芯片 一片

排阻 兩個(gè)

晶振12MHZ 一個(gè)

電容22uf 兩個(gè)

面包板 三個(gè)

導(dǎo)線 若干

三、設(shè)計(jì)原理及分析

根據(jù)功能和指標(biāo)要求,本系統(tǒng)選用MCS 51 單片機(jī)為主控機(jī)。通過擴(kuò)展必要的外圍接口電路,實(shí)現(xiàn)對(duì)計(jì)算器的設(shè)計(jì)。具體設(shè)計(jì)考慮如下: ①由于要設(shè)計(jì)的是簡(jiǎn)單的計(jì)算器,可以進(jìn)行四則運(yùn)算,對(duì)數(shù)字的大小范圍要求不高,故我們采用可以進(jìn)行四位數(shù)字的運(yùn)算,選用8 個(gè)LED 數(shù)碼管顯示數(shù)據(jù)和結(jié)果。

②另外鍵盤包括數(shù)字鍵(0~9)、符號(hào)鍵(+、-、×、÷)、清除鍵和等號(hào)鍵,故只需要16 個(gè)按鍵即可。系統(tǒng)模塊圖:

2.1 輸入模塊:

鍵盤掃描計(jì)算器輸入數(shù)字和其他功能按鍵要用到很多按鍵,如果采用獨(dú)立按鍵的方式,在這種情況下,編程會(huì)很簡(jiǎn)單,但是會(huì)占用大量的I/O 口資源,因此在很多情況下都不采用這種方式。為此,我們引入了矩陣鍵盤的應(yīng)用,采用四條I/O 線作為行線,四條I/O 線作為列線組成鍵盤。在行線和列線的每個(gè)交叉點(diǎn)上設(shè)置一個(gè)按鍵。這樣鍵盤上按鍵的個(gè)數(shù)就為4×4個(gè)。這種行列式鍵盤結(jié)構(gòu)能有效地提高單片機(jī)系統(tǒng)中I/O 口的利用率。矩陣鍵盤的工作原理:計(jì)算器的鍵盤布局如圖所示:一般有16 個(gè)鍵組成,在單片機(jī)中正好可以用一個(gè)P 口實(shí)現(xiàn)16 個(gè)按鍵功能,這種形式在單片機(jī)系統(tǒng)中也最常用。

以上鍵盤從上到下依次編號(hào)為1,2,3,4,D,C,B,A 1

由圖 3 矩陣鍵盤內(nèi)部電路圖可以知道,當(dāng)無按鍵閉合時(shí),P10~P13 與P14~P17 之間開路。當(dāng)有鍵閉合時(shí),與閉合鍵相連的兩條I/O 口線之間短路。判斷有無按鍵按下的方法是:第一步,置列線P14~P17 為輸入狀態(tài),從行線P10~P13 輸出低電平,讀入列線數(shù)據(jù),若某一列線為低電平,則該列線上有鍵閉合。第二步,行線輪流輸出低電平,從列線P14~P17 讀入數(shù)據(jù),若有某一列為低電平,則對(duì)應(yīng)行線上有鍵按下。綜合一二兩步的結(jié)果,可確定按鍵編號(hào)。但是鍵閉合一次只能進(jìn)行一次鍵功能操作,因此須等到按鍵釋放后,再進(jìn)行鍵功能操作,否則按一次鍵,有可能會(huì)連續(xù)多次進(jìn)行同樣的鍵操作。2.2 運(yùn)算模塊:(單片機(jī)控制)AT89C51 單片機(jī)是在一塊芯片中集成了CPU、RAM、ROM、定時(shí)器/計(jì)數(shù)器和多功能I/O等一臺(tái)計(jì)算機(jī)所需要的基本功能部件。如果按功能劃分,它由如下功能部件組成,即微處理器(CPU)、數(shù)據(jù)存儲(chǔ)器(RAM)、程序存儲(chǔ)器(ROM/EPROM)、并行I/O 口、串行口、定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)及特殊功能寄存器(SFR)。[3][5]單片機(jī)是靠程序運(yùn)行的,并且可以修改。通過不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨(dú)特的一些功能,通過使用單片機(jī)編寫的程序可以實(shí)現(xiàn)高智能,高效率,以及高可靠性!因此我們采用單片機(jī)作為計(jì)算器的主要功能部件,可以進(jìn)行很快地實(shí)現(xiàn)運(yùn)算功能。2.3 顯示模塊:

LED 顯示發(fā)光二極管LED 是單片機(jī)應(yīng)用系統(tǒng)中的一宗簡(jiǎn)單而常用的輸出設(shè)備,其在系統(tǒng)中的主要作用是顯示單片機(jī)的輸出數(shù)據(jù)、狀態(tài)等。因而作為典型的外圍器件,LED 顯示單元是反映系統(tǒng)輸出和操作輸入的有效器件。LED 具備數(shù)字接口可以方便的和大年紀(jì)系統(tǒng)連接;它的優(yōu)點(diǎn)是價(jià)格低,壽命長(zhǎng),對(duì)電壓電流的要求低及容易實(shí)現(xiàn)多路等,因而在單片機(jī)應(yīng)用系統(tǒng)中獲得了廣泛的應(yīng)用。[2][4]通常的數(shù)碼顯示器是由7 段條形的LED 組成(如圖4 所示),點(diǎn)亮適當(dāng)?shù)淖侄危涂娠@示出不同的數(shù)字。我們采用8 段數(shù)碼管,其中位于顯示器右下角的LED 作小數(shù)點(diǎn)用。LED 顯示器有兩種不同的形式:共陰極和共陽極。本次設(shè)計(jì)采用共陰極接法(如圖5所示)。

3、軟件設(shè)計(jì)

在程序設(shè)計(jì)方法上,模塊化程序設(shè)計(jì)是單片機(jī)應(yīng)用中最常用的程序設(shè)計(jì)方法。設(shè)計(jì)的中心思想是把一個(gè)復(fù)雜應(yīng)用程序按整體功能劃分成若干相對(duì)獨(dú)立的程序模塊,各模塊可以單獨(dú)設(shè)計(jì)、編程和調(diào)試,然后組合起來。這種方法便于設(shè)計(jì)和調(diào)試,容易實(shí)現(xiàn)多個(gè)程序共存,但各個(gè)模塊之間的連接有一定的難度。根據(jù)需要我們可以采用自上而下的程序設(shè)計(jì)方法,此方法先從主程序開始設(shè)計(jì),然后再編制各從屬程序和子程序,層層細(xì)化逐步求精,最終完成一個(gè)復(fù)雜程序的設(shè)計(jì)。這種方法比較符合人們的日常思維,缺點(diǎn)是一級(jí)的程序錯(cuò)誤會(huì)對(duì)整個(gè)程序產(chǎn)生影響。功能流程圖如下:

4、硬件原理 以下為簡(jiǎn)易計(jì)算器的總體電路圖

加運(yùn)算:

減運(yùn)算:

乘運(yùn)算:

除運(yùn)算:

清零: 四.總結(jié)

通過此次單片機(jī)實(shí)訓(xùn)設(shè)計(jì),我們學(xué)到了很多東西,在器件的了解和器件選擇上有個(gè)明確的認(rèn)識(shí),并在程序的設(shè)計(jì),及理論在實(shí)踐反面的運(yùn)用能力有巨大的提高。

這次單片機(jī)課程設(shè)計(jì)由我們六位同學(xué)經(jīng)過一周努力設(shè)計(jì)得到。軟件的編程要我們不斷的調(diào)試,最終我們終于完成了單片機(jī)實(shí)訓(xùn)課程設(shè)計(jì),很高興它能按著設(shè)計(jì)思想與要求運(yùn)動(dòng)起來。

當(dāng)然,這其中也有很多的問題。第一、不夠細(xì)心,由于對(duì)課本理論的不熟悉導(dǎo)致的編程錯(cuò)誤,對(duì)于器件的實(shí)際情況的不了解,理論與實(shí)踐的差距導(dǎo)致我們?cè)谠O(shè)計(jì)實(shí)際電路時(shí)出現(xiàn)了很多錯(cuò)誤,使得實(shí)驗(yàn)不能一次通過。第二、是在學(xué)習(xí)態(tài)度上,這次課程設(shè)計(jì)是對(duì)我們的學(xué)習(xí)態(tài)度的一次體驗(yàn)。對(duì)于這次單片機(jī)綜合課程實(shí)習(xí),我們的第一大心得體會(huì)就是作為一名工程技術(shù)人員,要求具備的首要素質(zhì)絕對(duì)應(yīng)該是嚴(yán)謹(jǐn),這次的課程設(shè)計(jì)我們所遇到的問題多半是由于我們不夠嚴(yán)謹(jǐn)。第三、在做人上,我們認(rèn)識(shí)到,無論做什么事情,只要你足夠堅(jiān)強(qiáng),有足夠的毅力和決心,有足夠的挑戰(zhàn)困難的勇氣,就沒什么辦不到的。還有就是團(tuán)隊(duì)的合作精神。

在這次難得的課程設(shè)計(jì)過程中我們鍛煉了自己的思考能力和動(dòng)手能力,加強(qiáng)了我們思考問題的完整性和實(shí)際生活聯(lián)系的可行性。在方案設(shè)計(jì)選擇和芯片的選擇上,培養(yǎng)了我們綜合應(yīng)用單片機(jī)的能力,對(duì)單片機(jī)的各個(gè)管腳的功能也有了進(jìn)一步的認(rèn)識(shí)。還鍛煉我們個(gè)人的查閱技術(shù)資料的能力,動(dòng)手能力,發(fā)現(xiàn)問題、解決問題的能力。

五.參考文獻(xiàn)

《單片機(jī)原理及應(yīng)用》 張毅剛 高等教育出版社

《MCS—51單片機(jī)應(yīng)用設(shè)計(jì)》 張毅剛 哈爾濱工業(yè)大學(xué)出版社 《MCS—51系列單片機(jī)實(shí)用接口技術(shù)》 李華 北京航空航天大學(xué)出版社 《單片機(jī)應(yīng)用技術(shù)選集》 何立民 北京航空航天大學(xué)出版社 《單片機(jī)原理及其接口技術(shù)》 胡漢才 《數(shù)碼管顯示驅(qū)動(dòng)和鍵盤掃描控制器CH451及其應(yīng)用》

清華大學(xué)出版社 施隆照 /*********************************************** **實(shí)現(xiàn)說明:

1:變量flag_fuhao為鍵入+、-、*、/運(yùn)算符標(biāo)志

(即當(dāng)前一個(gè)鍵值為+、-、*、/運(yùn)算符時(shí),flag_fuhao為1,其他鍵值則flag_fuhao置零,其用在顯示時(shí))

2:變量flag_shu數(shù)輸入情況,flag_shu為0時(shí),輸入的符號(hào)無效(flag_shu為2時(shí),變量fuhao更新為新鍵值)

*********************************************/ #include #define uchar unsigned char #define uint unsigned int #define duan P0//數(shù)碼管顯示段選定義 #define wei P2//數(shù)碼管顯示位選定義 #define key P3//鍵盤接口定義

sbit OFF = P1^0;//關(guān)機(jī)鍵定義

float shu1,shu2;//進(jìn)行運(yùn)算的兩個(gè)變量數(shù) uchar num;////鍵盤掃描返回值

char flag1,flag_shu,flag_fuhao,fuhao,newkey,update;

//flag1開機(jī)標(biāo)志newkey新按鍵標(biāo)志,fuhao運(yùn)算符,update表示等于號(hào) //之后緊接著輸入的是數(shù)的話則清零shu1

char key_shu;//按鍵值 char ge=0xdf;//char code Wela[]={0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//六位數(shù)碼管的位選

unsigned char code Duan[]={0x3f,0x06,0x5b, //

0 1 2 0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};// 3 4 5 6 7 8 9 無顯示

共陰極數(shù)碼管

// 函數(shù)聲明

uchar keyscan();//鍵盤掃描函數(shù)

void display(float);//數(shù)碼管顯示函數(shù)

void delay(uint i)//延時(shí)函數(shù) {

while(i--);}

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

主函數(shù)

************************************************/ void main(){

flag1=0;//標(biāo)志關(guān)機(jī)

while(1){

if(keyscan()==15)//開機(jī)檢測(cè)

{

flag1=1;//標(biāo)志開機(jī)

shu1=shu2=fuhao=flag_shu=newkey=0;//初始化變量

while(flag1)//判斷是否已開機(jī)

{

if(!flag_fuhao)

display(shu1);//如果輸入的不是

else

display(shu2);

key_shu=keyscan();

if(newkey==1)//有新鍵值

{

if(key_shu==15)//按下ON/C鍵,清零

{

flag_fuhao=update=0;

shu1=shu2=fuhao=flag_shu=newkey=0;

}

else if(key_shu==14&&flag_shu==1&&fuhao)//按下“=”

{

switch(fuhao)

{

case 10:shu1=shu2+shu1;break;

case 11:shu1=shu2-shu1;break;

case 12:shu1=shu2*shu1;break;

case 13:shu1=shu2/shu1;break;

}

flag_fuhao=0;

fuhao=0;

update=1;

} 10

else if((key_shu>=0)&&(key_shu<=9))//按下數(shù)字鍵

{

if(update)

shu1=0;

if(shu1<100000)

{

shu1=key_shu+shu1*10;

flag_shu=1;

}

update=0;

flag_fuhao=0;

}

else if((key_shu>=10)&&(key_shu<=13))//按下運(yùn)算符

{

flag_fuhao=1;//表示按下了運(yùn)算符號(hào)鍵

update=0;

if(flag_shu==1)//表示之前有數(shù)字鍵按下

{

if(fuhao==0)//表示計(jì)算時(shí)只有一次按下運(yùn)算符,如1*8=8,第二個(gè)數(shù)字后面是=,而不是其他運(yùn)算符

{

shu2=shu1;

shu1=0;

fuhao=key_shu;//將按下的運(yùn)算符號(hào)的鍵的值賦值給fuhao,記錄前一個(gè)運(yùn)算符,以便按=后實(shí)現(xiàn)相應(yīng)的計(jì)算。

flag_shu=2;

}

else

//表示計(jì)算時(shí)按了多次運(yùn)算符,如1*8*9=72,第二個(gè)數(shù)字后面并沒有=,而是*

{

switch(fuhao)

{

case 10:shu2=shu2+shu1;break;

case 11:shu2=shu2-shu1;break;

case 12:shu2=shu2*shu1;break;

case 13:shu2=shu2/shu1;break;

}

shu1=0;

fuhao=key_shu;//將按下的運(yùn)算符號(hào)的鍵的值賦值給fuhao,記錄前一個(gè)運(yùn)算符,以便按=后實(shí)現(xiàn)相應(yīng)的計(jì)算。

}

}

else if(flag_shu==2)

fuhao=key_shu;//將按下的運(yùn)算符號(hào)的鍵的值賦值給fuhao,記錄前一個(gè)運(yùn)算符,以便按=后實(shí)現(xiàn)相應(yīng)的計(jì)算。

}

newkey=0;

}

}

} } }

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

數(shù)碼管顯示函數(shù)

************************************************/ void display(float dis_shu){

long zhengshu=(long)dis_shu;char dis_flag,dis_aa,dis_zero=0;uchar dis_data[6]={0,0,0,0,0,0},xiaoshu[6]={0,0,0,0,0,0};

ge=0xdf;//11 01 111 if(zhengshu>99999)dis_flag=6;else if(zhengshu>9999)dis_flag=5;else if(zhengshu>999)dis_flag=4;else if(zhengshu>99)dis_flag=3;else if(zhengshu>9)dis_flag=2;else dis_flag=1;

dis_shu=dis_shu-zhengshu;

for(dis_aa=0;(dis_aa<6-dis_flag)&&(dis_shu=(dis_shu-(char)dis_shu)*10);dis_aa++){

xiaoshu[dis_aa]=(long)dis_shu;}

for(dis_aa=0;(dis_aa<6-dis_flag);dis_aa++){

if(dis_zero||xiaoshu[5-dis_flag-dis_aa])12

{

duan=Duan[xiaoshu[5-dis_flag-dis_aa]];

wei=ge;

ge>>=1;

delay(100);

wei=0xff;

dis_zero=1;

} }

// for(dis_aa=0;dis_aa

dis_data[dis_aa]=zhengshu%10;

zhengshu=zhengshu/10;} //數(shù)碼管段選

for(dis_aa=0;dis_aa

if(0xdf!=ge&&dis_aa==0)

{

duan=Duan[dis_data[dis_aa]]|0x80;

wei=ge;

ge>>=1;

delay(100);

wei=0xff;

}

else

{

duan=Duan[dis_data[dis_aa]];

wei=ge;

ge>>=1;

delay(100);

wei=0xff;

}

} //數(shù)碼管位選 }

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

鍵盤掃描函數(shù)

************************************************/ uchar keyscan()// 函數(shù)返回按鍵的值

{

//將第一行線置低電平,其余行線全部為高電平,即掃描第一行

key=0xfe;

if(key!=0xfe){

delay(500);//延時(shí)消抖操作

if(key!=0xfe)

{

switch(key)

{

case 0xee:num=7;break;//7

case 0xde:num=8;break;//8

case 0xbe:num=9;break;//9

case 0x7e:num=13;break;//除號(hào) ”/”

}

newkey=1;

delay(500);

while(key!=0xfe)

{

if(flag1)//如果已開機(jī)

if(!shu1&&num>=0&&num<=9)//如果輸入的第一個(gè)數(shù)不為0且第二個(gè)數(shù)為數(shù)字,則顯示第二個(gè)數(shù)字,否則顯示第一個(gè)數(shù)字

display(num);

else

display(shu1);

}

return num;

} }

//將第二行線置低電平,其余行線全部為高電平,即掃描第二行

key=0xfd;if(key!=0xfd){

delay(500);//延時(shí)消抖操作

if(key!=0xfd)

{

switch(key)

{

case 0xed:num=4;break;//4

case 0xdd:num=5;break;//5

case 0xbd:num=6;break;//6

case 0x7d:num=12;break;//*

}

newkey=1;

delay(500);

while(key!=0xfd)

{

if(flag1)

if(!shu1&&num>=0&&num<=9)//如果輸入的第一個(gè)數(shù)不為0且第二個(gè)數(shù)為數(shù)字,則顯示第二個(gè)數(shù)字,否則顯示第一個(gè)數(shù)字

display(num);

else

display(shu1);

}

return num;

} }

//將第三行線置低電平,其余行線全部為高電平,即掃描第三行

key=0xfb;if(key!=0xfb){

delay(500);

if(key!=0xfb)

{

switch(key)

{

case 0xeb:num=1;break;//1

case 0xdb:num=2;break;//2

case 0xbb:num=3;break;//3 15

case 0x7b:num=11;break;//-

}

newkey=1;

delay(500);

while(key!=0xfb)

{

if(flag1)

if(!shu1&&num>=0&&num<=9)//如果輸入的第一個(gè)數(shù)不為0且第二個(gè)數(shù)為數(shù)字,則顯示第二個(gè)數(shù)字,否則顯示第一個(gè)數(shù)字

display(num);

else

display(shu1);

}

return num;

} }

//將第四行線置低電平,其余行線全部為高電平,即掃描第四行

key=0xf7;if(key!=0xf7){

delay(500);

if(key!=0xf7)

{

switch(key)

{

case 0xe7:num=15;break;// ON/C:開關(guān)機(jī)按鍵

case 0xd7:num=0;break;// 0

case 0xb7:num=14;break;// =

case 0x77:num=10;break;// +

}

newkey=1;

delay(500);

while(key!=0xf7)

{

if(flag1)

if(!shu1&&num>=0&&num<=9)//如果輸入的第一個(gè)數(shù)不為0且第二個(gè)數(shù)為數(shù)字,則顯示第二個(gè)數(shù)字,否則顯示第一個(gè)數(shù)字

display(num);

else

display(shu1);

} 16

return num;

} }

//判斷關(guān)機(jī)按鍵是否被按下 if(!OFF){

delay(500);//延時(shí)消抖操作

if(!OFF)

{

flag1=0;//

}

} return 100;

}

若關(guān)機(jī)按鍵被按下,則將關(guān)機(jī)標(biāo)志位flag1置1 17

第二篇:?jiǎn)纹瑱C(jī)計(jì)算器課程設(shè)計(jì)報(bào)告

大連民族學(xué)院2007級(jí)電子信息工程專業(yè)單片機(jī)系統(tǒng)課程設(shè)計(jì)報(bào)告

機(jī)電信息工程學(xué)院

單片機(jī)系統(tǒng)課程設(shè)計(jì)報(bào)告

完成日期:2010年5月31日

系: 專

業(yè): 班

級(jí): 設(shè)計(jì)題目: 學(xué)生姓名: 指導(dǎo)教師:

多功能簡(jiǎn)易計(jì)算器

大連民族學(xué)院2007級(jí)電子信息工程專業(yè)單片機(jī)系統(tǒng)課程設(shè)計(jì)報(bào)告

一、設(shè)計(jì)任務(wù)和性能指標(biāo)......................................................................2

1.1設(shè)計(jì)任務(wù)..............................................................................................................................2 1.2性能指標(biāo)..............................................................................................................................2 二.設(shè)計(jì)方案.............................................................................................2 三.系統(tǒng)硬件設(shè)計(jì).....................................................................................3

3.1單片機(jī)最小系統(tǒng)......................................................................................3 3.2鍵盤接口電路.....................................................................................................................3 3.3數(shù)碼管顯示電路.................................................................................................................4 3.4錯(cuò)誤報(bào)警電路.....................................................................................................................5

四、系統(tǒng)軟件設(shè)計(jì)..................................................................................6

4.1鍵盤掃描子程序設(shè)計(jì)..........................................................................................................6 4.2移位子程序及結(jié)果計(jì)算子程序設(shè)計(jì)................................................................................10 4.3顯示子程序設(shè)計(jì)...............................................................................................................12 4.4主程序設(shè)計(jì).......................................................................................................................13

五、調(diào)試及性能分析............................................................................13

5.1調(diào)試步驟...........................................................................................................................13 5.2性能分析...........................................................................................................................14

六、心得體會(huì)........................................................................................14 參考文獻(xiàn)................................................................................................14 附錄1 系統(tǒng)硬件電路圖.......................................................................15 附錄2 程序清單.................................................................................16

大連民族學(xué)院2007級(jí)電子信息工程專業(yè)單片機(jī)系統(tǒng)課程設(shè)計(jì)報(bào)告

一、設(shè)計(jì)任務(wù)和性能指標(biāo)

1.1設(shè)計(jì)任務(wù)

利用單片機(jī)及外圍接口電路(鍵盤接口和顯示接口電路)設(shè)計(jì)制作一個(gè)計(jì)算器,用LED顯示計(jì)算數(shù)值及結(jié)果。

要求用Protel 畫出系統(tǒng)的電路原理圖(要求以最少組件,實(shí)現(xiàn)系統(tǒng)設(shè)計(jì)所要求的功能),印刷電路板(要求布局合理,線路清晰),繪出程序流程圖,并給出程序清單(要求思路清晰,盡量簡(jiǎn)潔,主程序和子程序分開,使程序有較強(qiáng)的可讀性)。1.2性能指標(biāo)

1.2.3.4.5.加法:四位加法,計(jì)算結(jié)果若超過四位則顯示計(jì)算錯(cuò)誤 減法:四位減法,計(jì)算結(jié)果若小于零則顯示計(jì)算錯(cuò)誤 乘法:個(gè)位數(shù)乘法 除法:整數(shù)除法

有清零功能,計(jì)算錯(cuò)誤報(bào)警

二.設(shè)計(jì)方案

按照系統(tǒng)設(shè)計(jì)的功能的要求,初步確定設(shè)計(jì)系統(tǒng)由主控模塊、顯示模塊、錯(cuò)誤報(bào)警模塊、鍵掃描接口電路共四個(gè)模塊組成,電路系統(tǒng)構(gòu)成框圖如圖1.1所示。主控芯片使用51系列AT89C52單片機(jī),采用高性能的靜態(tài)80C51設(shè)計(jì),由先進(jìn)工藝制造,并帶有非易失性Flash程序存儲(chǔ)器。它是一種高性能、低功耗的8位COMS微處理芯片,市場(chǎng)應(yīng)用最多。

鍵盤電路采用4*4矩陣鍵盤電路。

顯示模塊采用4枚共陽極數(shù)碼管和74ls273鎖存芯片構(gòu)成等器件構(gòu)成。

錯(cuò)誤報(bào)警電路采用5V蜂鳴器。

大連民族學(xué)院2007級(jí)電子信息工程專業(yè)單片機(jī)系統(tǒng)課程設(shè)計(jì)報(bào)告

三.系統(tǒng)硬件設(shè)計(jì)

3.1單片機(jī)最小系統(tǒng)

單片機(jī)最小系統(tǒng)就是支持主芯片正常工作的最小電路部分,包括主控芯片、復(fù)位電路和晶振電路。

主控芯片選取STC89C52RC芯片,因其具有良好的性能及穩(wěn)定性,價(jià)格便宜應(yīng)用方便。

晶振選取11.0592MHz,晶振旁電容選取30pF。

采用按鍵復(fù)位電路,電阻分別選取100Ω和10K,電容選取10μF。以下為單片機(jī)最小系統(tǒng)硬件電路圖。

單片機(jī)最小系統(tǒng)硬件電路

3.2鍵盤接口電路

計(jì)算器所需按鍵有:

數(shù)字鍵:’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’0’ 大連民族學(xué)院2007級(jí)電子信息工程專業(yè)單片機(jī)系統(tǒng)課程設(shè)計(jì)報(bào)告

功能鍵:’+’, ’-‘ , ’*’, ’/ ’ , ’ = ’, ’ C(清零)’

共計(jì)16個(gè)按鍵,采用4*4矩陣鍵盤,鍵盤的行和列之間都有公共端相連,四行和四列的8個(gè)公共端分別接P1.0~P1.7,這樣掃描P1口就可以完成對(duì)矩陣鍵盤的掃描,通過對(duì)16個(gè)按鍵進(jìn)行編碼,從而得到鍵盤的口地址,對(duì)比P1口德掃描結(jié)果和各按鍵的地址,我們就可以得到是哪個(gè)鍵按下,從而完成鍵盤的功能。

以下為鍵盤接口電路的硬件電路圖

鍵盤接口電路

3.3數(shù)碼管顯示電路

采用4位數(shù)碼管對(duì)計(jì)算數(shù)據(jù)和結(jié)果的顯示,這里選取共陽數(shù)碼管,利用NPN三極管對(duì)數(shù)碼管進(jìn)行驅(qū)動(dòng),為了節(jié)省I/O資源,采取動(dòng)態(tài)顯示的方法來顯示計(jì)算數(shù)據(jù)及結(jié)果。

利用74273鎖存器來實(shí)現(xiàn)數(shù)碼管的動(dòng)態(tài)顯示,P0口輸出顯示值,P2.4為段選口,控制273鎖存器的時(shí)鐘引腳,從而得到對(duì)數(shù)碼管輸入數(shù)據(jù)的控制。

P2.0~P2.3用來作為位選端,控制哪幾位數(shù)碼管進(jìn)行顯示。

以下為數(shù)碼顯示電路的硬件電路圖

大連民族學(xué)院2007級(jí)電子信息工程專業(yè)單片機(jī)系統(tǒng)課程設(shè)計(jì)報(bào)告

數(shù)碼顯示電路硬件電路圖

3.4錯(cuò)誤報(bào)警電路

錯(cuò)誤報(bào)警電路就是在計(jì)算結(jié)果出現(xiàn)錯(cuò)誤時(shí)或輸入數(shù)據(jù)出現(xiàn)錯(cuò)誤時(shí),發(fā)出聲音警報(bào),提示使用者錯(cuò)誤出現(xiàn)。

這里就采用5V蜂鳴器作為報(bào)警設(shè)備,利用PNP三極管對(duì)蜂鳴器進(jìn)行驅(qū)動(dòng),有P2.5對(duì)其進(jìn)行控制,這樣在出現(xiàn)錯(cuò)誤的同時(shí)用P2.5輸出低,就可以使蜂鳴器工作,完成報(bào)警任務(wù)。

以下為報(bào)警電路硬件電路圖

大連民族學(xué)院2007級(jí)電子信息工程專業(yè)單片機(jī)系統(tǒng)課程設(shè)計(jì)報(bào)告

報(bào)警電路硬件電路圖

系統(tǒng)整體硬件電路圖見附錄一

四、系統(tǒng)軟件設(shè)計(jì)

4.1鍵盤掃描子程序設(shè)計(jì)

要進(jìn)行數(shù)據(jù)的計(jì)算就必須先進(jìn)行數(shù)據(jù)的輸入,也就必須確定按鍵輸入的數(shù)值是什么,這就需要對(duì)鍵盤進(jìn)行掃描,從而確定究竟是哪個(gè)鍵按下。

對(duì)于鍵盤的掃描,既可以用行掃描也可以用列掃描,這里采用行掃描的方法來完成對(duì)鍵盤的掃描。

行掃描就是逐行掃描鍵盤,看是哪一行有鍵按下,再通過返回的鍵碼來確定究竟是哪個(gè)按鍵按下。如對(duì)第一行掃描就令P1.0為低,P1口其余為高,這樣若第一行有鍵按下,則P1口的值就會(huì)由0xfe變?yōu)槠渌担儆蛇@個(gè)值來確定是哪個(gè)鍵按下。

以下為鍵盤掃描子程序的程序清單。

uchar keyscan(){

int i;

P1=0xfe;

temp=P1;

temp=temp&0xf0;大連民族學(xué)院2007級(jí)電子信息工程專業(yè)單片機(jī)系統(tǒng)課程設(shè)計(jì)報(bào)告

while(temp!=0xf0){

delay(5);

temp=P1;

temp=temp&0xf0;

while(temp!=0xf0)

{

temp=P1;

switch(temp)

{

case 0xee:{rdat++;num=1;left(rdat,num);}

break;

case 0xde:{rdat++;num=2;left(rdat,num);}

break;

case 0xbe:{rdat++;num=3;left(rdat,num);}

break;

case 0x7e:{rdat++;num=4;left(rdat,num);}

break;

}

while(temp!=0xf0)

{

temp=P1;

temp=temp&0xf0;

}

} } P1=0xfd;temp=P1;temp=temp&0xf0;while(temp!=0xf0){

delay(5);

temp=P1;

temp=temp&0xf0;

while(temp!=0xf0)

{

temp=P1;

switch(temp)

{

case 0xed:{rdat++;num=5;left(rdat,num);}

break;

case 0xdd:{rdat++;num=6;left(rdat,num);}

break;大連民族學(xué)院2007級(jí)電子信息工程專業(yè)單片機(jī)系統(tǒng)課程設(shè)計(jì)報(bào)告

}

case 0xbd:{rdat++;num=7;left(rdat,num);}

break;

case 0x7d:{rdat++;num=8;left(rdat,num);}

break;} while(temp!=0xf0){

temp=P1;

temp=temp&0xf0;} }

P1=0xfb;temp=P1;temp=temp&0xf0;while(temp!=0xf0){

delay(5);

temp=P1;

temp=temp&0xf0;

while(temp!=0xf0)

{

temp=P1;

switch(temp)

{

case 0xeb:{rdat++;num=9;left(rdat,num);}

break;

case 0xdb:{rdat++;num=10;left(rdat,num);}

break;

case 0xbb:{equ();}

break;

case 0x7b:{rdat=0;add=0;subb=0;mul=0;div=0;

result=0;

dat[0]=10;dat[1]=dat[2]=dat[3]=0;

}

break;

}

while(temp!=0xf0)

{

temp=P1;

temp=temp&0xf0;

} 大連民族學(xué)院2007級(jí)電子信息工程專業(yè)單片機(jī)系統(tǒng)課程設(shè)計(jì)報(bào)告

} }

P1=0xf7;temp=P1;temp=temp&0xf0;while(temp!=0xf0){

delay(5);

temp=P1;

temp=temp&0xf0;

while(temp!=0xf0)

{

temp=P1;

switch(temp)

{

case 0xe7:{rdat=0;add=1;subb=0;mul=0;div=0;

for(i=0;i<5;i++){

if(dat[i]==10){dat[i]=0;}

}

result=dat[0]+10*dat[1]+100*dat[2]+1000*dat[3];

dat[0]=10;dat[1]=dat[2]=dat[3]=0;

}

break;

case 0xd7:{rdat=0;add=0;subb=1;mul=0;div=0;

for(i=0;i<5;i++){

if(dat[i]==10){dat[i]=0;}

}

result=dat[0]+10*dat[1]+100*dat[2]+1000*dat[3];

dat[0]=10;dat[1]=dat[2]=dat[3]=0;

}

break;

case 0xb7:{rdat=0;add=0;subb=0;mul=1;div=0;

for(i=0;i<5;i++){

if(dat[i]==10){dat[i]=0;}

}

result=dat[0]+10*dat[1]+100*dat[2]+1000*dat[3];

dat[0]=10;dat[1]=dat[2]=dat[3]=0;

}

break;

case 0x77:{rdat=0;add=0;subb=0;mul=0;div=1;大連民族學(xué)院2007級(jí)電子信息工程專業(yè)單片機(jī)系統(tǒng)課程設(shè)計(jì)報(bào)告

} return num;}

} while(temp!=0xf0){

temp=P1;

temp=temp&0xf0;} }

for(i=0;i<5;i++){

if(dat[i]==10){dat[i]=0;}

}

result=dat[0]+10*dat[1]+100*dat[2]+1000*dat[3];

dat[0]=10;dat[1]=dat[2]=dat[3]=0;

} break;4.2移位子程序及結(jié)果計(jì)算子程序設(shè)計(jì)

輸入數(shù)據(jù)要存儲(chǔ)在一四位數(shù)組內(nèi),而我們鍵入的值是數(shù)據(jù)的高位,后鍵入的值是低位,這樣我們就需要在輸入低位數(shù)值時(shí)將高位數(shù)值從數(shù)組的低位移向數(shù)組的高位,這就是編寫移位子程序的目的。

對(duì)于結(jié)果計(jì)算子程序,包含加、減、乘、除四種運(yùn)算。以加法運(yùn)算為例,各種運(yùn)算各有其標(biāo)志位來代表計(jì)算類型,當(dāng)加法標(biāo)志位add=1是,就將輸入的兩個(gè)數(shù)據(jù)按照加法進(jìn)行計(jì)算。

首先將數(shù)組內(nèi)的數(shù)按照對(duì)應(yīng)的位關(guān)系,將其轉(zhuǎn)化為一個(gè)十進(jìn)制數(shù),這樣我們就得到了加速和被加數(shù)這樣倆個(gè)十進(jìn)制數(shù),從而我們就可以簡(jiǎn)單的將兩個(gè)數(shù)進(jìn)行相加,結(jié)果就是我們所求的數(shù)值。但這個(gè)數(shù)值不能直接顯示到數(shù)碼管上,我們還要對(duì)其進(jìn)行處理,使其變?yōu)閷?duì)應(yīng)進(jìn)位的四個(gè)數(shù)存入數(shù)組內(nèi),以便顯示。既通過對(duì)結(jié)果數(shù)值分別除以1000、100、10和對(duì)10取余,得到我們想要的四個(gè)數(shù),送顯示子程序顯示。其余減、乘、除的計(jì)算方法與加法的計(jì)算方法一樣,這里不再累述。

以下為移位子程序和結(jié)果計(jì)算子程序的程序清單。

void left(uchar rx,uchar date){

switch(rx)

{

case 1:dat[0]=date;break;大連民族學(xué)院2007級(jí)電子信息工程專業(yè)單片機(jī)系統(tǒng)課程設(shè)計(jì)報(bào)告

void equ(){

int i,j,k;

long int s;

if(add==1){for(i=0;i<5;i++){

if(dat[i]==10){dat[i]=0;}

}

s=dat[0]+10*dat[1]+100*dat[2]+1000*dat[3];

result=result+s;add=0;}

if(subb==1){for(i=0;i<5;i++){

if(dat[i]==10){dat[i]=0;}

}

s=dat[0]+10*dat[1]+100*dat[2]+1000*dat[3];

result=result-s;subb=0;}

if(mul==1){for(i=0;i<5;i++){

if(dat[i]==10){dat[i]=0;}

}

s=dat[0]+10*dat[1]+100*dat[2]+1000*dat[3];

result=result*s;mul=0;

}

if(div==1){for(i=0;i<5;i++){

if(dat[i]==10){dat[i]=0;}

}

s=dat[0]+10*dat[1]+100*dat[2]+1000*dat[3];

result=result/s;div=0;

}

If(result>9999){dat[0]=11;dat[3]=dat[2]=dat[1]=0;}

if(result<=9999)

{

dat[0]=result%10;

dat[1]=(result/10)%10;

dat[2]=(result/100)%10;

dat[3]=(result/1000)%10;

} for(j=3;j>0;j--)

{ if(dat[j]>0)

{

case 2:dat[1]=dat[0],dat[0]=date;break;

case 3:dat[2]=dat[1],dat[1]=dat[0],dat[0]=date;break;

case 4:dat[3]=dat[2],dat[2]=dat[1],dat[1]=dat[0],dat[0]=date;break;

} } 大連民族學(xué)院2007級(jí)電子信息工程專業(yè)單片機(jī)系統(tǒng)課程設(shè)計(jì)報(bào)告

for(k=j-1;k>=0;k--)

{

if(dat[k]==0){dat[k]=10;}

}

}

} if(dat[0]==0){dat[0]=10;} } 4.3顯示子程序設(shè)計(jì)

從始至終無論是輸入的計(jì)算數(shù)據(jù),還是計(jì)算后的結(jié)果值。都存儲(chǔ)在同一數(shù)組dat[ ]中,這樣我們只要在顯示時(shí)一直調(diào)用dat[ ]中的值,就能正確的顯示數(shù)據(jù)。

以下為顯示子程序的程序清單。

void display(){

uchar aa;

keyscan();

P2=0x07;

aa=dat[0];

P0=table[aa];

P2=0x27;

delay(3);

P2=0x0b;

aa=dat[1];

P0=table[aa];

P2=0x2b;

delay(3);

P2=0x0d;

aa=dat[2];

P0=table[aa];

P2=0x2d;

delay(3);

P2=0x0e;

aa=dat[3];

P0=table[aa];

P2=0x2e;

delay(3);

} 大連民族學(xué)院2007級(jí)電子信息工程專業(yè)單片機(jī)系統(tǒng)課程設(shè)計(jì)報(bào)告

4.4主程序設(shè)計(jì)

主程序既把以上各子程序串連成一個(gè)整體,使整個(gè)程序循環(huán)運(yùn)行。而在以上程序中也已經(jīng)加入了個(gè)程序之間的連接點(diǎn),首先進(jìn)入程序后就立即進(jìn)入顯示子程序,而顯示子程序內(nèi)又調(diào)用鍵盤掃描子程序,若有鍵按下,則會(huì)跳轉(zhuǎn)到移位子程序和結(jié)果計(jì)算子程序進(jìn)行相應(yīng)的處理。通過計(jì)算或移位后,數(shù)組內(nèi)的值發(fā)生改變,顯示的值也會(huì)同時(shí)發(fā)生改變。之后再進(jìn)行鍵盤掃描,如此反復(fù)運(yùn)行,就構(gòu)成了程序的整體。

以下為主程序清單。

void main(){ num=0;

while(1)

{

display();

} }

整體程序清單見附錄二。

五、調(diào)試及性能分析

5.1調(diào)試步驟

在焊接好器件后,先不要將芯片插在芯片座上,要先驗(yàn)證先板上電源是否好用,有無短路等。接上USB電源,用萬用表測(cè)量個(gè)芯片座對(duì)應(yīng)電源和地之間的電壓值,觀察電壓值是否正常。一切正常后方可將芯片插入芯片座,以繼續(xù)測(cè)試其他功能。

將芯片插上后,對(duì)各個(gè)模塊進(jìn)行調(diào)試,按鍵是否工作正常,數(shù)碼管是否顯示正常等。編寫相關(guān)部分的測(cè)試程序?qū)ζ溥M(jìn)行測(cè)試。

各部分硬件檢測(cè)無誤后,下載程序進(jìn)行整體調(diào)試,一切正常后,結(jié)束調(diào)試過程。

在具體調(diào)試時(shí)首先遇到的問題是程序無法下載進(jìn)入單片機(jī),通過將電路板接線與原理電路圖接線的對(duì)比發(fā)現(xiàn),串口芯片與單片機(jī)連接的輸入,輸出接反,重新用銅線連接后,依然無法下載程序。后找到原因是由于下載串口與設(shè)計(jì)封裝不符,用相對(duì)應(yīng)的下載線可以下載。

成功下載程序后,發(fā)現(xiàn)數(shù)碼管顯示不正確,查看后發(fā)現(xiàn)有先沒有連接,可能是制板時(shí)漏印,連接后顯示正常。大連民族學(xué)院2007級(jí)電子信息工程專業(yè)單片機(jī)系統(tǒng)課程設(shè)計(jì)報(bào)告

5.2性能分析

對(duì)于計(jì)算器的性能,主要的衡量指標(biāo)就在于計(jì)算的精度,本次制作的計(jì)算器性能情況如下:

加法運(yùn)算:四位加法運(yùn)算,和值不超過9999,若超過上限,則顯示錯(cuò)誤提示E,蜂鳴器報(bào)警提示。

減法運(yùn)算:四位減法運(yùn)算,若結(jié)果為負(fù),對(duì)其取絕對(duì)值。

乘法運(yùn)算:積不超過9999的乘法運(yùn)算,若超出上限,顯示錯(cuò)誤提示E,蜂鳴器報(bào)警提示。

除法運(yùn)算:整數(shù)除法,既計(jì)算結(jié)果為整數(shù),若除數(shù)為零,則顯示錯(cuò)誤提示E,蜂鳴器報(bào)警提示。

通過對(duì)實(shí)際性能的分析,可以得到本次設(shè)計(jì)滿足設(shè)計(jì)的要求。

六、心得體會(huì)

通過本次課程設(shè)計(jì)我真正的自己完成了對(duì)給定要求系統(tǒng)的硬件設(shè)計(jì)、電路設(shè)計(jì)、電路板設(shè)計(jì)、軟件設(shè)計(jì)以及對(duì)成品的調(diào)試過程。從整個(gè)過程中學(xué)習(xí)到了很多方面的知識(shí),了解到以往學(xué)習(xí)中自己知識(shí)在某方面的不足之處,是對(duì)以往學(xué)習(xí)科目的一種貫穿和承接,從而能更好的認(rèn)識(shí)和學(xué)習(xí),也對(duì)將來從事工作大有裨益。

從本次課設(shè)中我也看到了自身的很多不足之處,對(duì)知識(shí)的掌握不夠扎實(shí),有一知半解的現(xiàn)象。有時(shí)做事不夠穩(wěn)定,過于毛躁,不能平心靜氣的去分析所遇到的問題和錯(cuò)誤。這在以后的工作和生活中是不可取的,通過對(duì)自身問題的認(rèn)識(shí)與改正相信再遇到同樣問題時(shí)會(huì)更好的解決。以后的設(shè)計(jì)實(shí)驗(yàn)也會(huì)更好的完成。

參考文獻(xiàn)

[1] 徐維祥、劉旭敏.單片微型機(jī)原理及應(yīng)用.大連:大連理工大學(xué)出版社,1996 [2] 李光飛、樓然苗、胡佳文、謝象佐.單片機(jī)課程設(shè)計(jì)與實(shí)例指導(dǎo).北京: 北京航空航天大學(xué)出版社,2004

[3] 余永權(quán).89系列FLASH單片機(jī)原理及應(yīng)用.北京:電子工業(yè)出版社,2002 [4] 李群芳,黃建.單片機(jī)微型計(jì)算機(jī)與接口技術(shù).北京:電子工業(yè)出版社,2001 [5] 樓然苗、李光飛.51系列單片機(jī)設(shè)計(jì)實(shí)例.北京:北京航空航天大學(xué)出版社,2003 大連民族學(xué)院2007級(jí)電子信息工程專業(yè)單片機(jī)系統(tǒng)課程設(shè)計(jì)報(bào)告

附錄1 系統(tǒng)硬件電路圖 大連民族學(xué)院2007級(jí)電子信息工程專業(yè)單片機(jī)系統(tǒng)課程設(shè)計(jì)報(bào)告

附錄2 程序清單

#include #define uint unsigned int #define uchar unsigned char sbit dula=P2^6;sbit wela=P2^7;sbit key1=P3^4;uchar code table[]={ 0xff,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0xc0,0x86};uchar dat[]={10,0,0,0,0};uchar s[],a[];uchar num,temp,num1,rdat,add,subb,mul,div;unsigned long int result;void left(uchar rx,uchar date);uchar keyscan();void equ();void delay(uint z){ uint x,y;for(x=z;x>0;x--)

for(y=110;y>0;y--);}

void display();void main(){ num=0;

while(1)

{

display();

} } void display(){

uchar aa;

keyscan();

P2=0x07;

aa=dat[0];大連民族學(xué)院2007級(jí)電子信息工程專業(yè)單片機(jī)系統(tǒng)課程設(shè)計(jì)報(bào)告

P0=table[aa];

P2=0x27;

delay(3);

P2=0x0b;

aa=dat[1];

P0=table[aa];

P2=0x2b;

delay(3);

P2=0x0d;

aa=dat[2];

P0=table[aa];

P2=0x2d;

delay(3);

P2=0x0e;

aa=dat[3];

P0=table[aa];

P2=0x2e;

delay(3);

} uchar keyscan(){

int i;

P1=0xfe;

temp=P1;

temp=temp&0xf0;

while(temp!=0xf0)

{

delay(5);

temp=P1;

temp=temp&0xf0;

while(temp!=0xf0)

{

temp=P1;

switch(temp)

{

case 0xee:{rdat++;num=1;left(rdat,num);}

break;

case 0xde:{rdat++;num=2;left(rdat,num);}

break;

case 0xbe:{rdat++;num=3;left(rdat,num);}

break;大連民族學(xué)院2007級(jí)電子信息工程專業(yè)單片機(jī)系統(tǒng)課程設(shè)計(jì)報(bào)告

}

case 0x7e:{rdat++;num=4;left(rdat,num);}

break;} while(temp!=0xf0){

temp=P1;

temp=temp&0xf0;} } P1=0xfd;temp=P1;temp=temp&0xf0;while(temp!=0xf0){

delay(5);

temp=P1;

temp=temp&0xf0;

while(temp!=0xf0)

{

temp=P1;

switch(temp)

{

case 0xed:{rdat++;num=5;left(rdat,num);}

break;

case 0xdd:{rdat++;num=6;left(rdat,num);}

break;

case 0xbd:{rdat++;num=7;left(rdat,num);}

break;

case 0x7d:{rdat++;num=8;left(rdat,num);}

break;

}

while(temp!=0xf0)

{

temp=P1;

temp=temp&0xf0;

}

} }

P1=0xfb;temp=P1;大連民族學(xué)院2007級(jí)電子信息工程專業(yè)單片機(jī)系統(tǒng)課程設(shè)計(jì)報(bào)告

temp=temp&0xf0;while(temp!=0xf0){

delay(5);

temp=P1;

temp=temp&0xf0;

while(temp!=0xf0)

{

temp=P1;

switch(temp)

{

case 0xeb:{rdat++;num=9;left(rdat,num);}

break;

case 0xdb:{rdat++;num=10;left(rdat,num);}

break;

case 0xbb:{equ();}

break;

case 0x7b:{rdat=0;add=0;subb=0;mul=0;div=0;

result=0;

dat[0]=10;dat[1]=dat[2]=dat[3]=0;

}

break;

}

while(temp!=0xf0)

{

temp=P1;

temp=temp&0xf0;

}

} }

P1=0xf7;temp=P1;temp=temp&0xf0;while(temp!=0xf0){

delay(5);

temp=P1;

temp=temp&0xf0;

while(temp!=0xf0)

{

temp=P1;

switch(temp)大連民族學(xué)院2007級(jí)電子信息工程專業(yè)單片機(jī)系統(tǒng)課程設(shè)計(jì)報(bào)告

{

case 0xe7:{rdat=0;add=1;subb=0;mul=0;div=0;

for(i=0;i<5;i++){

if(dat[i]==10){dat[i]=0;}

}

result=dat[0]+10*dat[1]+100*dat[2]+1000*dat[3];

dat[0]=10;dat[1]=dat[2]=dat[3]=0;

}

break;

case 0xd7:{rdat=0;add=0;subb=1;mul=0;div=0;

for(i=0;i<5;i++){

if(dat[i]==10){dat[i]=0;}

}

result=dat[0]+10*dat[1]+100*dat[2]+1000*dat[3];

dat[0]=10;dat[1]=dat[2]=dat[3]=0;

}

break;

case 0xb7:{rdat=0;add=0;subb=0;mul=1;div=0;

for(i=0;i<5;i++){

if(dat[i]==10){dat[i]=0;}

}

result=dat[0]+10*dat[1]+100*dat[2]+1000*dat[3];

dat[0]=10;dat[1]=dat[2]=dat[3]=0;

}

break;

case 0x77:{rdat=0;add=0;subb=0;mul=0;div=1;

for(i=0;i<5;i++){

if(dat[i]==10){dat[i]=0;}

}

result=dat[0]+10*dat[1]+100*dat[2]+1000*dat[3];

dat[0]=10;dat[1]=dat[2]=dat[3]=0;

}

break;

}

while(temp!=0xf0)

{

temp=P1;

temp=temp&0xf0;

}

} 大連民族學(xué)院2007級(jí)電子信息工程專業(yè)單片機(jī)系統(tǒng)課程設(shè)計(jì)報(bào)告

} return num;}

void left(uchar rx,uchar date){

switch(rx)

{

case 1:dat[0]=date;break;

case 2:dat[1]=dat[0],dat[0]=date;break;

case 3:dat[2]=dat[1],dat[1]=dat[0],dat[0]=date;break;

case 4:dat[3]=dat[2],dat[2]=dat[1],dat[1]=dat[0],dat[0]=date;break;

} }

void equ(){ int i,j,k;long int s;

if(add==1){for(i=0;i<5;i++){

if(dat[i]==10){dat[i]=0;}

}

s=dat[0]+10*dat[1]+100*dat[2]+1000*dat[3];

result=result+s;add=0;} if(subb==1){for(i=0;i<5;i++){

if(dat[i]==10){dat[i]=0;}

}

s=dat[0]+10*dat[1]+100*dat[2]+1000*dat[3];

if(s>result){result=s-result;} else result=result-s;subb=0;} if(mul==1){for(i=0;i<5;i++){

if(dat[i]==10){dat[i]=0;}

}

s=dat[0]+10*dat[1]+100*dat[2]+1000*dat[3];

result=result*s;mul=0;

} 大連民族學(xué)院2007級(jí)電子信息工程專業(yè)單片機(jī)系統(tǒng)課程設(shè)計(jì)報(bào)告

if(div==1){for(i=0;i<5;i++){

if(dat[i]==10){dat[i]=0;}

}

s=dat[0]+10*dat[1]+100*dat[2]+1000*dat[3];

if(s==0)result=10000;

else result=result/s;div=0;

} if(result>9999){dat[0]=11;dat[3]=dat[2]=dat[1]=0;} if(result<=9999){ dat[0]=result%10;dat[1]=(result/10)%10;dat[2]=(result/100)%10;dat[3]=(result/1000)%10;} for(j=3;j>0;j--)

{ if(dat[j]>0)

{

for(k=j-1;k>=0;k--)

{

if(dat[k]==0){dat[k]=10;}

}

}

}

if(dat[0]==0){dat[0]=10;} } 22

第三篇:?jiǎn)纹瑱C(jī)計(jì)算器課程設(shè)計(jì)報(bào)告

基于單片機(jī)的簡(jiǎn)易計(jì)算器設(shè)計(jì)

基于單片機(jī)的簡(jiǎn)易計(jì)算器設(shè)計(jì)

一、設(shè)計(jì)任務(wù)和性能指標(biāo)

1.1設(shè)計(jì)任務(wù)

利用單片機(jī)及外圍接口電路(鍵盤接口和顯示接口電路)設(shè)計(jì)制作一個(gè)計(jì)算器,用四位一體數(shù)碼管顯示計(jì)算數(shù)值及結(jié)果。要求用Protel 畫出系統(tǒng)的電路原理圖(要求以最少組件,實(shí)現(xiàn)系統(tǒng)設(shè)計(jì)所要求的功能),繪出程序流程圖,并給出程序清單(要 求思路清晰,盡量簡(jiǎn)潔,主程序和子程序分開,使程序有較強(qiáng)的可讀性)。1.2性能指標(biāo)

1加法:能夠計(jì)算四位以內(nèi)的數(shù)的加法。2減法:能計(jì)算四位數(shù)以內(nèi)的減法。3乘法:能夠計(jì)算兩位數(shù)以內(nèi)的乘法。

4除法:能夠計(jì)算四位數(shù)的乘法

5有清零功能,能隨時(shí)對(duì)運(yùn)算結(jié)果和數(shù)字輸入進(jìn)行清零。

二、系統(tǒng)設(shè)計(jì)方案

按照系統(tǒng)設(shè)計(jì)的功能的要求,初步確定設(shè)計(jì)系統(tǒng)由單片機(jī)主控模塊、四位一體數(shù)碼管顯示模塊、鍵掃描接口電路共三個(gè)主要模塊組成。主控芯片使用51系列AT89C51單片機(jī),采用高性能的靜態(tài)80C51設(shè)計(jì),它由先進(jìn)工藝制造,并帶有非易失性Flash程序存儲(chǔ)器。它是一種高性能、低功耗的8位COMS微處理芯片,市場(chǎng)應(yīng)用最多。

鍵盤電路采用4*4矩陣鍵盤電路。

顯示模塊采用四位一體共陽極數(shù)碼管和SN74LS244鎖存芯片構(gòu)成等器件構(gòu)成。

三、硬件系統(tǒng)設(shè)計(jì)

1.單片機(jī)最小系統(tǒng)

單片機(jī)最小系統(tǒng)就是支持主芯片正常工作的最小電路部分,包括主控芯片、復(fù)位電路和晶振電路。

主控芯片選取STC89C51RC芯片,因其具有良好的性能及穩(wěn)定性,價(jià)格便宜應(yīng)用方便。

晶振選取11.0592MHz,晶振旁電容選取30pF。

采用按鍵復(fù)位電路,電阻分別選取100Ω和10K,電容選取10μF。單片機(jī)最小系統(tǒng)硬件電路圖如圖(1)所示。

圖(1)單片機(jī)最小系統(tǒng)

2.鍵盤接口電路

計(jì)算器所需按鍵有:

數(shù)字鍵:’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’0’

功能鍵:’+’, ’-‘ , ’*’, ’/ ’ , ’ = ’, ’ C(清零)’

共計(jì)16個(gè)按鍵,采用4*4矩陣鍵盤,鍵盤的行和列之間都有公共端相連,四行采用端口P0.0~P0.3,四列采用端口P3.0~P3.3,通過8個(gè)端口的的高低電平完成對(duì)矩陣鍵盤的控制。通過對(duì)16個(gè)按鍵進(jìn)行編碼,從而得到鍵盤的口地址,對(duì)比P1口德掃描結(jié)果和各按鍵的地址,我們就可以得到是哪個(gè)鍵按下,從而完成鍵盤的功能。

3.?dāng)?shù)碼管顯示電路

采用4位一體的數(shù)碼管對(duì)計(jì)算數(shù)據(jù)和結(jié)果進(jìn)行顯示,這里選取共陽數(shù)碼管,利用NPN三極管對(duì)數(shù)碼管進(jìn)行驅(qū)動(dòng),為了節(jié)省I/O資源,采取動(dòng)態(tài)顯示的方法來顯示計(jì)算數(shù)據(jù)及結(jié)果。

利用SN74LS244N鎖存器來實(shí)現(xiàn)數(shù)碼管的動(dòng)態(tài)顯示,P1口輸出顯示值,P2.0~P2.3為位選端口。通過鎖存器對(duì)段選信號(hào)的鎖存,最終得到對(duì)數(shù)碼管輸入數(shù)據(jù)的控制。

以下為數(shù)碼顯示電路的硬件電路圖,左圖為數(shù)碼管驅(qū)動(dòng)電路,右圖為段選信號(hào)鎖存電路。

四.軟件設(shè)計(jì)部分

根據(jù)選題要求,系統(tǒng)編程如下所示: #include “reg51.h” sbit P3_0=P3^0;sbit P3_1=P3^1;sbit P3_2=P3^2;sbit P3_3=P3^3;sbit P3_4=P3^4;sbit P3_5=P3^5;sbit P3_6=P3^6;sbit P3_7=P3^7;unsigned char sz[11],xs1[4],xs2[4],sj;int i,cs,bb,t1,t2,fh,s1,s2;void chushihua(){

} void xianshi(unsigned char xs[4]){ int i,j;unsigned char zy;bb=1;xs1[0]=10;xs1[1]=10;xs1[2]=10;xs1[3]=10;xs2[0]=10;xs2[1]=10;xs2[2]=10;xs2[3]=10;t1=0;t2=0;s1=s2=0;fh=0;cs=1;

// zy=0x08;for(i=0;i<4;i++){ P2=(0xff-zy);

P1=sz[xs[i]];

} zy=(zy>>1);for(j=0;j<100;j++);

for(i=0;i<100;i++);return;} unsigned char saomiao(){

int i,j;unsigned char pp;for(i=0;i<1000;i++);P0=0xfe;P3=0x0f;pp=P3;if(P3_0==0)if(P3_1==0)if(P3_2==0)if(P3_3==0)

{P3=0x0f;pp=P3;while(P3_0==0);for(i=0;i<1000;i++);return 7;} {P3=0x0f;pp=P3;while(P3_1==0);for(i=0;i<1000;i++);return 8;} {P3=0x0f;pp=P3;while(P3_2==0);for(i=0;i<1000;i++);return 9;} {P3=0x0f;pp=P3;while(P3_3==0);for(i=0;i<1000;i++);return 11;} //==========1 P0=0xfd;P3=0x0f;pp=P3;if(P3_0==0){P3=0x0f;pp=P3;while(P3_0==0);for(i=0;i<1000;i++);return 4;} if(P3_1==0){P3=0x0f;pp=P3;while(P3_1==0);for(i=0;i<1000;i++);return 5;} if(P3_2==0){P3=0x0f;pp=P3;while(P3_2==0);for(i=0;i<1000;i++);return 6;} if(P3_3==0){P3=0x0f;pp=P3;while(P3_3==0);for(i=0;i<1000;i++);return 12;} //==========2 P0=0xfb;P3=0x0f;pp=P3;if(P3_0==0){P3=0x0f;pp=P3;while(P3_0==0);for(i=0;i<1000;i++);return 1;} if(P3_1==0){P3=0x0f;pp=P3;while(P3_1==0);for(i=0;i<1000;i++);return 2;} if(P3_2==0){P3=0x0f;pp=P3;while(P3_2==0);for(i=0;i<1000;i++);return 3;} if(P3_3==0){P3=0x0f;pp=P3;while(P3_3==0);for(i=0;i<1000;i++);return 13;} //==========3 P0=0xf7;P3=0x0f;

pp=P3;if(P3_0==0)if(P3_1==0)if(P3_2==0)if(P3_3==0)return 10;

{P3=0x0f;pp=P3;while(P3_0==0);for(i=0;i<1000;i++);return 16;} {P3=0x0f;pp=P3;while(P3_1==0);for(i=0;i<1000;i++);return 0;} {P3=0x0f;pp=P3;while(P3_2==0);for(i=0;i<1000;i++);return 15;} {P3=0x0f;pp=P3;while(P3_3==0);for(i=0;i<1000;i++);return 14;} //===========4 } void chuli(unsigned char x){

int i;if(x==16){

} cs=0;return;if(x>=0 && x<10){ if(bb==1)

{

} if(s1= =4){cs=0;return;} else { for(i=3;i>0;i--)xs1[i]=xs1[i-1];

} xs1[0]=x;s1++;t1=t1*10+x;if(bb==2){

if(s2==4){cs=0;return;} else {

} for(i=3;i>0;i--)xs2[i]=xs2[i-1];xs2[0]=x;s2++;t2=t2*10+x;} } if(x>10)

{

if(bb==1){fh=x;bb=2;return;} if(bb==2){ if(fh==11)t1=t1/t2;

if(fh==12)t1=t1*t2;if(fh==13)t1=t1-t2;if(fh==14)t1=t1+t2;if(t1>=10000){cs=0;return;} else { if(t1>=0 && t1<10)

{xs1[0]=t1;xs1[1]=10;xs1[2]=10;xs1[3]=10;}

if(t1>=10 && t1<100){xs1[0]=t1%10;xs1[1]=t1/10;xs1[2]=10;xs1[3]=10;}

if(t1>=100 && t1<1000)

{xs1[0]=t1%10;xs1[1]=(t1-(t1/100)*100)/10;xs1[2]=t1/100;xs1[3]=10;}

if(t1>=1000 && t1<10000)

{xs1[0]=t1%10;xs1[1]=t1%100/10;xs1[2]=(t1-(t1/1000)*1000)/100;xs1[3]=t1/1000;}

bb=2;

}

}

} s2=0;t2=0;xs2[0]=10;xs2[1]=10;xs2[2]=10;xs2[3]=10;fh=x;} void main(){

sz[0]=0xfc;sz[1]=0x60;sz[2]=0xda;sz[3]=0xf2;sz[4]=0x66;sz[5]=0xb6;sz[6]=0xbe;sz[7]=0xe0;sz[8]=0xfe;sz[9]=0xf6;sz[10]=0x00;cs=0;

for(;;)

{

if(cs==0)chushihua();if(cs==1)sj=saomiao();if(cs==1 && sj!=10)chuli(sj);if(cs==1 &&(bb==1 || bb==2 && s2==0))xianshi(xs1);if(cs==1 &&(bb==2 && s2!=0))xianshi(xs2);

} } 軟件設(shè)計(jì)好后,在KEIL上面進(jìn)行仿真,把仿真得到的文件下載到Proteus里面進(jìn)行仿真,得到Proteus仿真電路圖如下所示:

圖(2)

計(jì)算器Proteus仿真電路圖

五.硬件電路焊接及調(diào)試

根據(jù)電路圖紙,焊接好硬件電路,把程序下載到單片機(jī)芯片,接通好電源,進(jìn)行調(diào)試。在焊接好器件后,先不要將芯片插在芯片座上,要先驗(yàn)證先板上電源是否好用,有無短路等。接上USB電源,用萬用表測(cè)量個(gè)芯片座對(duì)應(yīng)電源和地之間的電壓值,觀察電壓值是否正常。一切正常后方可將芯片插入芯片座,以繼續(xù)測(cè)試其他功能。

將芯片插上后,對(duì)各個(gè)模塊進(jìn)行調(diào)試,按鍵是否工作正常,數(shù)碼管是否顯示正常等。編寫相關(guān)部分的測(cè)試程序?qū)ζ溥M(jìn)行測(cè)試。

各部分硬件檢測(cè)無誤后,下載程序進(jìn)行整體調(diào)試,一切正常后,結(jié)束調(diào)試過程。

用所設(shè)計(jì)的單片機(jī)進(jìn)行數(shù)字計(jì)算,顯示結(jié)果與任務(wù)要求一致,焊接電路符合要求。六.課程設(shè)計(jì)心得

兩周的時(shí)間,終于把單片機(jī)課程設(shè)計(jì)搞完了。整個(gè)體會(huì)還是比較多的。首先是題目的選擇,各方面的原因,自己還是想選個(gè)簡(jiǎn)單點(diǎn)的題目,不過最后選來選去,還是選擇了計(jì)算器。由于自己對(duì)單片機(jī)編程還不是很熟悉,結(jié)果在設(shè)計(jì)的時(shí)候遇到了一系列問題,程序總是調(diào)試部處理,不過還好,最后在同學(xué)的幫助下終于把程序調(diào)試出來了,雖然程序設(shè)計(jì)實(shí)現(xiàn)的功能與老師要求的不盡相同,不過勉強(qiáng)還算可以。從這里我知道了基本知識(shí)的重要性。其實(shí)進(jìn)行程序設(shè)計(jì)的時(shí)候主要是對(duì)各功能模塊的把握。計(jì)算器里面最難的一部分是矩陣鍵盤的掃描和編碼,那個(gè)費(fèi)了很大力氣。

另外一點(diǎn)就是硬件焊接調(diào)試部分。焊接的時(shí)候到時(shí)輕松,一個(gè)下午就焊接好了,然后是調(diào)試部分。調(diào)試花費(fèi)的時(shí)間還是比較長(zhǎng)的。不過有了上個(gè)學(xué)期數(shù)字電路焊接調(diào)試的經(jīng)驗(yàn),這次單片機(jī)調(diào)試還算是比較順利。我也是從電路板的正負(fù)電源檢測(cè)起,一步一步來,最終得到了想要的結(jié)果。調(diào)試的時(shí)候主要遇到了兩個(gè)問題。一個(gè)是鍵盤總是沒有反應(yīng),為了這個(gè)自己調(diào)試了很久,前前后后把電路板檢查了幾次,最后才發(fā)現(xiàn)是鍵盤本身的問題,和同學(xué)們換了個(gè)好鍵盤才行。另一個(gè)問題是總是顯示不出來1、4、7這三個(gè)數(shù)字。檢測(cè)來檢測(cè)去,發(fā)現(xiàn)來是在測(cè)試最小系統(tǒng)時(shí)在一個(gè)位選端接了高電平,對(duì)位選信號(hào)產(chǎn)生了影響。當(dāng)把那個(gè)高電平去掉后,終于得到了正確的結(jié)果。

總的來說這次課程設(shè)計(jì)達(dá)到了完成了基本任務(wù),達(dá)到了基本要求。通過親身對(duì)程序設(shè)計(jì)和電路焊接調(diào)試的體會(huì),自己對(duì)單片機(jī)有了進(jìn)一步的了解,單片機(jī)編程能力也得到了提高。電路板的焊接與調(diào)試,使自己電路調(diào)試的方法和思想進(jìn)一步加強(qiáng)了。這次單片機(jī)課程設(shè)計(jì)應(yīng)該說是比較成功的。

參考文獻(xiàn):

【1】徐維祥、劉旭敏:,《單片微型機(jī)原理及應(yīng)用》,大連理工大學(xué)出版社,1996年。【2】李光飛、樓然苗、胡佳文、謝象佐.,《單片機(jī)課程設(shè)計(jì)與實(shí)例指導(dǎo).》,北京航空航天大學(xué)出版社,2004年。

【3】余永權(quán),《89系列FLASH單片機(jī)原理及應(yīng)用.》,電子工業(yè)出版社,2002。【4】楊恢先、黃輝先,《單片機(jī)原理及應(yīng)用》,人民郵電出版社,2006年。【5】常敏、王涵、范江波,《單片機(jī)應(yīng)用程序開發(fā)與實(shí)踐》,電子工業(yè)出版社,2009年。

第四篇:?jiǎn)纹瑱C(jī)課程設(shè)計(jì)-電子萬年歷

單片機(jī)及接口技術(shù)綜合實(shí)驗(yàn)

——————電子萬年日歷系統(tǒng)一、題目:電子實(shí)時(shí)時(shí)鐘/萬年日歷系統(tǒng)

二、功能要求:

1. 基本要求:

⑴ 顯示準(zhǔn)確的北京時(shí)間(時(shí)、分、秒),可用24小時(shí)制式; ⑵ 隨時(shí)可以調(diào)校時(shí)間。

2. 發(fā)揮要求:

⑴ 增加公歷日期顯示功能(年、月、日),年號(hào)只顯示最后兩位; ⑵ 隨時(shí)可以調(diào)校年、月、日;

⑶ 允許通過轉(zhuǎn)換功能鍵轉(zhuǎn)換顯示時(shí)間或日期。

三、方案考慮:

1、硬件方案:

⑴ 顯示器采用6位LED數(shù)碼管(共陽),可分別顯示時(shí)間或日期;(通過KB鍵可切換)⑵ 顯示器的驅(qū)動(dòng)采用動(dòng)態(tài)掃描電路形式,以達(dá)到簡(jiǎn)化電路的目的。但要注意所需的驅(qū)動(dòng)電流比靜態(tài)驅(qū)動(dòng)時(shí)要大,因此要增加驅(qū)動(dòng)電路。可采用74LS244或者晶體管;其中74ls244是用來驅(qū)動(dòng)段選碼,晶體管是驅(qū)動(dòng)位選碼!⑶采用“一鍵多用方案”,以減少按鍵數(shù)目。本方案只采用了兩個(gè)按鍵 ⑷ 整體上要考慮:結(jié)構(gòu)簡(jiǎn)單、布局美觀、操作方便、成本低廉。

2、設(shè)計(jì)電路圖如下:

3、元件清單:

⑴ 89C51

1個(gè)

⑵ IC座(40腳)

3個(gè)(其中1個(gè)用于接插89C51、2個(gè)用于接插LED段數(shù)碼管)。⑶ 74LS244

1個(gè)(用于驅(qū)動(dòng)6個(gè)共陽的LED段數(shù)碼管)。⑷ IC座(20腳)

1個(gè)(用于接插74LS244)。(5)顯示器:LED_8段數(shù)碼管(共陽型)6個(gè)三極管:

(6)PNP(8550)

6個(gè)(用于驅(qū)動(dòng)6個(gè)共陽型LED段數(shù)碼管)。

(7)微型開關(guān):

3個(gè)(其中1個(gè)用于復(fù)位電路、其它用于鍵盤)。(8)晶體振蕩器(12MHz):1個(gè)(用于振蕩電路)。(9)電阻器:

⑴ 3KΩ

1個(gè)(用于系統(tǒng)復(fù)位電路)。

⑵ 1KΩ

6個(gè)(用作PNP三極管基極電阻)。⑶ 100Ω

7個(gè)(驅(qū)動(dòng)器用作74LS244輸出限流電阻)。(10)電容器:

⑴ 10μF

1個(gè)(用于系統(tǒng)復(fù)位電路)。⑵ 30 pF

2個(gè)(用于系統(tǒng)振蕩電路)。(11)其它:

⑴ 萬能電路板(10×15):

1塊 ⑵ 焊錫條:

2米 ⑶ 帶插頭、座的電源端子:

1條 ⑷ 各種顏色外皮的導(dǎo)線:

各1米(12)工具:

1.電烙鐵:

1把 2.剪鉗:

1把 3.鑷子:

1把 4.萬用表:

1個(gè)(13)設(shè)備:

編程器(MEP300或TOP851)

6個(gè)

4、軟件方案:

只使用第一組工作寄存器,功能分布如下:

⑴ “時(shí)鐘”基準(zhǔn)時(shí)間由單片機(jī)內(nèi)部定時(shí)中斷來提供,定時(shí)時(shí)間應(yīng)該乘以一個(gè)整數(shù)得到“秒”,且不宜太長(zhǎng)或太短,最長(zhǎng)不能超過16位定時(shí)器的最長(zhǎng)定時(shí)時(shí)間,最短不能少于定時(shí)中斷服務(wù)程序的執(zhí)行時(shí)間。一般來說,基準(zhǔn)時(shí)間越短,越有利于提高時(shí)鐘運(yùn)行的精確度。本實(shí)驗(yàn)定時(shí)5mS。乘以一個(gè)整數(shù)200得到“1秒”.⑵ 用一個(gè)計(jì)數(shù)器(R4)對(duì)定時(shí)中斷的次數(shù)進(jìn)行計(jì)數(shù),從而可以實(shí)現(xiàn)“秒”定時(shí),同理可以實(shí)現(xiàn)“分”定時(shí)和“時(shí)”定時(shí),甚至于“日”、“月”、“年”定時(shí)。

⑶ 顯示器采用動(dòng)態(tài)驅(qū)動(dòng)時(shí)要注意到:LED的 “啟輝時(shí)間”和 “余輝時(shí)間”。驅(qū)動(dòng)信號(hào)的維持時(shí)間必須大于啟輝時(shí)間;而驅(qū)動(dòng)信號(hào)的間歇時(shí)間必須小于余輝時(shí)間。“啟輝時(shí)間”和 “余輝時(shí)間”與驅(qū)動(dòng)電流的大小有關(guān),驅(qū)動(dòng)電流越大,啟輝時(shí)間越短,而余輝時(shí)間越長(zhǎng)。但是,驅(qū)動(dòng)電流的大小受到驅(qū)動(dòng)電路的驅(qū)動(dòng)能力和LED極限功耗的限制。本實(shí)驗(yàn)采用了74ls244和晶體管8550驅(qū)動(dòng),并進(jìn)行適當(dāng)?shù)难訒r(shí)3ms解決上述問題。

⑷ LED的余輝時(shí)間使動(dòng)態(tài)驅(qū)動(dòng)顯示得到保證,但也要注意到它在更新顯示內(nèi)容時(shí),可能造成顯示字符的混亂模糊。為此,在把“更新顯示內(nèi)容”寫入顯示器之前,必須把所有的LED熄滅,即要把一個(gè)“熄滅驅(qū)動(dòng)信號(hào)”先寫入顯示器。

⑸對(duì)于按鍵的處理,采用中斷。產(chǎn)生中斷后先判有無按鍵被按下,還要考慮到“去抖動(dòng)影響”問題,可采用軟件延遲法解決這個(gè)問題,延遲時(shí)間至少10mS。而單純進(jìn)行軟件延時(shí)的話會(huì)令到顯示管產(chǎn)生斷續(xù)的情況,故調(diào)用顯示程序作為延時(shí)時(shí)間。這樣就合理地處理好這兩者的矛盾了。

⑹ 把鍵盤的按鍵分兩種情況來處理,操作簡(jiǎn)單。

調(diào)整時(shí)間時(shí),先按下KA鍵,(KA鍵為選擇調(diào)整位置的鍵,如選調(diào)整秒或分),而此時(shí)的KB鍵只是用來加一操作。在調(diào)整時(shí)間狀態(tài)下,若在十秒內(nèi)檢測(cè)到?jīng)]有任何按鍵按下,則返回正常顯示時(shí)鐘狀態(tài)。

而不調(diào)整時(shí)間,即不按下KA鍵,KB的鍵只用來切換顯示日期和時(shí)鐘。⑺ 對(duì)于自動(dòng)識(shí)別“月大、月小”和“平年、閏年”的問題,主要考慮: ① 月大、月小:

1~7月:逢單月為31天;逢雙月為30天,其中2月另行處理。8~12月:逢單月為30天;逢雙月為31天。②平年、閏年:

僅僅處理2月份的天數(shù):平年的2月份天數(shù)為28天,閏年的2月份天數(shù)為29天。

5、程序流程圖如下:(1)電子時(shí)鐘計(jì)算程序圖

(2)調(diào)整流程圖

程序編寫如下:

;///////////////////////////////////////////////////////// ORG 0000H

LJMP START ORG 0003H LJMP PROINT0

;int0用來切換時(shí)鐘調(diào)整位置

ORG 0013H

;用來調(diào)整時(shí)間,只加不減 LJMP PROINT1

ORG 001BH

;5ms的延遲,計(jì)數(shù)200次則為1秒

LJMP PROTIME

ORG 0030H

;主程序

TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

;0 1 2 3 4 5 6 7 8 9

ORG 0050H

START: MOV TCON,#05H

;中斷初始化

MOV IE ,#8DH MOV TMOD,#10H MOV TH1,#0eCH

;定時(shí)器初始化

MOV TL1,#78H

MOV 31H,#0AH

;10秒 MOV 32H,#1EH;30分 MOV 33H,#09H;9點(diǎn) MOV 34H,#0AH MOV 35H,#06H MOV 36H,#05H MOV 37H,#14H

;10號(hào);6月;2005年

;R7 存放切換標(biāo)志 0 NORMAL , 1 HOUR ,2 MINUTE ,3 SECOND ,4 YEAR,5 MONTH,6 DAY

MOV R1,#00H

;確定在調(diào)時(shí)不按鍵的最長(zhǎng)時(shí)間,10秒后返回normal狀態(tài)

MOV R7,#00H

;切換標(biāo)志

MOV 40H,#00H

;十六進(jìn)制轉(zhuǎn)換BCD的高位 MOV 41H,#00H

;十六進(jìn)制轉(zhuǎn)換BCD的低位

MOV R6,#00H

;調(diào)時(shí)的位閃爍的時(shí)間間隔

MOV R4,#00H

;用來計(jì)數(shù)5ms的中斷次數(shù),200次則一秒

mov r3,#00h

SETB TR1

;開始計(jì)時(shí) AGAIN:

ACALL PROSHOW

;顯示

AJMP AGAIN

PROSHOW:

CJNE R3,#00H,SHOWDATE

;如果r3等于1就顯示日期,等于0就顯示時(shí)鐘 CJNE R7,#04H,DATE1

;顯示程序

AJMP SHOWDATE

;showdate顯示年月日 AJMP SHOWDATE DATE1: CJNE R7,#05H,DATE2 DATE2: CJNE R7,#06H,SHOWCLOCK AJMP SHOWDATE

showCLOCK: MOV R0,33H

;showclock顯示時(shí)分秒,先顯示時(shí)

ACALL PROHTOD

CJNE R7,#01H,CLK1 INC R6

CJNE R6,#03H,CLK2

;若處于調(diào)時(shí)狀態(tài),則該位閃爍

MOV R6 ,#00H CLK1: clr P2.4 mov a,41H MOV P0, a

;顯示時(shí)的低位 ACALL DELAY3MS CLK2: SETB P2.4 CLR P2.5 mov a,40H

MOV P0,a

;顯示時(shí)的高位 ACALL DELAY3MS SETB P2.5

MOV R0,32H

;顯示分 ACALL PROHTOD CJNE R7,#02H,CLK3 INC R6

CJNE R6,#03H,CLK4

;若處于調(diào)時(shí)狀態(tài),則該位閃爍

MOV R6,#00H CLK3: CLR P2.2

mov a,41H MOV P0, a

;顯示分的低位 ACALL DELAY3MS CLK4:

SETB P2.2 CLR P2.3 mov a,40h MOV P0,a

;顯示分的高位 ACALL DELAY3MS SETB P2.3

MOV R0,31H

;顯示秒

ACALL PROHTOD CJNE R7,#03H,CLK5 INC R6

CJNE R6,#03H,CLK6

MOV R6,#00H CLK5: CLR P2.0 mov a,41H MOV P0, a

ACALL DELAY3MS CLK6: SETB P2.0 CLR P2.1 mov a,40h MOV P0,a

ACALL DELAY3MS SETB P2.1

RET

SHOWDATE: MOV R0,36H

ACALL PROHTOD CJNE R7,#04H,DAY1 INC R6

CJNE R6,#03H,DAY2

MOV R6,#00H DAY1: CLR P2.4 MOV P0,41H

ACALL DELAY3MS DAY2: SETB P2.4 CLR P2.5 MOV P0,40H

ACALL DELAY3MS SETB P2.5

MOV R0,35H

ACALL PROHTOD CJNE R7,#05H,MONTH1

;若處于調(diào)時(shí)狀態(tài),則該位閃爍

;顯示秒的低位

;顯示秒的高位

;顯示年

;若處于調(diào)時(shí)狀態(tài),則該位閃爍;顯示年的低位

;顯示年的高位

;顯示月

INC R6

CJNE R6,#03H,MONTH2

;若處于調(diào)時(shí)狀態(tài),則該位閃爍

MOV R6,#00H MONTH1: CLR P2.2 MOV P0,41H

;顯示月的低位

ACALL DELAY3MS MONTH2: SETB P2.2

CLR P2.3 MOV P0,40H

;顯示月的高位

ACALL DELAY3MS SETB P2.3

MOV R0,34H

ACALL PROHTOD CJNE R7,#06H,YEAR1 INC R6

CJNE R6,#03H,YEAR2

MOV R6,#00H YEAR1: CLR P2.0

MOV P0,41H

ACALL DELAY3MS YEAR2: SETB P2.0 CLR P2.1 MOV P0,40H

ACALL DELAY3MS SETB P2.1

RET

PROHTOD:PUSH ACC

MOV A,R0 MOV B,#0AH DIV AB MOV DPTR,#0030H MOVC A,@A+DPTR MOV 40H,A MOV A,B MOVC A,@A+DPTR MOV 41H,A POP ACC RET

;顯示日

;若處于調(diào)時(shí)狀態(tài),則該位閃爍

;十六進(jìn)制數(shù)轉(zhuǎn)換成bcd碼,且可以直接輸出p0口

DELAY3MS:

;DELAY3MS MOV 45H,#08H DELAY1: MOV 46H,#0FFH DELAY2: DJNZ 46H,DELAY2 DJNZ 45H,DELAY1 RET

PROINT0:

CLR EX0

;切換鍵中斷程序 MOV R3,#00H ACALL PROSHOW MOV C,P3.2 JC IEXIT0 MOV R1,#00H INC R7 CJNE R7,#07H,IEXIT0

MOV R7,#00H INT01: MOV C,P3.2 JC INT02 ACALL PROSHOW AJMP INT01 INT02: ACALL PROSHOW IEXIT0: SETB EX0 RETI

PROINT1:CLR EX1

ACALL PROSHOW MOV C,P3.3 JC IEXIT1 LCALL ISYEAR

;判斷平年閏年

LCALL ISMONTH

;判斷月份,確定最大日數(shù)

MOV R1,#00H CJNE R7,#00H,NEXT1

;若不是調(diào)時(shí)狀態(tài),按此鍵就是切換顯示日期、時(shí)鐘

INC R3 CJNE R3,#02H,IEXIT1 MOV R3,#00H AJMP IEXIT1 NEXT1: mov r3,#00h

CJNE R7,#03H,NEXT2

;修改秒位 INC 31H MOV A,31H CJNE A,#3CH,INT11

;遇60變0 MOV 31H,#00H AJMP IEXIT1

NEXT2: CJNE R7,#02H,NEXT3

;修改分位

INC 32H MOV A,31H

CJNE A,#3CH,INT11

;遇60變0 MOV 31H,#00H AJMP IEXIT1 NEXT3: CJNE R7,#01H,NEXT4

;修改時(shí)位

INC 33H MOV A,33H CJNE A,#18H,INT11

;遇24變0 MOV 33H,#00H AJMP IEXIT1 NEXT4: CJNE R7,#06H,NEXT5

;修改日

INC 34H MOV A,34H CJNE A,49H,INT11

;到月底就返回月初 MOV 34H,#01H AJMP IEXIT1

NEXT5: CJNE R7,#05H,NEXT6

;修改月

INC 35H

MOV A,35H CJNE A,#0DH,INT11

;十二月過后就跳回1月 MOV 35H,#01H AJMP IEXIT1 NEXT6: CJNE R7,#04H,INT11

;修改年

INC 36H

MOV A,36H CJNE A,#64H,INT11

MOV 36H,#00H MOV C,P3.3 INT11: JC INT12 ACALL PROSHOW AJMP INT11 INT12: ACALL PROSHOW IEXIT1: setb EX1

RETI PROTIME:

MOV TMOD,#10H MOV TH1,#3CH

;定時(shí)器初始化 MOV TL1,#60H setb tr1 INC R4

CJNE R4,#0c8H,EXIT

MOV R4,#00H

;計(jì)滿1秒則清零 CJNE R7,#00H,DIAOSHI

AJMP NORMAL DIAOSHI:INC R1

;調(diào)時(shí)不按鍵的最長(zhǎng)時(shí)間為10秒,在此期間又鍵按下重新計(jì)時(shí)

CJNE R1,#0AH,EXIT MOV R7,#00H

;到10秒則返回正常顯示狀態(tài) MOV R1,#00H AJMP EXIT

NORMAL:ACALL ISYEAR

;判斷平閏年,返回標(biāo)志48h,0為平年,1為閏年

ACALL ISMONTH

;判斷哪個(gè)月,返回該月的最大日數(shù),存放在49h

INC 31H

MOV A,31H

;秒加一 CJNE A,#3CH,EXIT MOV 31H,#00H

INC 32H

;分加一 MOV A,32H CJNE A,#3CH,EXIT MOV 32H,#00H INC 33H

;時(shí)加一 MOV A,33H CJNE A,#18H,EXIT MOV 33H,#00H INC 34H

MOV A,34H CJNE A,49H,EXIT MOV 34H,#01H INC 35H

MOV A,35H CJNE A,#0DH,EXIT MOV 35H,#01H INC 36H

MOV A,36H CJNE A,#64H,EXIT MOV 36H,#00H;年加一;月加一;日加一 EXIT:

RETI

ISYEAR: MOV A,36H;判斷平閏年

MOV B,#04H

DIV AB MOV A,B CJNE A,#00H,EXITYEAR1 MOV 48H,#01H

;閏年 SJMP EXITYEAR MOV 48H,#00H

;平年 EXITYEAR1: EXITYEAR: RETI

ISMONTH:

MOV A,35H

;開始檢查月份 CJNE A,#02H,NEXTMON1

;判斷二月 MOV R2,48H

CJNE R2,#00H,RUNNIAN MOV 49H,#1DH

;平年為28天,賦29給49h AJMP EXITMONTH RUNNIAN:MOV 49H,#1EH

;閏年為29天,賦30天給49h

AJMP EXITMONTH

NEXTMON1: CJNE A,#04H,NEXTMON2

AJMP XIAOYUE

NEXTMON2:CJNE A,#06H,NEXTMON3 AJMP XIAOYUE

NEXTMON3:CJNE A,#09H,NEXTMON4 AJMP XIAOYUE NEXTMON4:CJNE A,#0BH,DAYUE XIAOYUE: MOV 49H,#1FH

;四,六,九,十一月是小月,30天,但應(yīng)該賦31天給比較值49h,AJMP EXITMONTH DAYUE: MOV 49H,#20H

;其他月份為大月,31天,賦32天給49h EXITMONTH: RETI END

第五篇:《電子課程設(shè)計(jì)心得體會(huì)》與《單片機(jī)課程設(shè)計(jì)心得體會(huì)》

《電子課程設(shè)計(jì)心得體會(huì)范文》與《單片機(jī)課程設(shè)計(jì)心得體會(huì)》合集

電子課程設(shè)計(jì)心得體會(huì)范文(一)

通過這次為期近半月的課程設(shè)計(jì),我們深感自己動(dòng)手操作的重要性。我們?cè)谡n堂上接觸到的多半是蒼白的理論,在實(shí)踐層面上只有一定的指導(dǎo)作用。但是真正在實(shí)際運(yùn)用過程中,我們?nèi)绻狈Ρ匾募皶r(shí)鍛煉,那將會(huì)感覺到力不從心。理工科本來就是一門集思維和動(dòng)手能力于一體的學(xué)科,要想真正掌握好,思考、假設(shè)和實(shí)驗(yàn)驗(yàn)證都是必不可少的。在通過很多的理論學(xué)習(xí)之后,我們通過課程設(shè)計(jì)和相關(guān)的實(shí)驗(yàn)把書本上的理論知識(shí)在實(shí)際運(yùn)用中加以利用,鞏固了理論知識(shí)的同時(shí)也增強(qiáng)了我們的動(dòng)手能力。

另外,我們生活在一個(gè)講究團(tuán)隊(duì)合作的社會(huì)里。通過團(tuán)隊(duì)的協(xié)作,也培養(yǎng)了我們團(tuán)結(jié)互助,相互協(xié)調(diào)的團(tuán)隊(duì)合作能力。通過大家的努力,我們共同完成了小組的任務(wù),大家集思廣益,各抒己見,共同把一個(gè)個(gè)問題解決。雖然辛苦,但是我們也享受著這次課程設(shè)計(jì)中給我們帶來的樂趣,那就是自己親自動(dòng)手解決好實(shí)際問題,雖然我們做的還不夠,但是我們也算是邁出了艱難的一步。我們學(xué)習(xí)理論知識(shí)的最終目的還是要走向?qū)嶋H運(yùn)用,通過這種模擬式的學(xué)習(xí),我們加深認(rèn)識(shí)到理論與實(shí)踐的差異。通過這個(gè)課程設(shè)計(jì),我們大家把整個(gè)學(xué)習(xí)階段的各種學(xué)科知識(shí)竄聯(lián)在一起,更好地認(rèn)識(shí)到學(xué)習(xí)是一個(gè)系統(tǒng)工程。我們的每一個(gè)環(huán)節(jié)都是在為以后的實(shí)踐環(huán)節(jié)做鋪墊,我們的每一個(gè)環(huán)節(jié)都是要有所掌握才可以順利完成任務(wù)。

通過這樣的實(shí)踐活動(dòng),我們還可以充分發(fā)揮自己的主觀能動(dòng)性,因人而異,合理分配任務(wù),團(tuán)結(jié)協(xié)作,一起朝著任務(wù)的方向不斷地奮斗,大家都很辛苦,各自完成自己負(fù)責(zé)的那部分工作。我們都深感動(dòng)手起來遇到的各種問題都要親自去解決是一件很不容易的事情,同時(shí)我們也在實(shí)踐過程中修復(fù)了以往學(xué)習(xí)的很多漏洞。我們也得到了不同程度的完善和提升。希望以后能多舉行多參與這類型的實(shí)踐活動(dòng)。把理論知識(shí)結(jié)合到實(shí)踐層面去,理論結(jié)合實(shí)際學(xué)習(xí)才會(huì)更有聲有色。要把我們學(xué)到理論知識(shí)的真正利用到生產(chǎn)實(shí)際中還需要大量的實(shí)踐和運(yùn)用。

我們忘不了自己在這一過程中的努力與收獲,我們也相信付出與收獲成正比,我們付出的越多,相應(yīng)地收獲也就越多。我們有大塊的時(shí)間在準(zhǔn)備,在學(xué)習(xí)的過程中,我們要不斷地改進(jìn)和學(xué)習(xí),多多交流才能更好更輕松地學(xué)習(xí)。

電子課程設(shè)計(jì)心得體會(huì)范文(二)

通過此次課程設(shè)計(jì),使我更加扎實(shí)的掌握了有關(guān)高頻電子線路方面的知識(shí),在設(shè)計(jì)過程中雖然遇到了一些問題,但經(jīng)過一次又一次的思考,一遍又一遍的檢查終于找出了原因所在,也暴露出了前期我在這方面的知識(shí)欠缺和經(jīng)驗(yàn)不足。實(shí)踐出真知,通過親自動(dòng)手制作,使我們掌握的知識(shí)不再是紙上談兵。

過而能改,善莫大焉。在課程設(shè)計(jì)過程中,我們不斷發(fā)現(xiàn)錯(cuò)誤,不斷改正,不斷領(lǐng)悟,不斷獲齲最終的檢測(cè)調(diào)試環(huán)節(jié),本身就是在踐行“過而能改,善莫大焉”的知行觀。這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多問題,最后在老師的指導(dǎo)下,終于游逆而解。在今后社會(huì)的發(fā)展和學(xué)習(xí)實(shí)踐過程中,一定要不懈努力,不能遇到問題就想到要退縮,一定要不厭其煩的發(fā)現(xiàn)問題所在,然后一一進(jìn)行解決,只有這樣,才能成功的做成想做的事,才能在今后的道路上劈荊斬棘,而不是知難而退,那樣永遠(yuǎn)不可能收獲成功,收獲喜悅,也永遠(yuǎn)不可能得到社會(huì)及他人對(duì)你的認(rèn)可!

課程設(shè)計(jì)誠然是一門專業(yè)課,給我很多專業(yè)知識(shí)以及專業(yè)技能上的提升,同時(shí)又是一門講道課,一門辯思課,給了我許多道,給了我很多思,給了我莫大的空間。同時(shí),設(shè)計(jì)讓我感觸很深。使我對(duì)抽象的理論有了具體的認(rèn)識(shí)。通過這次課程設(shè)計(jì),我掌握了常用元件的識(shí)別和測(cè)試;熟悉了常用儀器、儀表;了解了電路的連線方法;以及如何提高電路的性能等等,掌握了焊接的方法和技術(shù),通過查詢資料,也了解了收音機(jī)的構(gòu)造及原理。

我認(rèn)為,在這學(xué)期的實(shí)驗(yàn)中,不僅培養(yǎng)了獨(dú)立思考、動(dòng)手操作的能力,在各種其它能力上也都有了提高。更重要的是,在實(shí)驗(yàn)課上,我們學(xué)會(huì)了很多學(xué)習(xí)的方法。而這是日后最實(shí)用的,真的是受益匪淺。要面對(duì)社會(huì)的挑戰(zhàn),只有不斷的學(xué)習(xí)、實(shí)踐,再學(xué)習(xí)、再實(shí)踐。這對(duì)于我們的將來也有很大的幫助。以后,不管有多苦,我想我們都能變苦為樂,找尋有趣的事情,發(fā)現(xiàn)其中珍貴的事情。就像提倡的艱苦奮斗一樣,我們都可以在實(shí)驗(yàn)結(jié)束之后變的更加成熟,會(huì)面對(duì)需要面對(duì)的事情。

回顧起此課程設(shè)計(jì),至今我仍感慨頗多,從理論到實(shí)踐,在這段日子里,可以說得是苦多于甜,但是可以學(xué)到很多很多的東西,同時(shí)不僅可以鞏固了以前所學(xué)過的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過的知識(shí)。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說得是困難重重,但可喜的是最終都得到了解決。

實(shí)驗(yàn)過程中,也對(duì)團(tuán)隊(duì)精神的進(jìn)行了考察,讓我們?cè)诤献髌饋砀幽酰诔晒笠黄痼w會(huì)喜悅的心情。果然是團(tuán)結(jié)就是力量,只有互相之間默契融洽的配合才能換來最終完美的結(jié)果。

此次設(shè)計(jì)也讓我明白了思路即出路,有什么不懂不明白的地方要及時(shí)請(qǐng)教或上網(wǎng)查詢,只要認(rèn)真鉆研,動(dòng)腦思考,動(dòng)手實(shí)踐,就沒有弄不懂的知識(shí),收獲頗豐。

電子課程設(shè)計(jì)心得體會(huì)范文(三)

本學(xué)期實(shí)時(shí)測(cè)量技術(shù)實(shí)驗(yàn)以電子設(shè)計(jì)大賽的形式,老師命題,學(xué)生可以選擇老師的題目也可以自己命題,并且組隊(duì)操作其他的事情(包括設(shè)計(jì)總體方案、硬件電路、軟件設(shè)計(jì)、焊接、調(diào)試等工作)。趣味性強(qiáng),同時(shí)也可以學(xué)到很多東西。

我們認(rèn)為,在這學(xué)期的實(shí)驗(yàn)中,在收獲知識(shí)的同時(shí),還收獲了閱歷,收獲了成熟,在此過程中,我們通過查找大量資料,請(qǐng)教老師,以及不懈的努力,不僅培養(yǎng)了獨(dú)立思考、動(dòng)手操作的能力,在各種其它能力上也都有了提高。更重要的是,在實(shí)驗(yàn)課上,我們學(xué)會(huì)了很多學(xué)習(xí)的方法。而這是日后最實(shí)用的,真的是受益匪淺。要面對(duì)社會(huì)的挑戰(zhàn),只有不斷的學(xué)習(xí)、實(shí)踐,再學(xué)習(xí)、再實(shí)踐。

之所以使用avr單片機(jī)作為我們的執(zhí)行核心,不僅是因?yàn)槔蠋熣favr現(xiàn)在是社會(huì)上應(yīng)用比較多的單片機(jī),也因?yàn)橄胪ㄟ^使用avr鍛煉自己的c語言編程能力,養(yǎng)成良好的c語言編程風(fēng)格。不管怎樣,這些都是一種鍛煉,一種知識(shí)的積累,能力的提高。完全可以把這個(gè)當(dāng)作基礎(chǔ)東西,只有掌握了這些最基礎(chǔ)的,才可以更進(jìn)一步,取得更好的成績(jī)。很少有人會(huì)一步登天吧。永不言棄才是最重要的。

與隊(duì)友的合作更是一件快樂的事情,只有彼此都付出,彼此都努力維護(hù)才能將作品做的更加完美。而團(tuán)隊(duì)合作也是當(dāng)今社會(huì)最提倡的。曾經(jīng)聽過,xx之所以最近不受歡迎就是因?yàn)榍啡眻F(tuán)隊(duì)合作的精神和技巧。

電壓電流測(cè)量裝置雖然結(jié)束了,也留下了很多遺憾,因?yàn)橛捎跁r(shí)間的緊缺和許多課業(yè)的繁忙,并沒有做到最好,但是,最起碼我們沒有放棄,它是我們的驕傲!相信以后我們會(huì)以更加積極地態(tài)度對(duì)待我們的學(xué)習(xí)、對(duì)待我們的生活。我們的激情永遠(yuǎn)不會(huì)結(jié)束,相反,我們會(huì)更加努力,努力的去彌補(bǔ)自己的缺點(diǎn),發(fā)展自己的優(yōu)點(diǎn),去充實(shí)自己,只有在了解了自己的長(zhǎng)短之后,我們會(huì)更加珍惜擁有的,更加努力的去完善它,增進(jìn)它。只有不斷的測(cè)試自己,挑戰(zhàn)自己,才能擁有更多的成功和快樂!快樂至上,享受過程,而不是結(jié)果!認(rèn)真對(duì)待每一個(gè)實(shí)驗(yàn),珍惜每一分一秒,學(xué)到最多的知識(shí)和方法,鍛煉自己的能力,這個(gè)是我們?cè)趯?shí)時(shí)測(cè)量技術(shù)試驗(yàn)上學(xué)到的最重要的東西,也是以后都將受益匪淺的!

單片機(jī)課程設(shè)計(jì)心得體會(huì)

單片機(jī)課程設(shè)計(jì)心得體會(huì)【一】

課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程。隨著科學(xué)技術(shù)發(fā)展的日新日異,單片機(jī)已經(jīng)成為當(dāng)今計(jì)算機(jī)應(yīng)用中空前活躍的領(lǐng)域,在生活中可以說得是無處不在。因此作為二十一世紀(jì)的大學(xué)來說掌握單片機(jī)的開發(fā)技術(shù)是十分重要的。

回顧起此次單片機(jī)課程設(shè)計(jì),至今我仍感慨頗多,的確,從選題到定稿,從理論到實(shí)踐,在整整兩星期的日子里,可以說得是苦多于甜,但是可以學(xué)到很多很多的的東西,同時(shí)不僅可以鞏固了以前所學(xué)過的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過的知識(shí)。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會(huì)遇到過各種各樣的問題,同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過的知識(shí)理解得不夠深刻,掌握得不夠牢固,比如說三極管PNP管腳不懂怎么放置,不懂分得二極管的正負(fù)極,對(duì)單片機(jī)匯編語言掌握得不好……通過這次課程設(shè)計(jì)之后,一定把以前所學(xué)過的知識(shí)重新溫故。

這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多編程問題,最后在信盈達(dá)劉老師的辛勤指導(dǎo)下,終于游逆而解。同時(shí),在劉老師的身上我學(xué)得到很多實(shí)用的知識(shí),在次我表示感謝!同時(shí),對(duì)給過我?guī)椭乃型瑢W(xué)和信盈達(dá)各位指導(dǎo)老師再次表示忠心的感謝!

一、單片機(jī)課程設(shè)計(jì)總結(jié)

做了兩周的課程設(shè)計(jì),有很多的心得體會(huì),有關(guān)于單片機(jī)方面的,更多的是關(guān)于人與人之間關(guān)系方面的。

我們組一共有三個(gè)人,但其他兩個(gè)人是真的神龍見首不見尾,除了在最后答辯的時(shí)候他們一起坐在了我旁邊,冠冕堂皇的指著我畫了幾遍的圖說了幾嘴,我想可能他們自己都不知道自己在說怎么,雖然有的東西他們也答出來了。我佩服他們的勇氣,羨慕他們的運(yùn)氣(我見到的很多做了10

天的人最后的成績(jī)都有不如他們的),但是鄙視他們的做法。

所幸的是,我得到了很多同學(xué)的幫助。我想沒有他們我可能都要放棄了,因?yàn)槲冶救藢?duì)單片機(jī)也并不是很熟悉,學(xué)的東西好像它是它,我是我似的,理論聯(lián)系不了實(shí)際。以前的匯編語言沒學(xué)好,一開始的程序這塊兒就要令我抓狂了。后來請(qǐng)教我們班的一個(gè)男生,每次跟他一起到試驗(yàn)室調(diào)試程序(他們組也只有他一個(gè)人動(dòng)手),看他邊做邊給我講解。最后在開發(fā)機(jī)上做出來的時(shí)候,雖然不是我自己寫的,但看他那么高興,我也有一種分享到的成就感。后來我們組就用了他寫的程序,他自己又抽空做了些拓展。

接下來就是做硬件方面的焊接工作了。沒想到這項(xiàng)看起來不需要多少技術(shù)的工作卻是非常的勞心勞力。很多次是早上起來帶瓶水帶些吃的到實(shí)訓(xùn)中心,一泡就是一天。我看到有很多人跟我一樣,不同的是他們是三三兩兩,而我大部分時(shí)間都是一個(gè)人做。在這個(gè)時(shí)候也有很多人幫助我,或是熱心的幫我?guī)э垼蚴窃谖掖蝽飪旱臅r(shí)候幫我做點(diǎn)焊接。大家都鼓勵(lì)我,即使最后出不來東西,但是一定要堅(jiān)持把它做完。當(dāng)我想放棄的時(shí)候,我也這么對(duì)自己說,即使你做出來的是次品甚至不合格品,但是你一定要拿出來一件成品。

在要驗(yàn)收前,終于做了一件成品出來,不幸的是它真的是一件不合格品。幫我的那個(gè)男生做的已經(jīng)出來了,所以最后應(yīng)該還是我的焊接方面的問題。有一點(diǎn)灰心,想再重做來不及了,單是檢查線路卻也查不出來什么問題。那么就準(zhǔn)備答辯吧。我對(duì)著電路圖再看課本,發(fā)現(xiàn)以前很多覺得很難記的東西現(xiàn)在記起來容易多了,因?yàn)檎於荚谕鼈兇蚪坏馈?1的引腳及其功能,A/D轉(zhuǎn)換器的,驅(qū)動(dòng)器的,所有我用到的我都一再的看書了解,同時(shí)請(qǐng)教同學(xué)我看書過程當(dāng)中的疑惑。在這個(gè)過程中又發(fā)現(xiàn)了以前焊接當(dāng)中出的一些問題,能改的就改,不能改的,咳,要是時(shí)間再多一些,或者我能早點(diǎn)做好,要是不只是我一個(gè)人動(dòng)手……算了吧,不要想那些如果,還是準(zhǔn)備我自己的,做好我現(xiàn)在能做的吧。

還好,驗(yàn)收還算成功,得了3分,不是很高,但是我覺得對(duì)我來說已經(jīng)很好,代表了我真實(shí)的水平,我覺得我對(duì)單片機(jī)的一些知識(shí)在這個(gè)動(dòng)手的過程中真的是從無到有增長(zhǎng)的。同時(shí)我也盡量不去想別人得了多少分,沒有什么不平衡的,有些人付出的是努力,有些人付出的是風(fēng)險(xiǎn)代價(jià),其實(shí)這也沒有什么不一樣,這一點(diǎn)我早就了解。

最后,我發(fā)現(xiàn)自己對(duì)單片機(jī)竟然也有了一點(diǎn)興趣,想暑假回家以后自己去買一些東西來做,再補(bǔ)一補(bǔ)匯編語言。有什么問題請(qǐng)教下以前的那些老同學(xué)好了,他們好厲害,在高中勞動(dòng)課就成功的做出過調(diào)頻收音機(jī),大一暑假的時(shí)候參加了學(xué)校的電子競(jìng)賽培訓(xùn)接著比賽,不過后來怎么樣我就不知道了。汗。看來要多保持聯(lián)絡(luò),這次回家就好好找他們敘敘舊。

二、單片機(jī)課程設(shè)計(jì)感想

通過一個(gè)學(xué)期的學(xué)習(xí),我認(rèn)為要學(xué)好C語言程序這門課程,不僅要認(rèn)真閱讀課本知識(shí),更重要的是要通過上機(jī)實(shí)踐才能增強(qiáng)和鞏固我的知識(shí)。特別是作為高職生,更要注重實(shí)踐這一環(huán)節(jié),只有這樣我們才能成為合格的計(jì)算機(jī)人材。

整個(gè)設(shè)計(jì)通過了軟件和硬件上的調(diào)試。我想這對(duì)于自己以后的學(xué)習(xí)和工作都會(huì)有很大的幫助。在這次設(shè)計(jì)中遇到了很多實(shí)際性的問題,在實(shí)際設(shè)計(jì)中才發(fā)現(xiàn),書本上理論性的東西與在實(shí)際運(yùn)用中的還是有一定的出入的,所以有些問題不但要深入地理解,而且要不斷地更正以前的錯(cuò)誤思維。一切問題必須要靠自己一點(diǎn)一滴的解決,而在解決的過程當(dāng)中你會(huì)發(fā)現(xiàn)自己在飛速的提升。對(duì)于教材管理系統(tǒng),其程序是比較簡(jiǎn)單的,主要是解決程序設(shè)計(jì)中的問題,而程序設(shè)計(jì)是一個(gè)很靈活的東西,它反映了你解決問題的邏輯思維和創(chuàng)新能力,它才是一個(gè)設(shè)計(jì)的靈魂所在。因此在整個(gè)設(shè)計(jì)過程中大部分時(shí)間是用在程序上面的。很多子程序是可以借鑒書本上的,但怎樣銜接各個(gè)子程序才是關(guān)鍵的問題所在,這需要對(duì)系統(tǒng)的結(jié)構(gòu)很熟悉。因此可以說系統(tǒng)的設(shè)計(jì)是軟件和硬件的結(jié)合,二者是密不可分的。通過這次課程設(shè)計(jì)我也發(fā)現(xiàn)了自身存在的不足之處,雖然感覺理論上已經(jīng)掌握,但在運(yùn)用到實(shí)踐的過程中仍有意想不到的困惑,經(jīng)過一番努力才得以解決。

這也激發(fā)了我今后努力學(xué)習(xí)的興趣,我想這將對(duì)我以后的學(xué)習(xí)產(chǎn)生積極的影響。其次,這次課程設(shè)計(jì)讓我充分認(rèn)識(shí)到團(tuán)隊(duì)合作的重要性,只有分工協(xié)作才能保證整個(gè)項(xiàng)目的有條不絮。另外在課程設(shè)計(jì)的過程中,當(dāng)我們碰到不明白的問題時(shí),指導(dǎo)老師總是耐心的講解,給我們的設(shè)計(jì)以極大的幫助,使我們獲益匪淺。因此非常感謝老師的教導(dǎo)。通過這次設(shè)計(jì),我懂得了學(xué)習(xí)的重要性,了解到理論知識(shí)與實(shí)踐相結(jié)合的重要意義,學(xué)會(huì)了堅(jiān)持、耐心和努力,這將為自己今后的學(xué)習(xí)和工作做出了最好的榜樣。我覺得作為一名軟件工程專業(yè)的學(xué)生,這次課程設(shè)計(jì)是很有意義的。更重要的是如何把自己平時(shí)所學(xué)的東西應(yīng)用到實(shí)際中。雖然自己對(duì)于這門課懂的并不多,很多基礎(chǔ)的東西都還沒有很好的掌握,覺得很難,也沒有很有效的辦法通過自身去理解,但是靠著這一個(gè)多禮拜的“學(xué)習(xí)”,在小組同學(xué)的幫助和講解下,漸漸對(duì)這門課逐漸產(chǎn)生了些許的興趣,自己開始主動(dòng)學(xué)習(xí)并逐步從基礎(chǔ)慢慢開始弄懂它。

我認(rèn)為這個(gè)收獲應(yīng)該說是相當(dāng)大的。一開始我們從參考書上找來了課題,但是畢竟是參考書,做到后來發(fā)現(xiàn)很多程序都是不完整的,這讓我們傷透了腦筋。看著別的小組都弄得有模有樣了,可是我們連一個(gè)課題都還沒有定好。好不容易又找到了課題,可是結(jié)果還是很不盡人意。程序接線什么的都弄好了,調(diào)試也沒有問題,可是就是無法達(dá)到預(yù)期想要的結(jié)果。參考書畢竟只是一個(gè)參考,設(shè)計(jì)這種東西最后還是要靠自己動(dòng)腦筋。然后我們大家一起齊心協(xié)力,從平時(shí)做的實(shí)驗(yàn)﹑老師上課的舉例﹑書本上的知識(shí)以及老師的輔導(dǎo)和其他同學(xué)的幫助下終于完成了。應(yīng)該說這是通過我們小組成員的共同努力和動(dòng)腦完成的,雖然內(nèi)容并不是很復(fù)雜,但是我們覺得設(shè)計(jì)的過程相當(dāng)重要,學(xué)到了很多,收獲了很多。我覺得課程設(shè)計(jì)反映的是一個(gè)從理論到實(shí)際應(yīng)用的過程,但是更遠(yuǎn)一點(diǎn)可以聯(lián)系到以后畢業(yè)之后從學(xué)校轉(zhuǎn)到踏上社會(huì)的一個(gè)過程。小組人員的配合﹑相處,以及自身的動(dòng)腦和努力,都是以后工作中需要的。

單片機(jī)課程設(shè)計(jì)心得體會(huì)【二】

兩周的單片機(jī)課程設(shè)計(jì)最后順利完成了,其中包含著快樂,也有辛酸。我們選的設(shè)計(jì)題目是“數(shù)字溫度計(jì)”,大家都覺得這個(gè)題目是比較簡(jiǎn)單的。其實(shí)不然,做了之后,發(fā)現(xiàn)設(shè)計(jì)電路雖然簡(jiǎn)單,但我們認(rèn)為它真正困難的地方是程序設(shè)計(jì),但是在我們同心努力下最終完成了。

我們剛選該題目時(shí),真的是一頭霧水,硬件電路不知如何下手,更何談解決程序那塊,因?yàn)槲覀兯鶎W(xué)的都是單片機(jī)方面的理論知識(shí),應(yīng)用到實(shí)踐中去還比較少。但是,我們?nèi)艘矝]偷下懶,迅速分工去查閱和收集資料。我們?nèi)チ藞D書館借一些參考書,上網(wǎng)找一些相關(guān)資料,并且請(qǐng)教指導(dǎo)老師。透過不斷努力,最后把數(shù)字溫度計(jì)的思路和模型定了下來并開始分一個(gè)人去焊接硬件電路,剩下的去整理和修改程序。

透過一番整理和修改后,在電腦上進(jìn)行仿真,仿真成功后準(zhǔn)備焊接電路板。在焊接電路板中,我們首先對(duì)硬件電路進(jìn)行布局,然后確認(rèn)無誤后,在電路板上進(jìn)行焊接,這個(gè)過程我們覺得是做得比較快的,以至于后面出現(xiàn)了虛焊的錯(cuò)誤。

焊接電路板完工,細(xì)心檢查后,進(jìn)行通電測(cè)試。結(jié)果液晶LCD沒有顯示,透過檢查,原先是LCD壞了,在換了塊新的后,能顯示顯示值。但還有個(gè)問題是,當(dāng)報(bào)警電路不會(huì)報(bào)警,在請(qǐng)教老師后,發(fā)現(xiàn)走動(dòng)蜂鳴器的電壓太低了,是因?yàn)榇恿艘粋€(gè)太大的電阻。然后,我們換了一個(gè)小電阻,但這時(shí)蜂鳴器卻一向在叫,停不下來,但是,在我們?nèi)说牡募?xì)心檢查下,原先是在放大電路的一端虛焊了,這說明我們焊接電路的技術(shù)還不夠好。在重新焊接那端后,數(shù)字溫度電路最后成功實(shí)現(xiàn)功能,當(dāng)時(shí)我們的情緒都是無比興奮和快樂的,因?yàn)槲覀儍芍艿男量鄾]有白費(fèi)。

在完成單片機(jī)課程設(shè)計(jì)后,我們發(fā)現(xiàn)我們還有許多不足,所學(xué)到的知識(shí)還遠(yuǎn)遠(yuǎn)不夠,以至于還有一些功能不能被動(dòng)完成。但透過學(xué)習(xí)這一次實(shí)踐,增強(qiáng)了我們的動(dòng)手潛力,提高和鞏固了單片機(jī)方面的知識(shí),個(gè)性是軟件方面。從中增強(qiáng)了我們的團(tuán)隊(duì)合作精神,并讓我們認(rèn)識(shí)到把理論應(yīng)用到實(shí)踐中去是多么重要。

單片機(jī)課程設(shè)計(jì)心得體會(huì)【三】

做了兩周的課程設(shè)計(jì),有很多的心得體會(huì),有關(guān)于單片機(jī)方面的,更多的是關(guān)于人與人之間關(guān)系方面的。

我們組一共有三個(gè)人,但其他兩個(gè)人是真的神龍見首不見尾,除了在最后答辯的時(shí)候他們一齊坐在了我旁邊,冠冕堂皇的指著我畫了幾遍的圖說了幾嘴,我想可能他們自己都不明白自己在說怎樣,雖然有的東西他們也答出來了。我佩服他們的勇氣,羨慕他們的運(yùn)氣(我見到的很多做了10天的人最后的成績(jī)都有不如他們的),但是鄙視他們的做法。

所幸的是,我得到了很多同學(xué)的幫忙。我想沒有他們我可能都要放下了,因?yàn)槲冶救藢?duì)單片機(jī)也并不是很熟悉,學(xué)的東西好像它是它,我是我似的,理論聯(lián)系不了實(shí)際。以前的匯編語言沒學(xué)好,一開始的程序這塊兒就要令我抓狂了。之后請(qǐng)教我們班的一個(gè)男生,每次跟他一齊到試驗(yàn)室調(diào)試程序(他們組也只有他一個(gè)人動(dòng)手),看他邊做邊給我講解。最后在開發(fā)機(jī)上做出來的時(shí)候,雖然不是我自己寫的,但看他那么高興,我也有一種分享到的成就感。之后我們組就用了他寫的程序,他自己又抽空做了些拓展。

接下來就是做硬件方面的焊接工作了。沒想到這項(xiàng)看起來不需要多少技術(shù)的工作卻是十分的勞心勞力。很多次是早上起來帶瓶水帶些吃的到實(shí)訓(xùn)中心,一泡就是一天。我看到有很多人跟我一樣,不同的是他們是三三兩兩,而我大部分時(shí)間都是一個(gè)人做。在這個(gè)時(shí)候也有很多人幫忙我,或是熱心的幫我?guī)э垼蚴窃谖掖蝽飪旱臅r(shí)候幫我做點(diǎn)焊接。大家都鼓勵(lì)我,即使最后出不來東西,但是必須要堅(jiān)持把它做完。當(dāng)我想放下的時(shí)候,我也這么對(duì)自己說,即使你做出來的是次品甚至不合格品,但是你必須要拿出來一件成品。

在要驗(yàn)收前,最后做了一件成品出來,不幸的是它真的是一件不合格品。幫我的那個(gè)男生做的已經(jīng)出來了,所以最后就應(yīng)還是我的焊接方面的問題。有一點(diǎn)灰心,想再重做來不及了,單是檢查線路卻也查不出來什么問題。那么就準(zhǔn)備答辯吧。我對(duì)著電路圖再看課本,發(fā)現(xiàn)以前很多覺得很難記的東西此刻記起來容易多了,因?yàn)檎於荚谕鼈兇蚪坏馈?1的引腳及其功能,a/d轉(zhuǎn)換器的,驅(qū)動(dòng)器的,所有我用到的我都一再的看書了解,同時(shí)請(qǐng)教同學(xué)我看書過程當(dāng)中的疑惑。在這個(gè)過程中又發(fā)現(xiàn)了以前焊接當(dāng)中出的一些問題,能改的就改,不能改的,咳,要是時(shí)間再多一些,或者我能早點(diǎn)做好,要是不只是我一個(gè)人動(dòng)手……算了吧,不要想那些如果,還是準(zhǔn)備我自己的,做好我此刻能做的吧。

還好,驗(yàn)收還算成功,得了3分,不是很高,但是我覺得對(duì)我來說已經(jīng)很好,代表了我真實(shí)的水平,我覺得我對(duì)單片機(jī)的一些知識(shí)在這個(gè)動(dòng)手的過程中真的是從無到有增長(zhǎng)的。同時(shí)我也盡量不去想別人得了多少分,沒有什么不平衡的,有些人付出的是努力,有些人付出的是風(fēng)險(xiǎn)代價(jià),其實(shí)這也沒有什么不一樣,這一點(diǎn)我早就了解。

最后,我發(fā)現(xiàn)自己對(duì)單片機(jī)竟然也有了一點(diǎn)興趣,想暑假回家以后自己去買一些東西來做,再補(bǔ)一補(bǔ)匯編語言。有什么問題請(qǐng)教下以前的那些老同學(xué)好了,他們好厲害,在高中勞動(dòng)課就成功的做出過調(diào)頻收音機(jī),大一暑假的時(shí)候參加了學(xué)校的電子競(jìng)賽培訓(xùn)之后比賽,但是之后怎樣樣我就不明白了。汗。看來要多持續(xù)聯(lián)絡(luò),這次回家就好好找他們敘敘舊。

單片機(jī)課程設(shè)計(jì)心得體會(huì)【四】

作為一名自動(dòng)化專業(yè)的大三學(xué)生,我覺得做單片機(jī)課程設(shè)計(jì)是十分有好處的,而且是十分必要的。在已度過的大學(xué)時(shí)間里,我們大多數(shù)接觸的是專業(yè)課。我們?cè)谡n堂上掌握的僅僅是專業(yè)課的理論知識(shí),如何去鍛煉我們的實(shí)踐潛力?如何把我們所學(xué)的專業(yè)基礎(chǔ)課理論知識(shí)運(yùn)用到實(shí)踐中去呢?我想做類似的課程設(shè)計(jì)就為我們帶給了良好的實(shí)踐平臺(tái)。

這次單片機(jī)課程設(shè)計(jì)我們歷時(shí)兩個(gè)星期,在我們班里算是倒數(shù)幾組完成的吧,但經(jīng)過這兩個(gè)星期的實(shí)踐和體驗(yàn)下來,我們又怎樣會(huì)去在乎那個(gè)先后問題呢,因?yàn)閷?duì)我來說學(xué)到的不僅僅是那些知識(shí),更多的是團(tuán)隊(duì)和合作。此刻想來,也許學(xué)校安排的課程設(shè)計(jì)有著它更深層的好處吧,它不僅僅僅讓我們綜合那些理論知識(shí)來運(yùn)用到設(shè)計(jì)和創(chuàng)新,還讓我們明白了一個(gè)團(tuán)隊(duì)凝聚在一齊時(shí)所能發(fā)揮出的巨大潛能!

單片機(jī)作為我們的主要專業(yè)課之一,雖然在大三開學(xué)初我對(duì)這門課并沒有什么興趣,覺得那些程序枯燥乏味,但在這次課程設(shè)計(jì)后我發(fā)現(xiàn)自己在一點(diǎn)一滴的努力中對(duì)單片機(jī)的興趣也在逐漸增加。

兩個(gè)星期前我們五個(gè)人還在為到底選那個(gè)課題而發(fā)生分歧,最后還是在龔老師的耐心分析和指導(dǎo)下完成了課題的選定,但是隨之而來的問題卻遠(yuǎn)比我們想想的要困難的多

過沒想到這項(xiàng)看起來不需要多少技術(shù)的工作卻是十分需要耐心和精力在兩個(gè)星期后的這天我已明白課程設(shè)計(jì)對(duì)我來說的好處,它不僅僅僅是讓我們把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,提高自己的實(shí)際動(dòng)手潛力和獨(dú)立思考的潛力,更重要的是同學(xué)間的團(tuán)結(jié),雖然我們這次花去的時(shí)間比別人多,但我相信我們得到的也會(huì)更多!

在做本次課程設(shè)計(jì)的過程中,我感觸最深的當(dāng)屬查閱超多的設(shè)計(jì)資料了。為了讓自己的設(shè)計(jì)更加完善,查閱這方面的設(shè)計(jì)資料是十分必要的,同時(shí)也是必不可少的。我們是在做單片機(jī)課程設(shè)計(jì),但我們不是藝術(shù)家,他們能夠拋開實(shí)際盡情在幻想的世界里翱翔,而我們一切都要有據(jù)可依,有理可尋,不切實(shí)際的構(gòu)想永遠(yuǎn)只能是構(gòu)想,永遠(yuǎn)無法升級(jí)為設(shè)計(jì)。

其次,在這次課程設(shè)計(jì)中,我們運(yùn)用到了以前所學(xué)的專業(yè)課知識(shí),如:CAD制圖、匯編語言、模擬和數(shù)字電路知識(shí)等。雖然過去從未獨(dú)立應(yīng)用過它們,但在學(xué)習(xí)的過程中帶著問題去學(xué)我發(fā)現(xiàn)效率很高,這是我做這次課程設(shè)計(jì)的又一收獲。后,要做好一個(gè)課程設(shè)計(jì),就務(wù)必做到:在設(shè)計(jì)程序之前,對(duì)所用單片機(jī)的內(nèi)部結(jié)構(gòu)有一個(gè)系統(tǒng)的了解,明白該單片機(jī)內(nèi)有哪些資源;要有一個(gè)清晰的思路和一個(gè)完整的的軟件流程圖;在設(shè)計(jì)程序時(shí),不能妄想一次就將整個(gè)程序設(shè)計(jì)好,反復(fù)修改、不斷改善是程序設(shè)計(jì)的必經(jīng)之路;

要養(yǎng)成注釋程序的好習(xí)慣,一個(gè)程序的完美與否不僅僅僅是實(shí)現(xiàn)功能,而就應(yīng)讓人一看就能明白你的思路,這樣也為資料的保存和交流帶給了方便;在設(shè)計(jì)課程過程中遇到問題是很正常德,但我們就應(yīng)將每次遇到的問題記錄下來,并分析清楚,以免下次再碰到同樣的問題的課程設(shè)計(jì)結(jié)束了,但是從中學(xué)到的知識(shí)會(huì)讓我受益終身。

發(fā)現(xiàn)、提出、分析、解決問題和實(shí)踐潛力的提高都會(huì)受益于我在以后的學(xué)習(xí)、工作和生活中。設(shè)計(jì)過程,好比是我們?nèi)祟惓砷L(zhǎng)的歷程,常有一些不如意,但畢竟這是第一次做,難免會(huì)遇到各種各樣的問題。在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過的知識(shí)理解得不夠深刻,掌握得不夠牢固。

我們透過查閱超多有關(guān)資料,并在小組中互相討論,交流經(jīng)驗(yàn)和自學(xué),若遇到實(shí)在搞不明白的問題就會(huì)及時(shí)請(qǐng)教老師,使自己學(xué)到了不少知識(shí),也經(jīng)歷了不少艱辛,但收獲同樣巨大。

透過這次課程設(shè)計(jì)我也發(fā)現(xiàn)了自身存在的不足之處,雖然感覺理論上已經(jīng)掌握,但在運(yùn)用到實(shí)踐的過程中仍有意想不到的困惑,經(jīng)過一番努力才得以解決。這也激發(fā)了我今后努力學(xué)習(xí)的興趣,我想這將對(duì)我以后的學(xué)習(xí)產(chǎn)生用心的影響。

透過這次設(shè)計(jì),我懂得了學(xué)習(xí)的重要性,了解到理論知識(shí)與實(shí)踐相結(jié)合的重要好處,學(xué)會(huì)了堅(jiān)持、耐心和努力,這將為自己今后的學(xué)習(xí)和工作做出了最好的榜樣。我覺得作為一名自動(dòng)化專業(yè)的學(xué)生,單片機(jī)的課程設(shè)計(jì)是很有好處的。更重要的是如何把自己平時(shí)所學(xué)的東西應(yīng)用到實(shí)際中。

雖然自己對(duì)于這門課懂的并不多,很多基礎(chǔ)的東西都還沒有很好的掌握,覺得很難,也沒有很有效的辦法透過自身去理解,但是靠著這一個(gè)多禮拜的“學(xué)習(xí)”,在小組同學(xué)的幫忙和講解下,漸漸對(duì)這門課逐漸產(chǎn)生了些許的興趣,自己開始主動(dòng)學(xué)習(xí)并逐步從基礎(chǔ)慢慢開始弄懂它。

我認(rèn)為這個(gè)收獲就應(yīng)說是相當(dāng)大的。覺得課程設(shè)計(jì)反映的是一個(gè)從理論到實(shí)際應(yīng)用的過程,但是更遠(yuǎn)一點(diǎn)能夠聯(lián)系到以后畢業(yè)之后從學(xué)校轉(zhuǎn)到踏上社會(huì)的一個(gè)過程。小組人員的配合相處,以及自身的動(dòng)腦和努力,都是以后工作中需要的。

下載基于AT89C51單片機(jī)的電子計(jì)算器的課程設(shè)計(jì)[5篇]word格式文檔
下載基于AT89C51單片機(jī)的電子計(jì)算器的課程設(shè)計(jì)[5篇].doc
將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
點(diǎn)此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    單片機(jī)課程設(shè)計(jì)電子時(shí)鐘說明書

    《電子時(shí)鐘》 課程設(shè)計(jì)說明書 專業(yè)班級(jí): 11級(jí)自動(dòng)化班姓名: 歐陽明長(zhǎng) 李徐軍陳龍 指導(dǎo)教師:郭玉設(shè)計(jì)時(shí)間: 2013--12--17 物理與電氣工程學(xué)院 2013年12月17日 1 摘要 電子鐘在......

    單片機(jī)課程設(shè)計(jì)報(bào)告,單片機(jī)電子時(shí)鐘5篇

    題 目:?jiǎn)纹瑱C(jī)課程設(shè)計(jì)報(bào)告目 錄一、設(shè)計(jì)目的二、程設(shè)計(jì)具體要求三、單片機(jī)發(fā)展簡(jiǎn)史四、8051單片機(jī)系統(tǒng)簡(jiǎn)介五、8051單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器簡(jiǎn)介六、程序電路七、程序流程八......

    單片機(jī)電子時(shí)鐘課程設(shè)計(jì)報(bào)告(合集5篇)

    青島理工大學(xué)琴島學(xué)院 課題名稱:?jiǎn)纹瑱C(jī)原理及應(yīng)用課程設(shè)計(jì)學(xué)院:專業(yè)班級(jí):學(xué)號(hào):學(xué)生:指導(dǎo)教師:設(shè) 計(jì) 報(bào) 告......

    單片機(jī)課程設(shè)計(jì)

    單片機(jī)課程設(shè)計(jì) 課題: 簡(jiǎn)易電子琴設(shè)計(jì) 學(xué)院:電氣與信息工程學(xué)院 專業(yè):電子信息工程 姓名:李琳琳 學(xué)號(hào):093411106 指導(dǎo)老師:田巍 河南城建學(xué)院 2014年01 月01 日......

    單片機(jī)課程設(shè)計(jì)

    課 程 設(shè) 計(jì) 設(shè)計(jì)題目: 基于單片機(jī)的8*8點(diǎn)陣顯示數(shù)字設(shè)計(jì) 學(xué)生姓名: 指導(dǎo)教師: 二級(jí)學(xué)院: 專業(yè): 班級(jí): 學(xué)號(hào): 目 錄 摘要??????????????????????????......

    單片機(jī)課程設(shè)計(jì)

    基于單片機(jī)的火災(zāi)智能報(bào)警控制系統(tǒng)的設(shè)計(jì)前言在各種災(zāi)害中,火災(zāi)是最經(jīng)常、最普通地威脅公眾安全和社會(huì)發(fā)展的災(zāi)害之一。人類能夠?qū)疬M(jìn)行利用和控制,是文明進(jìn)步的一個(gè)重要標(biāo)志......

    單片機(jī)課程設(shè)計(jì)

    《單片機(jī)技術(shù)》課程設(shè)計(jì)說明書 音樂盒 院、部:電氣與信息工程學(xué)院 學(xué)生姓名:劉亮 指導(dǎo)教師:凌云職稱講師 專業(yè):電子信息工程 班級(jí):電子1302班 學(xué)號(hào):1330340220 完成時(shí)間: 2016年1......

    單片機(jī)課程設(shè)計(jì)

    單片機(jī)課程設(shè)計(jì)_報(bào)警器 報(bào)警器 ORG 0010H START:MOV DPTR,#TAB CLR P3.1 SETB P1 MOV A,P1 CPL A ANL A,#0F0H SWAP A MOV R0,A LCALL DISP1 MOV A,P1 CPL A ANL A,#0FH MOV......

主站蜘蛛池模板: 国产精品久久久久久久久鸭| 久久婷婷国产综合精品| 无码中文字幕人妻在线一区二区三区| 久久久精品人妻一区亚美研究所| 欧美老熟妇乱子伦视频| 欧美色综合天天久久综合精品| 日本japanese漂亮丰满| 国产99视频精品免费视看9| 久久香蕉国产线熟妇人妻| 无码人妻久久一区二区三区免费| 视频一区二区无码制服师生| 中文字幕精品无码一区二区| 国产成人精品日本亚洲第一区| 99国产精品久久久蜜芽| 极品粉嫩福利午夜在线播放| 国产精品久久久久久久久久免费看| 用舌头去添高潮无码av在线观看| 色欲香天天天综合网站小说| 无套内谢孕妇毛片免费看看| 免费无码av片在线观看网址| 日本阿v免费观看视频| 国产av高清怡春院| 免费大黄网站| 国产福利精品一区二区| 成人在线免费视频| 久久精品国自产拍| 久久男人高潮女人高潮| 欧美疯狂做受xxxxx高潮| 无码人妻一区二区三区免费视频| 亚洲精品午夜国产va久久成人| 天堂国产+人+综合+亚洲欧美| 国产精品亚洲精品日韩已满| 国产av仑乱内谢| 久久伊人av综合影院| 国产成人精品视频一区二区三| 国产成人精品aa毛片| 天堂av无码av一区二区三区| 18黄暴禁片在线观看| 成年男人裸j照无遮挡无码| 精品国产免费第一区二区三区| 国产亚洲精品久久久久秋霞|