課程設(shè)計(jì)報(bào)告
設(shè)計(jì)名稱: 簡(jiǎn)易計(jì)算器 班 級(jí):15 q通信2班 學(xué) 號(hào):201524440213 姓 名:xxx 指導(dǎo)教師: 邢*
基于單片機(jī)的簡(jiǎn)易計(jì)算器設(shè)計(jì) 1設(shè)計(jì)目的 我所設(shè)計(jì)的基于ATMEL公司AT89C52單片機(jī)的簡(jiǎn)易計(jì)算器,是利用該51單片機(jī)和數(shù)碼管顯示設(shè)計(jì)的簡(jiǎn)易計(jì)算器。 本設(shè)計(jì)滿足計(jì)算器的基本要求,可以基本的運(yùn)算(加減乘除),數(shù)據(jù)歸零,利用51系列單片機(jī)設(shè)計(jì)符合功能的計(jì)算器,并用LED碼管顯示數(shù)據(jù),4*4的矩陣鍵盤實(shí)現(xiàn)數(shù)據(jù)輸入,同時(shí),可以在流水燈處顯示出相應(yīng)數(shù)字。在進(jìn)行運(yùn)算時(shí),按等號(hào)鍵能將最后結(jié)果輸送給數(shù)碼管并顯示出來。設(shè)計(jì)仿真和調(diào)試要用到Protues、Keil等軟件。 通過對(duì)簡(jiǎn)易計(jì)算器的設(shè)計(jì)制作與調(diào)試,學(xué)習(xí)掌握
- 單片機(jī)系統(tǒng)的整體設(shè)計(jì)流程;
- 單片機(jī)系統(tǒng)的硬件、軟件調(diào)試方法及相關(guān)工具的使用;
- Protues繪制電路原理圖的方法
- 各種常見元器件的選擇及使用。
2 設(shè)計(jì)方案 本設(shè)計(jì)采用以AT89C52單片機(jī)為核心的低成本、高精度、微型化數(shù)字顯示簡(jiǎn)易計(jì)算器的硬件電路和軟件設(shè)計(jì)方法。整個(gè)電路采用模塊化設(shè)計(jì),由主程序、按鍵子程序、延時(shí)子程序、顯示子程序等模塊組成。在此基礎(chǔ)上設(shè)計(jì)了系統(tǒng)的總體方案,最后通過硬件和軟件實(shí)現(xiàn)了各個(gè)功能模塊,利用軟件方面使用C語言編程,并用Protues仿真。 (1)硬件設(shè)計(jì): 單片機(jī)微型計(jì)算機(jī)是微型計(jì)算機(jī)的一個(gè)重要分支,也是頗具生命力的機(jī)種。單片機(jī)微型計(jì)算機(jī)簡(jiǎn)稱單片機(jī),特別適用于控制領(lǐng)域,故又稱為微控制器。通常,單片機(jī)由單塊集成電路芯片構(gòu)成,內(nèi)部包含有計(jì)算機(jī)的基本功能部件:中央處理器、存儲(chǔ)器和I/O接口電路等。因此,單片機(jī)只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個(gè)單片機(jī)控制系統(tǒng)。 通常,單片機(jī)由單個(gè)集成電路芯片構(gòu)成,內(nèi)部包含有計(jì)算機(jī)的基本功能部件,中央處理器,存儲(chǔ)器和I/O接口電路等。因此,單片機(jī)只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個(gè)單片機(jī)控制系統(tǒng)。隨著社會(huì)的發(fā)展,科學(xué)的進(jìn)步,人們的生活水平在逐步的提高,尤其是微電子技術(shù)的發(fā)展,猶如雨后春筍般的變化。單片機(jī)的應(yīng)用已經(jīng)越來越貼近生活,用單片機(jī)來實(shí)現(xiàn)一些電子設(shè)計(jì)也變得容易起來。計(jì)算器在人們的日常中是比較的常見的電子產(chǎn)品之一。可是它還在發(fā)展之中,以后必將出現(xiàn)功能更加強(qiáng)大的計(jì)算器,基于這樣的理念,本次設(shè)計(jì)是用單片機(jī)來設(shè)計(jì)的計(jì)算器。 1.系統(tǒng)模塊圖為: 簡(jiǎn)易計(jì)算器按模塊可化分為: ·1 單片機(jī)主控芯片 ·2 矩陣鍵鍵 ·3 數(shù)碼管顯示 ·4 點(diǎn)亮發(fā)光二極管 2.引腳圖: 3.最小系統(tǒng)原理圖: 最小系統(tǒng)由復(fù)位電路、輸入輸出設(shè)備、電源和單片機(jī)芯片組成。 4.共陰極數(shù)碼管引腳接線: 5.數(shù)碼管顯示部分的實(shí)現(xiàn): 數(shù)碼管通過PO口輸入高低電平控制每個(gè)LED燈的亮滅,公共端接地線P0口接1K的上拉電阻。由于并未用到小數(shù)點(diǎn)顯示,所以DP引腳懸空。 
6.計(jì)算器用到的數(shù)字0-9的共陰極字形代碼: 7.數(shù)碼管與單片機(jī)連接圖: (2)軟件設(shè)計(jì) 顯示程序 初始化-->寫命令-->寫數(shù)據(jù) *將各類函數(shù)聲明都寫到同一個(gè)頭文件中,方便查看各個(gè)函數(shù)的參數(shù)以及功能 主控芯片如圖 
4.軟件程序 
5調(diào)試結(jié)果及說明 (1)鍵盤對(duì)應(yīng)有效值表
(2)使用說明 鍵盤分布如上圖所示,該計(jì)算器可以計(jì)算簡(jiǎn)單的256以內(nèi)的加減乘除運(yùn)算,右側(cè)復(fù)位鍵為“清零”。 - 上電后,屏幕初始化。
- 計(jì)算。按下數(shù)字鍵,屏幕顯示要運(yùn)算的第一個(gè)數(shù)字,再按下符號(hào)鍵,然后再按下 數(shù)字鍵,屏幕顯示要運(yùn)算的第二個(gè)數(shù)字,最后按下“﹦”號(hào)鍵,屏幕上顯示出計(jì)算結(jié)果。
如果要再次計(jì)算,可以按下“ON/C”鍵清零,或者按下單片機(jī)的復(fù)位鍵,重新初始化。 (3)實(shí)物圖 例如11*11=121 
最大的數(shù)字到 
| 通過這次單片機(jī)課程設(shè)計(jì),不僅加深了對(duì)單片機(jī)理論的理解,將理論很好地應(yīng)用到實(shí)際當(dāng)中去,而且還學(xué)會(huì)了如何去培養(yǎng)我們的創(chuàng)新精神,從而不斷地戰(zhàn)勝自己,超越自己。創(chuàng)新可以是在原有的基礎(chǔ)上進(jìn)行改進(jìn),使之功能不斷完善,成為真己的東西。設(shè)計(jì)結(jié)果能夠符合題意,成功完成了此次課程設(shè)計(jì)要求,不只在乎這一結(jié)果,更加在乎的,是這個(gè)過程。這個(gè)過程中,花費(fèi)了大量的時(shí)間和精力。在老師的精心指導(dǎo)和嚴(yán)格要求下,獲得了豐富的理論知識(shí),極大地提高了實(shí)踐能力,單片機(jī)領(lǐng)域這對(duì)我今后進(jìn)一步學(xué)習(xí)及工作有極大的幫助。 然而我們也有許多不足之處。在軟件編程時(shí)一定要考慮周到,要有耐心要仔細(xì)。還要與硬件相聯(lián)系起來,脫離了實(shí)物一切都是假的。在理論上往往是可行的,然而當(dāng)把程序燒入芯片,進(jìn)行調(diào)試時(shí)就會(huì)遇到這樣那樣的的問題。最糟的是當(dāng)我們辛苦把實(shí)物完成,而那電路有完全沒反應(yīng),與我們的設(shè)想完全不同,而我們又不知道是軟件問題還是硬件問題時(shí),就要靜下心來,一步一步來,從硬件的芯片開始檢查是否短路等等,而軟件又要不斷地進(jìn)行仿真調(diào)試。然而我們遇到的問題除了焊接時(shí)可能導(dǎo)致的短路外,還應(yīng)電壓不穩(wěn)定或過大而導(dǎo)致芯片被燒毀,總而言之,我們還是缺少對(duì)芯片和各種器件的了解,無法準(zhǔn)確的判斷出什么樣的現(xiàn)象將是由原因引起的。 以后還是要努力學(xué)習(xí)基礎(chǔ)知識(shí),把基礎(chǔ)知識(shí)理解透徹,去更好的應(yīng)用和實(shí)踐。 |
- #include<reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit dula=P2^6;
- sbit wela=P2^7;
- sbit beep=P2^3;
- uchar qian,hou;
- uchar a0=16,b0=16,c0=16,d0=16,e0=16,f0=16,wei,temp,key,i,j,k;
- uchar jia,jian,cheng,chu,dengyu,jia0,jian0,cheng0,chu0,qingling;
- uchar s0,s1,s2,s3,s4,s5;
- void delay(uchar xms);
- void display();
- void keyscan();
- void display0();
- uchar code table[]={
- 0x3f,0x06,0x5b,0x4f,
- 0x66,0x6d,0x7d,0x07,
- 0x7f,0x6f,0x77,0x7c,
- 0x39,0x5e,0x79,0x71,0x00};
- void delay(uchar xms)
- {
- uint i,j;
- for(i=xms;i>0;i--)
- for(j=110;j>0;j--);
- }
- void display(uchar a,uchar b,uchar c,uchar d,uchar e,uchar f)
- {
- dula=0;
- P0=table[a];
- dula=1;
- dula=0;
-
- wela=0;
- P0=0xfe;
- wela=1;
- wela=0;
- delay(5);
-
- P0=table[b];
- dula=1;
- dula=0;
-
- P0=0xfd;
- wela=1;
- wela=0;
- delay(5);
-
- P0=table[c];
- dula=1;
- dula=0;
-
- P0=0xfb;
- wela=1;
- wela=0;
- delay(5);
-
- P0=table[d];
- dula=1;
- dula=0;
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
完整的Word格式文檔51黑下載地址:
基于單片機(jī)的簡(jiǎn)易計(jì)算器的課程設(shè)計(jì).doc
(987 KB, 下載次數(shù): 186)
2018-6-18 16:36 上傳
點(diǎn)擊文件名下載附件
基于單片機(jī)的簡(jiǎn)易計(jì)算器的設(shè)計(jì)報(bào)告
|