第一篇:單片機應用實訓報告
青島大學軟件技術學院
單片機應用實訓報告
姓 名 xx 專 業(yè) xxxxxxx 班 級 xxxxxxxxxxxxxxxxxxxx 指導教師 xxxxxxxxxxxxxxx
2014 年 1月16日
目錄
1實訓目的…………………………………………………………2 2實訓地點………………………………………………………………2 3實訓時間………………………………………………………………2 4進度安排………………………………………………………………2 5實訓內容…………………………………………………………3 6實訓過程…………………………………………………………4 6.1按鍵程序,在單片機開發(fā)板上設置K1、K2、K3、K4以及RST鍵相應功能……………………………………………………………………4 6.2設計數(shù)碼管電子鐘由59分鐘計時到00……………………8 6.3 1602液晶顯示器的使用……………………………………12 6.4實訓問題及解決方法……………………………………………14 7 實訓體會…………………………………………………………14
實訓內容
本次實訓內容包括三部分,全部都是應用單片機來進行實現(xiàn)的,所以我們應該對單片機有所了解。主要是單片機的最小系統(tǒng)的連接和使用,Keil編程軟件及STC燒寫軟件的使用。
其中第一部分是按鍵顯示相應功能部分,注意每一個按鍵所對應的程序及顯示方法; 第二部分是電子鐘的設計,要注意其中的程序設計時應該讓其能夠自動計時,并在滿60的時候進位,在計滿到59分鐘時,可以自動的跳轉到00并重新開始計時。
第三部分設計屏幕字滾動效果,要求顯示自己設計的文字并顯示出來。實訓單片機的電路連接圖:
sbit P20=P2^0;uchar code DispTab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80, 0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//共陽數(shù)碼管顯示0~F void Delay(uint m)//延時函數(shù) { uchar i;for(;m>0;m--){for(i=0;i<125;i++)} } … …
main()//主函數(shù) { uchar keyValue;uchar j;P3=0xff;P2=0xf0;P0=0xc0;for(;;){ keyValue=key();switch(keyValue){case 0xfb: { j++;if(j>15)j=0;P0=DispTab[j];break;} case 0xf7:P0=0xa4;break;case 0xef:P0=0xb0;break;case 0xdf:P0=0x99;break;} } } 6.1.2編譯程序,生成文件并且燒寫程序進入單片機,過程如下:將單片機按照下圖鏈接:
:
6.2設計數(shù)碼管電子鐘由59分鐘計時到00 6.2.1打開軟件,建立工程項目,新建文件,寫入代碼并保存。圖像同上
程序編程如下:
#include
key_s <<= 1;key_s |= K1;return(key_s ^ key_v);}
void proc_key(){ EA = 0;if((key_v & 0x01)== 0)// K1 { inc_min2();// JJ=1;} else if((key_v & 0x02)== 0)// K2 { min++;// JJ=0;if(min > 59){ min = 0;} dis_buf[3] = dis_code[min / 10];// 分十位 *****3 dis_buf[2] = dis_code[min % 10]&0x7f;// 分個位 *****4 }
EA = 1;} void timer0()interrupt 1 // 定時器0中斷服務程序, 用于數(shù)碼管的動態(tài)掃描
// dis_index---顯示索引, 用于標識當前顯示的數(shù)碼管和緩沖區(qū)的偏移量
// dis_digit---位選通值, 傳送到P2口用于選通當前數(shù)碼管的數(shù)值, 如等于0xfe時, // 選通P2.0口數(shù)碼管
// dis_buf---顯于緩沖區(qū)基地址 { TH0 = 0xFC;TL0 = 0x17;P2 = 0xff;// 先關閉所有數(shù)碼管
P0 = dis_buf[dis_index];// 顯示代碼傳送到P0口 P2 = dis_digit;// P2 = P2|0x80;dis_digit = _crol_(dis_digit,1);// 位選通值左移, 下次中斷時選通下一位數(shù)碼管
dis_index++;// dis_index &= 0x07;// 8個數(shù)碼管全部掃描完一遍之后,再回到第一個開始下一次掃描
{ hour++;P1=x;x=x*2;if(hour > 23){ hour = 0;} void delayms(unsigned char ms)// 延時子程序 { unsigned char i;while(ms--){ for(i = 0;i < 120;i++);} } 6.2.2編譯程序,生成文件并且燒寫程序進入單片機,圖像過程同上 6.2.3程序燒寫完畢后運行單片機
在數(shù)碼管上顯示時鐘(分鐘.秒)。
設置K1、K2按鍵,分別設置分鐘增加和減少。顯示如圖所示:
en=0;} void lcd_init()//1602初始化函數(shù) { lcd_wcom(0x38);//8位數(shù)據(jù),雙列,5*7字形 lcd_wcom(0x0c);//開啟顯示屏,關光標,光標不閃爍
lcd_wcom(0x06);//顯示地址遞增,即寫一個數(shù)據(jù)后,顯示位置右移一位 lcd_wcom(0x01);//清屏 } void main()//主函數(shù) { uchar n,m=0;lcd_init();//液晶初始化
lcd_wcom(0x80);//顯示地址設為80H(即00H,)上排第一位 for(m=0;m<16;m++)//將table[]中的數(shù)據(jù)依次寫入1602顯示 { lcd_wdat(table[m]);delay(200);} lcd_wcom(0x80+0x44);//重新設定顯示地址為0xc4,即下排第5位 for(n=0;n<8;n++)//將table1[]中的數(shù)據(jù)依次寫入1602顯示 { lcd_wdat(table1[n]);delay(200);} while(1);//動態(tài)停機 }
6.3.2編譯程序,生成文件并且燒寫程序進入單片機,圖像過程同上
6.3.3程序燒寫完畢后運行單片機
實驗現(xiàn)象:在液晶顯示器上顯示字符
如下圖:
常的生活息息相關。了解了一些簡單程序的錄入,LED顯示器、鍵盤、和顯示器的應用和原理
經過短短一個星期的單片機應用實訓,我深深體會到單片機的神奇和奧妙,也意識到自己在單片機編程上還有許多不足,這就需要我們去繼續(xù)努力。
我在理論的基礎上更深刻的掌握了單片機的深層內容及實際生活中的應用,實訓鍛煉了自己動手能力和思維能力,還有在軟件方面的編程能力,讓我受益匪淺,同時也暴露出一些平時學習上的問題,讓我深刻反思。這些問題的發(fā)現(xiàn)將為我以后的學習和工作找明道路,查漏補缺為進一步學習作好準備。通過實訓,讓我懂得了如何編寫一些簡單的程序,學會了如何制作單片機應用程序,并且可以在今后的日常生活中靈活運用。
最后,在老師精心的指導下我們都已基本完成實訓要求。通過這次實訓,我們揭開了單片機神秘的面紗,離我們不再遙遠!對于我們所學的編程知識滲透較少,之前都是老師操作為主。此次實訓就不同了,我們自己動手,收獲甚大!
我在理論的基礎上更深刻的掌握了單片機的深層內容及實際生活中的應用,實訓鍛煉了自己動手能力和思維能力,還有在軟件方面的編程能力,讓我受益匪淺,同時也暴露出一些平時學習上的問題,讓我深刻反思。這些問題的發(fā)現(xiàn)將為我以后的學習和工作找明道路,查漏補缺為進一步學習作好準備。通過實訓,讓我懂得了如何編寫一些簡單的程序,學會了如何制作單片機應用程序,并且可以在今后的日常生活中靈活運用。
我們要對所用單片機的內部結構有一個系統(tǒng)的了解,知道該單片機內有哪些資源;要有一個清晰的思路和一個完整的的軟件流程圖;在設計程序時,不能妄想一次就將整個程序設計好,反復修改、不斷改進是程序設計的必經之路;要養(yǎng)成注釋程序的好習慣,一個程序的完美與否不僅僅是實現(xiàn)功能,而應該讓人一看就能明白你的思路,這樣也為資料的保存和交流提供了方便;在實習過程中遇到問題是很正常的,但我們應該將每次遇到的問題記錄下來,并分析清楚,以免下次再碰到同樣的問題。但是從中學到的知識會讓我受益終身。
第二篇:單片機實訓報告范文
四川電子機械職業(yè)技術學院
單片機原理及應用
實 訓報告1
班級:應電14.2班 姓名:劉華利 學號:140302058 指導教師:向兵
四川電子機械職業(yè)技術學院
摘要:
《單片機應用系統(tǒng)設計項目化教程》這本書根據(jù)教育部新的教學改革要求和企業(yè)崗位技能需求,以高技能應用型人才專業(yè)能力培養(yǎng)為目標,結合作者多年的教學經驗與課程改革成果進行編寫。全書通過6個典型項目任務,著重介紹單片機基本原理及應用系統(tǒng)的設計方法與技巧,包括流水燈控制系統(tǒng)設計、簡易數(shù)字時鐘設計、數(shù)字電壓表設計、低頻信號發(fā)生器設計、數(shù)據(jù)存儲及回放系統(tǒng)設計和窗簾智能控制系統(tǒng)設計等。本書采用“理實一體、項目化教學”模式進行內容編排,將單片機原理及應用系統(tǒng)設計的相關知識點融入項目中進行講解,易教易學,效果良好。
目錄
摘要········································ 2 目錄········································ 2 實訓名稱···································· 3 實訓地點···································· 3 實訓時間···································· 3 實訓目的···································· 3 實訓項目···································· 3 項目1·······································3 項目2·······································4 項目3·······································5 項目4·······································6 實訓總結····································· 7
四川電子機械職業(yè)技術學院
實訓名稱:單片機原理及應用 實訓地點:行政樓523 實訓時間:2016.6.27—6.30 實訓目的:1、2、3、4、5、6、7、掌握結構化程序設計的基本方法,基本掌握面向對象程序設計的基本思路和方法。
掌握C的基本概念和基礎知識。
通過訓練能夠讀懂較為復雜的C語言源程序并具備基本C語言程序設計的能力。
熟練掌握各種常用類的定義繼承文件的應用,為更好的理解面向對象打下更好的基礎。
掌握面向對象的基本原理,提高學生綜合程序設計的能力。
培養(yǎng)自己獨立解決問題,找資料的能力。同學之間相互幫助、相互交流、相互合作的團隊精神。
通過實訓檢查自己學習上的不足,達到熟練掌握C語言的基本知識和技能。
實訓項目: 項目1 點亮一個LED,每隔一定時間循環(huán)熄滅、點亮…
設計思路:端口送高電平,led熄滅,延時1s,端口送低電平,led點亮,延時1s,就這樣一直循環(huán)。
程序
#include
L2 = 1;
while(Ms--)
DelayMs(1000);
{
L2 = 0;
for(i = 0;i < 114;i+
DelayMs(1000);+);} } }
四川電子機械職業(yè)技術學院
原理圖
項目2 點亮一個LED,讓它每隔一定時間循環(huán)左移(課使用delay函數(shù)進行延時)
設計思路:在項目1的的基礎上,用dalay函數(shù)進行延時,用<<來表示左移,添加一個左移的函數(shù)。通俗一點的講的話,就如天天天同一些人排隊領東西,領完了返回隊位繼續(xù)排(當然一只是這幾個人排)。
程序
#include } while(1){ for(i=0;i<7;i++){ delay(100); LED=(LED<<1)|0x01;P3=LED;} } 四川電子機械職業(yè)技術學院 原理圖 項目3 將任務二中delay延時改用定時器延時,且延時一秒 設計思路:在項目2的的基礎上,用定時器來進行延時,首先設置定時器工作方式 也就是TMOD,在設置TH0/1,TL0/1的初值,也就是定時時間的設置,然后設置中斷允許,并開中斷。用中斷來控制。 程序 #include { TH0=(65536-50000)/256;TL0=(65536-50000)%256;j++;if(j==5){ j=0; P1=~(0x01< if(++i==8)i=0; } } 四川電子機械職業(yè)技術學院 原理圖 項目4 四位數(shù)碼管并排顯示,從左到右依次為分、秒十位、秒各位、0.1秒,相當于移動可計時9分59.9秒,使用一個按鍵,當按鍵第一次按下,啟動秒表,第二次按下,停止,第三次按下,清零。(數(shù)碼管可選共陰極、共陽極,至于對應數(shù)字的段選可參考教材) 設計思路:用delay函數(shù)來進行延時,用內部中斷來控制T1,用外部中斷來實現(xiàn)計數(shù)、暫停、清零這三個功能。 程序 #include uintx,y; for(x=100;x>0;x--) for(y=z;y>0;y--);} void dihplay(){ P1=0xfd; 四川電子機械職業(yè)技術學院 P0=Tab[xiao%10]; delay(1); } void display(){ P1=0xfb;P0=Tab[miao/10];delay(1); P1=0xfe;P0=Tab[miao%10];dp=0;delay(1);} void dimplay(){ P1=0xf7;P0=Tab[fen%10];dp=0;delay(1);} void main(){ EA = 1;EX0 = 1;IT0 = 1; ET0=1;TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TR0=0;xiao=0;miao=0;fen=0; while(1) { display();delay(1);dimplay();delay(1);dihplay();delay(1); } } void timer0()interrupt 1 { xiao++; if(xiao==10) { xiao=0;miao++; if(miao==59) { miao=0; fen++; if(fen==10) { fen=0; } } } } void ex0_int0()interrupt 0 { swnum++;if(swnum == 1){ TR0= 1;} if(swnum == 2){ TR0 = 0;} if(swnum == 3){ xiao = 0; miao = 0; fen = 0; swnum=0;} } 四川電子機械職業(yè)技術學院 原理圖 實訓總結: 通過今次單片機實訓,使我對單片機的認識有了更深刻的理解。系統(tǒng)以51單片機為核心部件,利用C語言編程,通過對led燈控制到用數(shù)碼管實現(xiàn)秒表功能、中斷控制功能,能實現(xiàn)本設計題目的基本要求和發(fā)揮部分。由于時間有限和本身知識水平的限制,本系統(tǒng)還存在一些不夠完善的地方,要作為實際應用還有一些具體細節(jié)問題需要解決。 踉踉蹌蹌地忙碌了一周,我的程序終于編譯成功。當看著自己的程序,自己成天相伴的系統(tǒng)能夠健康的運行,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最終都會化為甜美的甘泉。 但在這次實訓中同時使我對C語言有了更深的認識。當我第一次接觸C語言就感覺很難,特別是今次實訓要用到C語言,盡管困難重重,可我們還是克服了。這次的實訓使培養(yǎng)了我們嚴肅認真的做事作風,增強了我們之間的團隊合作能力,使我們認識到了團隊合作精神的重要性。 這次實訓的經歷也會使我終身受益,我感受到這次實訓是要真真正正用心去做的一件事情,是真正的自己學習的過程和研究的過程,沒有學習就不可能有研究的能力,沒有自己的研究,就不會有所突破。希望這次的經歷能讓我在以后學習中激勵我繼續(xù)進步。 單片機原理及應用 實訓報告 班級: 學號: 姓名: 指導教師: 實訓總成績: 一、節(jié)日彩燈設計 題目:8位邏輯電平模塊上的LED小燈從左向右呈現(xiàn)“鞭甩”的實驗現(xiàn)象,狀態(tài)間隔為0.25秒;按鍵1開始,按鍵2結束。 原理圖 程序代碼: #include 單片機原理及應用實訓報告 管及驅動電路的連接,從而構成一個完整的硬件電路。然后通過對單片機的ROM進行編程,實現(xiàn)對彩燈閃爍的控制。 二、定時器實現(xiàn)流水燈 題目:利用定時器/計數(shù)器T0產生2秒鐘的定時,每當2秒定時到來時,更換指示燈點亮,依次循環(huán)點亮。 原理圖 程序代碼 #include 50000)% 256;TH0 =(65536 單片機原理及應用實訓報告 程序代碼 #include 單片機原理及應用實訓報告 實訓總結 通過本次單片機實訓使得我更深層次的學習單片機原理與應用技術這門專業(yè)課程,同時對KEIL軟件進行復習。這次實訓是我看到了我最薄弱的一點那就是編程,對于編程有很大的困難。對以往學習過的編程知識沒有好好掌握,特別是編程這方便的知識很薄弱。學習過的知識在實際應用中仿佛是冰山一角,完全不夠用,需要通過查閱很多資料才能解決到碰到的相關問題。而且實訓中出現(xiàn)的問題都是實際應用出比較典型的問題。這次實訓還讓我深刻的體會了結構化程序設計的優(yōu)勢,讓我懂得當我們要進行一個復雜的程序設計時應該先將其分解為多個不同的功能模塊再分別編程實現(xiàn),這樣做不僅降低了編程的難度,也容易讓編程者思路更加清晰,避免出現(xiàn)不必要的錯誤。在做仿真時,仿真圖正確也不一定就是說明一定正確。 目錄 一 方案設計說明:............................................................................................2 二 硬件設計說明:............................................................................................4 (一)電路圖:..........................................................................................4(二)單片機AT89S51的I/O口分配使用情況........................................4 (三)元器件的參數(shù)及規(guī)格:....................................................................5 三 軟件設計說明:............................................................................................6 (一)軟件設計思路及流程圖:................................................................6 (二)程序的總體框架結構說明:............................................................8 (三)重要程序段的功能,作用及思路簡介:........................................8 四 制作調試說明:..........................................................................................13 (一)程序調試過程:..............................................................................13 (二)硬件調試:......................................................................................13 五 電路實拍:.....................................................................................................14 六 總結心得體會:..........................................................................................15 七 參考文獻:.....................................................................................................16 一 方案設計說明: 設計方案之前,得先分解設計任務。本次的設計任務是籃球記分牌,據(jù)常識,籃球記分牌應有分別給兩隊加分,減分,能交換顯示分數(shù)。在進行設計之前,應自己提出幾個問題,待問題回答之后?;竟?、的設計方案就出來了。在設計之前我提出了一下幾個問題: a:硬件部分如何控制給A對B對加分,場地交換的時候又是如何實現(xiàn)分數(shù)顯示交換的?應該如何連接硬件,在硬件上設置控制端,控制端與單片機各引腳之間的連。 b:單片機只有一個CPU,如何實現(xiàn)即要掃描按鍵,又要顯示比分。數(shù)碼管工作的本質是將要顯示的數(shù)據(jù)的字型碼送給他,如何采集到變化的分數(shù)送給數(shù)碼管。用查表嗎? c:加分與倒計時在程序中最本質的東西是什么,如何用程序來說明這樣的事件,各事件之間又是如何聯(lián)系的。 雖然這些問題看似很普通,似乎在設計過程中都要面對這樣的問題,何不事先就解決這些問題呢,在逐一回答這些問題的同時,該任務的設計方案已見雛形。以下就是該方案的詳細內容以及我問題的答案。 系統(tǒng)原理圖如下圖一所示: LED數(shù)碼顯示管外部按鍵AT89S51驅動電路 3 二 硬件設計說明: (一)電路圖: (二)單片機AT89S51的I/O口分配使用情況 圖中P3.0,P3.1,P3.2,P3.3分別是加一分、加兩分、加三分、減一分。P3.4與P3.5口是外部中斷,其中斷服務程序的功能是實現(xiàn)比分交換的切換顯示和加分減分切換。電路中選擇共陽極的數(shù)碼管,可以省去輸入端的驅動電路,使電路更簡潔。P0口作為字形碼的輸出口,與數(shù)碼管的八只管教相連。 (三)元器件的參數(shù)及規(guī)格: 主要元器件有單片機芯片AT89S51,共陽極數(shù)碼管,9012PNP三極管。其中單片機承載程序,實現(xiàn)電路功能,三極管起開關及驅動數(shù)碼管顯示作用。數(shù)碼管顯示比分。 三 軟件設計說明: 程序的總體思路是主程序一直在掃描按鍵,比分顯示,比分交換,加減分隊伍切換都在中斷服務程序中完成。其具體內容如下所示。 (一)軟件設計思路及流程圖: 中斷程序流程圖(如:圖一) 程序初始化,給存儲器賦初值按鍵掃描程序,掃描到由按鍵控制的中斷就執(zhí)行其對應程序外部中斷1,加減外部中斷0,A、B分隊伍切換中斷程序兩隊比分切換圖一 按鍵掃描程序流程圖(如:圖二)按鍵掃描入口,檢測軟件標志位F0,為1調用分數(shù)顯示程序程序,為0調用加減分切換程序,同時掃描按鍵是掃描P3.0,并去抖,是否有鍵按下加一分否是掃描P3.1,并去抖,是否有鍵按下加兩分否是掃描P3.2,并去抖,是否有鍵按下加三分否是掃描P3.3,并去抖,是否有按鍵按下減一分否按鍵掃描程序結束圖二 分數(shù)顯示程序流程圖(如:圖三) 將A對B對的分數(shù)首先進行BCD碼轉換,再保存到相對應的寄存器中把各分數(shù)分別賦給寄存器A,查表送往要顯示的數(shù)碼管由P2口的位狀態(tài)控制子程序調用結束,返回主程序,RET 圖三 其中時間顯示的子程序流程圖與分數(shù)的大同小異,此處就不再一一列出。 (二)程序的總體框架結構說明: 程序包含按鍵掃描程序,不斷地掃描按鍵,一旦有控制中斷的按鍵按下,就執(zhí)行中斷程序,交換比分。中斷服務程序,INT_0交換A對與B對的總分,INT_1改變軟件標志位就可以切換加減分隊伍,同時掃描按鍵。 (三)重要程序段的功能,作用及思路簡介: 按鍵掃描程序是本程序中最重要的程序段,其連接了所有的子程序,子程序的調用都是在其中完成。下面就對該程序段的功能,作用及編寫思路做詳細說明。各部分關鍵程序 按鍵控制程序 org 0060h ajcx: jnb p3.0,s0 jnb p3.1,s1 jnb p3.2,s2 jnb p3.3,s3 jnb p3.4,s4 jnb p3.5,sz5 ljmp ajcx sz5: ljmp s5 s0: lcall del jb p3.0,s01 ljmp ajcx s01: jnb p1.0,s02 mov a,30h inc a mov 30h,a ljmp tzcx s02: mov a,31h inc a mov 31h,a ljmp tzcx s1: lcall del jb p3.1,s11 ljmp ajcx s11: jnb p1.0,s12 mov a,30h add a,#02h mov 30h,a ljmp tzcx s12: mov a,31h add a,#02h mov 31h,a ljmp tzcx s2: lcall del jb p3.2,s21 ljmp ajcx s21: jnb p1.0,s22 mov a,30h add a,#03h mov 30h,a ljmp tzcx s22: mov a,31h add a,#03h mov 31h,a ljmp tzcx s3: lcall del jb p3.3,s31 ljmp ajcx s31: jnb p1.0,s32 mov a,30h dec a mov 30h,a ljmp tzcx s32: mov a,31h dec a mov 31h,a ljmp tzcx s4: lcall del jb p3.4,s41 ljmp ajcx s41: push 30h push 31h pop 30h pop 31h lcall jscx ljmp ajcx s5: lcall del jb p3.5,s51 ljmp ajcx s51: cpl p1.0 cpl p1.1 ljmp ajcx 加分程序: org 0120h tzcx: lcall jscx ljmp ajcx org 0130h del: mov tl1,#00h mov th1,#0bh setb tr1 jnb tf1,$ mov tl1,#00h mov th1,#0bh clr tf1 ret 加減分隊伍切換程序: org 0150h dscx: mov th0,#0fch mov tl0,#18h mov a,r2 rl a mov r2,a cjne r2,#11h,d1 mov r1,#32h lcall jscx reti d1: cjne r2,#22h,d2 mov r1,#33h lcall jscx reti d2: cjne r2,#44h,d3 mov r1,#34h lcall jscx reti d3: mov r1,#35h lcall jscx reti 比分切換程序: org 0190h jscx: mov a,30h mov b,#0ah div ab mov 33h,b mov 32h,a mov a,31h mov b,#0ah div ab mov 35h,b mov 34h,a mov p2,r2 mov dptr,#tab mov a,@r1 movc a,@a+dptr mov p0,a ret org 0220h tab: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h db 80h,90h end 12 四 制作調試說明: (一)程序調試過程: 程序調試我花了兩天的時間,此程序雖然不復雜,由于我平時學習的不夠深入,也沒用心學。對于我這樣的基礎來說調試過程真的很痛苦。剛開始調試時程序有兩處讓我感覺很亂,按鍵掃描程序中的中斷程序如何調用。當寄存A對或B對的分數(shù)累加到99的時候,就清零,但還沒有累加到99的時候,程序應該跳往何處執(zhí)行,我最初的是跳了繼續(xù)累加。在仿真中的現(xiàn)象就是分數(shù)一直顯示99,加不了。我真的是太大意了,調試的時候不踏實。 (二)硬件調試: 此次的硬件焊接很成功,電路布局很清晰,雖然在調試時也發(fā)現(xiàn)錯誤,但用萬用表很容易就檢測出來了,其中有幾根線的皮包線熔了,肉眼看不到。重新整理電路后,功能明顯成功。至此,本次的單片機課程設計圓滿結束。 五 電路實拍: 電路板正面: 電路板背面: 六 總結心得體會: 通過這一次的單片機實訓,讓我對單片機這一門知識有了更深的認識,更鍛煉了我獨立解決問題獨立思考的能力,在電路設計和程序設計的過程中我們遇到了很多問題和困難,但通過大家的討論和老師的指點之后,一切的問題都一一被解決,但單片機的學習并不是那么的簡單,在最后也是最關鍵的程序調試的過程中,我們又遇到了很多更難的更棘手的問題,電路焊接完好也會出現(xiàn)諸多類似于不實現(xiàn)功能或是出現(xiàn)混亂顯示的情況,真的很讓人頭疼,但,大家都還是咬牙堅持了下來,最后很多電路雖然依舊還是沒能實現(xiàn)功能,但我們努力頑強克服重重困難的精神,是大家有目共睹的,就算是失敗了,也依舊是很值得的一次經歷.,與此同時,也有很多同學試驗成功,看著大家臉上洋溢的笑容,大家無論失敗成功都從這次的實訓中學到了很多很多的東西 七 參考文獻: 胡健 主編 《單片機原理及接口技術》 張大明 主編 《單片機控制實訓指導及綜合應用實例》李勛、林廣艷《單片機微型計算機大學讀本》 機械工程出版社 機械工業(yè)出版社 北京航空航天大學出版社16 滄州職業(yè)技術學院單片機實訓報告 原理圖 滄州職業(yè)技術學院單片機實訓報告 雙位數(shù)碼管顯示控制程序及說明 START: MOV R0,#0;清零 MOV DPTR,#TABLE;指定查表起始地址 LOOP: ACALL DISPLAY;調用子程序DISPLAY INC R0;R0加1 CJNE R0,#100,LOOP JMP START DISPLAY: MOV A,R0 MOV B,#10 DIV AB MOV 20H,A MOV 21H,B MOV R3,#50;LOOP1: MOV A,21H ACALL CHANG CLR P2.4;ACALL DLY SETB P2.4 MOV A,20H ACALL CHANG CLR P2.5;ACALL DLY SETB p2.5 DJNZ R3,LOOP1 RET CHANG: MOVC A,@A+DPTR MOV P0,A;RET;R0未到100則轉換;跳轉 ;把R0里的數(shù)據(jù)送入A;把10送入B;a b相除;十位送入20H;個位送入21H 把50送入R3;取個位數(shù) ;調用子程序CHANG 開個位顯示;調用子程序DLY;關閉個位顯示;取十位數(shù) ;調用子程序CHANG 開十位顯示;調用子程序DLY;關閉十位顯示;循環(huán)50次;子程序返回;查表 查表結果送入P0;子程序返回 滄州職業(yè)技術學院單片機實訓報告 DLY: MOV R6,#20;典型延時子程序延時 D1: MOV R7,#248;10ms DJNZ R7,$ DJNZ R6,D1 RET TABLE: DB 0C0H,0F9H,0A4H DB 0B0H,99H,92H,82H DB 0F8H,80H,90H END ;表數(shù)據(jù)共陽極數(shù)碼管顯示代碼 滄州職業(yè)技術學院單片機實訓報告 心得體會 為期一周的單片機實訓結束了,真是讓我受益匪淺??!學到了很多東西,不管怎么樣,先感謝學校給我的這么多機會,真正的學到了東西。 隨著電子技術的發(fā)展,特別是隨著大規(guī)模集成電路的產生,給人們的生活帶來了根本性的變化,我們就學習了單片機這門課程,感覺是有點難。也不知道整個學習過程是怎么過來得,可是時間不等人。不過在學習中,我才發(fā)現(xiàn)學習單片機不僅僅需要軟件的知識,還需要硬件的知識。我買了一個單片機在實踐中就是一個活生生的例子,沒有相應的硬件知識,我連單片機怎么和電腦相連都不知道,我為我當初的想法感到羞愧。單片機是一門很好的學問,需要我去鉆研它。 不過在學習中,我才發(fā)現(xiàn)學習單片機不僅僅需要軟件的知識,還需要硬件的知識。我買了一個單片機在實踐中就是一個活生生的例子,沒有相應的硬件知識,我連單片機怎么和電腦相連都不知道,我為我當初的想法感到羞愧。單片機是一門很好的學問,需要我去鉆研它。 說起課程設計,我認為最重要的就是做好設計的預習,認真的研究老師給的題目,選一個自己有興趣的題目。其次,老師對實驗的講解要一絲不茍的去聽去想,因為只有都明白了,做起設計就會事半功倍,如果沒弄明白,就迷迷糊糊的去選題目做設計,到頭來一點收獲也沒有。最后,要重視程序的模塊化,修改的方便,也要注重程序的調試,掌握其方法。 滄州職業(yè)技術學院單片機實訓報告 在全組人竭盡全力,老師的精心指導下,程序基本編寫成功,這是我們共同努力的結果,在享受我們成果之時,不得不感慨單片機的重要性與高難度性,所以為期一周的單片機課程設計沒有浪費我我們學到了很多知識,也讓我們對單片機有了更深一步的了解,雖然最后結果是出來了,可這與老師的精心指導是分不開的她引導我們的思路,本來一竅不通的我們經過老師的點撥基本上通了,所以老師是功不可沒的。 總而言之,單片機課程設計對于我們有很大的幫助,我們從中受益匪淺。 參考文獻 [1]李廣弟等 單片機基礎[M] 北京航空航天出版社,2001.[2]王東峰等 單片機C語言應用100例[M] 電子工業(yè)出版社,2009.[3]陳海宴 51單片機原理及應用[M] 北京航空航天大學出版社,2010.[4]劉守義等 單片機技術基礎[M] 西安電子科技大學出版社,2007.[5]鐘富昭等 8051單片機典型模塊設計與應用[M] 人民郵電出版社,2007.[6]李平等 單片機入門與開發(fā)[M] 機械工業(yè)出版社,2008.[7]李全利 遲榮強編著 單片機原理及接口技術 高等教育出版社,2004 [8] 樓然苗等 51系列單片機設計實例 北京航空航天出版社,2003 [9]唐俊翟等 單片機原理及應用 冶金工業(yè)出版社,2003 5 滄州職業(yè)技術學院單片機實訓報告 [10]劉瑞新等 單片機原理及應用教程 機械工業(yè)出版社,2003第三篇:單片機實訓報告
第四篇:單片機實訓報告
第五篇:單片機實訓報告