單片機實訓報告
一.實訓目的:
單片機專周實訓是在學習完單片機應用技術課程之后開設的兩周實訓課程,在課程學習中,通過理論與實驗相結合的學習,同學們已經(jīng)掌握了單片機基本的使用方法,但是教材上的例子比較簡單,擴展的空間不大,因此此次實訓的目的是為了加強同學們對單片機開發(fā)流程的認識,加深對單片機I/O口擴展與外圍器件的使用,加強同學們的職業(yè)素養(yǎng),加強同學們的實際動手能力與調試能力,從而實現(xiàn)從理論到實踐的升華。
二.實驗設備:
1.單片機實驗板2.計算機
3.ISIS7Professional、SuperPro等相關調試編程軟件4.5V電源5.燒錄器
三.實訓要求:
本次實訓的項目是使用單片機制作一個數(shù)字溫度計,2位7段數(shù)碼管用以顯示兩位溫度數(shù)據(jù)。實訓過程先使用仿真軟件實現(xiàn)電路的仿真,再使用萬用板焊接電路,實現(xiàn)功能。要求仿真通過,實訓態(tài)度認真,制作電路整潔,能實現(xiàn)功能。
設計要求:使用熱敏電阻作為溫度傳感器,單片機作為處理芯片,根據(jù)佛山
的氣候,要求溫度顯示數(shù)據(jù)范圍為從0℃~45℃,分辨率為1℃,數(shù)碼管顯示采用動態(tài)掃描顯示方式。
四.實訓電路:
五.設計過程:
根據(jù)開發(fā)的要求,熱敏電阻作為溫度傳感器,必須使用直流偏置電路和AD轉換器,單片機接收AD轉換器的數(shù)據(jù),對照預先做好的溫度數(shù)據(jù)查表,查到了相應的溫度數(shù)據(jù),送到數(shù)碼管動態(tài)顯示。硬件結構圖如下圖。
因此該系統(tǒng)重點解決的問題是熱敏電阻的使用與AD轉換器的使用,而多位7段數(shù)碼管的動態(tài)顯示已經(jīng)非常熟悉了,因此不做過多的闡述。下面對一些重點問題進一步進行分析。
熱敏電阻偏置電路電壓
AD轉換器數(shù)據(jù)51單片機數(shù)碼管控制1.熱敏電阻:
熱敏電阻器有NTC與PTC兩種,NTC是NegativeTemperatureCoefficient的縮寫,意思是負的溫度系數(shù),泛指負溫度系數(shù)很大的半導體材料或元件,所謂NTC熱敏電阻器就是負溫度系數(shù)熱敏電阻器。它是以錳、鈷、鎳和銅等金屬氧化物為主要材料,采用陶瓷工藝制造而成的。這些金屬氧化物材料都具有半導體性質,因為在導電方式上完全類似鍺、硅等半導體材料。溫度低時,這些氧化物材料的載流子(電子和孔穴)數(shù)目少,所以其電阻值較高;隨著溫度的升高,載流子數(shù)目增加,所以電阻值降低。NTC熱敏電阻器在室溫下的變化范圍為100~1M,溫度系數(shù)為2%~6.5%。NTC熱敏電阻器可廣泛應用于溫度測量、溫度補償、抑制浪涌電流等場合。
NTC熱敏電阻專業(yè)術語:(1)零功率電阻值RT()
RT指在規(guī)定溫度T時,采用引起電阻值變化相對于總的測量誤差來說可以忽略不計的測量功率測得的電阻值。
電阻值和溫度變化的關系式為
RT=RNexpB(1/T1/TN)
RT:在溫度T(K)時的NTC熱敏電阻阻值。RN:在額定溫度TN(K)時的NTC熱敏電阻阻值。T:規(guī)定溫度(K)。
B:NTC熱敏電阻的材料常數(shù),又叫熱敏指數(shù)。exp:以自然數(shù)e為底的指數(shù)(e=2.71828…)。
該關系式是經(jīng)驗公式,只在額定溫度TN或額定電阻阻值RN的有限范圍內才具有一定的精確度,因為材料常數(shù)B本身也是溫度T的函數(shù)。
(2)額定零功率電阻值R25()
根據(jù)國家標準規(guī)定,額定零功率電阻值是NTC熱敏電阻在基準溫度25℃時測得的電阻值R25,這個電阻值就是NTC熱敏電阻的標稱電阻值。通常所說的NTC熱敏電阻多少阻值,亦指該值。
(3)材料常數(shù)(熱敏指數(shù))B值(K)B值被定義為
BT1T2RlnT1T2T1RT2
RT1:溫度T1(K)時的零功率電阻值。RT2:溫度T2(K)時的零功率電阻值。T1,T2:兩個被指定的溫度(K)。
對于常用的NTC熱敏電阻,B值的范圍一般為201*K~6000K。
本次實訓所使用NTC(負溫度系數(shù))熱敏電阻型號為MF58-503-390,其標稱阻值R25為50KΩ,材料常數(shù)B值為3900K(見型號的最后的三位數(shù),補0)。
根據(jù)上述公式,我們可以推算出MF58-503-390在0~99℃的電阻值,可以使
用excel表格公式推算,十分方便,當然也可以參見課本的數(shù)據(jù)表格。
(4)熱敏電阻偏置電路
VCC171415818192021D0D1D2D3D4D5D6D7ABCVR(+)12熱敏電阻本身是無源元件,只是溫度變化導致電阻值變化,因此使R720K16用時必須外接偏置電路,從而實現(xiàn)溫度變化導致電壓(電流)的變化。VR(-)最理想的情況是使用電流源串聯(lián)熱敏電阻,電流恒定,電阻變化直接導25IC2ADC0809致熱敏電阻兩端電壓與熱敏電阻呈線性變化,但是電流源電流相對復雜,262423使用的元器件太多,因此在溫度計這樣精度不高的場合并不適合。
109226OEALESC7簡單的偏置電路可以使用右圖的電路,電路簡單,而且線性化較好,EOCCLK比較適合于簡單的測溫電路。因此我們采用這種偏置電路。IN0IN1IN2IN3IN4IN5IN6IN7272812345RTR8100K
2.AD轉換器:
本次實訓使用ADC0809芯片,在設計電路的時候一定要預先規(guī)劃好0809的使用方式,具體使用查詢方法、中斷方法還是定時訪問方法可以自己選擇,因此電路的靈活性很強,編程也隨著硬件變化而變化。
3.數(shù)碼管顯示
數(shù)碼管顯示使用動態(tài)掃描方式,為了減少干擾和提高單片機的穩(wěn)定性,驅動數(shù)碼管使用一個74LS04(非門)驅動。
六.實訓程序:
ORG0000HLOOP:CLRP2.2SETBP2.2JNBP2.1,$CLRP2.0MOVA,P0SETBP2.0CLRC
SUBBA,#2CH
MOVDPTR,#TEMPTABMOVCA,@A+DPTRSETBP3.1SETBP3.MOVB,#10DIVABMOVR3,AMOVR4,B
MOVDPTR,#DIGITTABMOVA,R3
MOVCA,@A+DPTRMOVP1,ACLRP3.2
ACALLDELAYMOVA,R4
MOVCA,@A+DPTRSETRP3.2MOVP1,ACLRP3.1
ACALLDELAYAJMPLOOPDELAY:MOVR6,#2
D1:MOVR7.#250D2:NOP
DJNZR7,D2DJNZR6,D1RET
DIGITTAB:
DB0C0HDB0F9HDB0A4HDB0B0HDB099HDB092HDB082HDB0F8HDB080HDB090HDB08EH
TEMPTAB:
DB90,89,88,97,100,86,85,84,83,100,82,81,100,80DB79,100,78,77,100,76,75,100,74,100,73,100,72,71DB100,70,100,69,100,68,100,67,100,66,100,65,100,64DB100,63,100,62,100,61,100,60,100,100,59,100,58,100DB57,100,100,56,100,55,100,54,100,100,53,100,52,100DB100,51,100,50,100,100,49,100,48,100,100,47,100,46DB100,100,45,100,100,44,100,43,100,100,42,100,100,41DB100,40,100,100,39,100,38,100,100,37,100,100,36,1DB35,100,100,34,100,100,33,100,32,100,100,31,100,30DB100,100,29,100,28,100,100,27,100,26,100,100,25,100DB24,100,100,23,100,22,100,21,100,20,100,100,19,100DB18,100,17,100,16,100,15,100,14,100,13,100,12,100DB11,100,10,9,100,8,100,7,6,100,5,4,100,3DB2,1,100,0END
七.實訓心得:
通過幾天的實訓和劉志遠老師精心備課的教導,我在理論的基礎上更深刻的掌握了單
片機的深層內容及實際生活中的應用,實訓鍛煉了自己動手能力和思維能力。經(jīng)過這幾個星期的實訓,我懂了單片機溫度顯示器的工作原理:天氣的高低靠熱敏電阻來反應出分壓后出來相對應的電壓用ADC0809數(shù)模轉換的芯片把相對應的電壓反饋到單片機里,單片機內部程序已經(jīng)編譯好溫度的精度(即是分辨率)然后用動態(tài)七段數(shù)碼管顯示出相對應的溫度來,最后焊接出實物,用手緊貼住熱敏電阻溫度隨手貼的時間不斷上升放手后溫度恢復成室溫的溫度,調試成功。
實訓讓我對單片機控制系統(tǒng)的研究產(chǎn)生濃厚的興趣,還讓我了解了怎樣制作單片機燒錄器及程序的燒錄,在此以后,我會更多的去了解這個奇妙的領域。
擴展閱讀:單片機實訓報告心得
廣東輕工職業(yè)技術學院
實訓報告
實訓項目系別:專業(yè):班級:姓名:學號:指導老師:實訓地點:實訓時間:
單片機實訓電子通信工程系應用電子技術嵌入式091班11222
201*080202316丁向榮、趙慧第三實訓樓C309201*年1月10日至1月1
日
前言
單片機應用技術是現(xiàn)代電子設計的核心技術,學習單片機只是就是要將單片機應用到電子產(chǎn)品中,以單片機為控制核心實現(xiàn)電子系統(tǒng)所需實現(xiàn)的功能。單片機的應用能力很多程度上決定了電子類專業(yè)學生電子設計與電子應用的水平與能力,尤其是高職學生更是如此。
本項目要求設計一個簡單的電子時鐘,用六位LED數(shù)碼管實現(xiàn)電子時鐘的功能,顯示方式為時、分、秒,采用24h(小時)計時方式,使用按鍵開關可實現(xiàn)時分調整。
通過電子鬧鐘項目的課題設計,讓同學
們體驗項目設計的要點,了解項目設計的流程,加深對單片機應用知識的學習,體會團隊協(xié)作的力量所在。為日后的嵌入式專業(yè)學習鞏固基礎。
目錄
1.概述…………………………………………………………
1.1系統(tǒng)的作用
1.2系統(tǒng)的功能要求
2.系統(tǒng)硬件設計………………………………………………..
2.1系統(tǒng)的電路原理2.2電路原理圖2.3各控制按鈕控制功能說明.
3.系統(tǒng)軟件設計……………………………………………….4.系統(tǒng)調試…………………………………………………….5.總結…………………………………………………………
1.概述
1.1系統(tǒng)的作用
本系統(tǒng)是利用AT89C51單片機結合6個七段顯示器以24時制“時時分分秒秒”格式顯示時間的電子定時鬧鈴,系統(tǒng)可以設置8組定時鬧鈴和1組倒計時功能;當定時鬧鈴和倒計結束時,該電子時鐘通過蜂鳴器發(fā)出嘀嘀嘀響聲;本系統(tǒng)還具有半點和整點報時功能,當現(xiàn)在時間為半點時會發(fā)出嘀的一聲響,當現(xiàn)在時間為整點時報整點數(shù)響聲。由于該電子定時鬧鈴有強大功能可以在多種場合下使用,利用七段顯示器發(fā)光也可以在夜晚和黑暗場合下使用。1.2系統(tǒng)的功能要求
(1)使用6位七段顯示器顯示24時制時間。(2)時間顯示格式為“時時分分秒秒”。(3)定時鬧鈴功能。(4)倒計時功能。
(5)半點報時功能:當現(xiàn)在時間為半點時,蜂鳴器發(fā)出“嘀”
一聲響。
(6)整點報時功能:當現(xiàn)在時間為整點時,蜂鳴器發(fā)出現(xiàn)在時間整點數(shù)響聲。
(7)當任一鬧鈴時間到時發(fā)出連續(xù)“嘀嘀嘀”響聲,七段顯示器顯示“XHHMM”。
(8)當?shù)褂嫊r時間到時發(fā)出嘀嘀嘀響聲,七段顯示器顯示“000000”。
(9)定時鬧鈴、倒計時和現(xiàn)在時間模式可以互相切換而不影響各自功能。
(10)具有4個按鍵來進行功能設置,可以設置當前時間、8組鬧鈴的時間設置和開關及倒計時的時間設置。
(11)通過復位按鍵可以重啟系統(tǒng)。
2.系統(tǒng)的硬件設計
2.1系統(tǒng)的電路原理
(1)系統(tǒng)以AT89C51單片機為本電路的核心元件,通過單片機的P0.0~P0.7引腳和A102J排阻加上拉電壓來驅動七段顯示器段顯示數(shù)字。
(2)通過單片機的P2.2~P2.7引腳連接A103J排阻拉升電壓信號,控制6個8050NPN三極管使共陰極七段顯示器連通接地來循
環(huán)點亮6位七段顯示器。
(3)在七段顯示器供電的同時由P0腳驅動顯示不同數(shù)字。根據(jù)人眼的視覺暫留特點,調整延遲時間使所觀察到時間數(shù)字是穩(wěn)定的數(shù)字。
(4)系統(tǒng)使用了HYDZ蜂鳴器,通過單片機P3.7引腳連接8550PNP三極管推動發(fā)聲。
(5)電路通過4個按鍵連接單片機P1.0~P1.3引腳低電平控制系統(tǒng)功能設置。
(6)單片機的復位電路,采用傳統(tǒng)上電復位,通過Reset按鍵控制。
(7)電路可以通過+5V和+12V直流電供電,當使用+12V直流供電時,電路通過1個7805三端穩(wěn)電器、2個35v100μF電解電容和1個50v10μF電解電容轉換成+5V直流電供電。
(8)系統(tǒng)通過一個發(fā)光二極管指示電路供電是或正常。
2.2電路原理圖
圖示為數(shù)碼管顯示電路
圖示為主程序電路圖2.3各控制按鈕控制功能說明
KEY0(按鍵INT0):調時向左移一位數(shù)接P3.0KEY1(按鍵INT1):當前位加1接P3.1KEY2(按鍵T0):當前位減1接P3.2KEY3(按鍵T1):確定調時時間接P3.3
S1:切換鬧鐘調時模式(高電平)接P3.4S2:中斷程序(高電平),中斷當前的鬧鐘或整點報時的響應接P3.5S3:暫停和開始計時(高電平)接P3.6
BELL:蜂鳴器接P3.7
當整點報時和鬧鐘響應的時候會響。
LED燈當整點報時和鬧鐘響應的時候會亮。
P1.0~P1.3分別接LED燈的高四位,P1.4~P1.7分別接燈的低四位。
P0.0~P0.7分別口接數(shù)碼管的段選的a~h位
P2.0~P2.5口分別接數(shù)碼管的位選的6~1位
3.軟件設計
表一程序內存資源分配表
內存地址20H21H22H23H24H25H26H27H.027H.127H.227H.327H.427H.527H.6
變量名稱作用說明SECONMINHOUR存放50毫秒計時存放0.5秒計時存放1秒計時存放1分計時存放1小時計時用于中斷1(#6H)用于顯示中的閃爍鬧鐘標志位允許響鈴用于標志分、秒(1為秒),鬧鐘功能時也一樣鬧鐘總開關(1為開)用于閃爍標志用于閃爍秒表標志表一程序內存資源分配表
內存地址27H.728H-29H30H-35H36H37H-39H40H變量名稱作用說明DISPSP兩組鬧鐘的標志位,默認值為0用于保存閃爍時的調時區(qū)地址存放調時區(qū)地址用于存放要顯示的首字(例如秒)第一組鬧鐘的時分棧底秒表第二組鬧鐘的時分存放鬧鐘調分地址存放鬧鐘調時地址鬧鐘組的切換標志(默認值為0)切換(默認值為0)鬧鐘第二組開關(默認值為0)50H-52H53H-55H56H57H2AH.02AH.12AH.2
表二芯片端口資源分配表
芯片端口P1.0P1.1P1.2P1.3P1.7P0P2.2P2.3變量名稱作用說明K1K2K3K4SPK操作鍵K1操作鍵K2操作鍵K3操作鍵K4壓電喇叭控制信號七段顯示器數(shù)數(shù)字形狀控制控制時間小時的十位七段顯示器亮滅控制時間小時的個位七段顯示器亮滅表二芯片端口資源分配表
芯片端口P2.4P2.5P2.6P2.7P3.0P3.1P3.2P3.3
變量名稱作用說明BELL控制時間分鐘的十位七段顯示器亮滅控制時間分鐘的個位七段顯示器亮滅控制時間秒鐘的十位七段顯示器亮滅控制時間秒鐘的個位七段顯示器亮滅蜂鳴器LED半秒閃爍LED顯示第一組鬧鐘是否開啟LED顯示第二組鬧鐘是否開啟表三寄存器資源分配表
組寄存器R0R1第0組R2R3R4R6、R7第1組
作用說明存放秒顯示地址顯示首址#06H#0FEH#3H延時初始值用于keyB、C用于中斷R0R5
流程圖顯示如下:
開始系統(tǒng)初始化電子鐘時分秒顯示中斷允許T0中斷顯示子程序按鍵子程序主程序流程圖
12調時0.3s閃爍顯示中斷
開始系統(tǒng)初始化判斷中斷S1=1?S2=1?S3=0?進入鬧鐘調時強制退出中斷暫停計時返回計時結束功能選擇中斷
開始N開啟按鈕中斷?Y繼續(xù)計時進入按鈕判斷顯示+1YKey3=0?Y退出按鈕中斷Key3=0?Key1=0?N調時位左移一位Key2=0?顯示-1調時程序流程圖
開始保護現(xiàn)場N中斷6次?Y當前調整位熄滅恢復現(xiàn)場返回調時0.3s閃爍顯示中斷
源程序清單:
#include
#defineucharunsignedchar#defineled_dataP0//P0顯示數(shù)碼管當前位的數(shù)字#defineled_bitP2//P2控制當前數(shù)碼管顯示的位數(shù)
intb;
ucharconls=0x00;//記錄秒分時的個位數(shù)ucharcons=0x00;//記錄秒分時的十位數(shù)ucharcon=0x00;//記錄調時程序當前位數(shù)ucharx=0x00;//記錄鬧鐘
sbitkey0=P3^0;//key0控制調時位左移以一位sbitkey1=P3^1;//key1控制挑時當前位數(shù)字+1sbitkey2=P3^2;//key1控制挑時當前位數(shù)字-1sbitkey3=P3^3;//確定當前挑時中斷程序sbitstop=P3^4;//用來暫時計時和啟動計時sbitbaojing=P3^5;//用以響應整點報時和鬧鐘sbitnaozhong=P3^6;//用來開啟鬧鐘調時程序sbitbeep=P3^7;//用來終止當前整點報時或鬧鐘響應
ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};//數(shù)碼管當前位0~9的顯示碼
uchardatascan_con[6]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF};//數(shù)碼管左到右6個位的顯示
uchardatadis[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x00};//數(shù)碼管的顯示碼
uchardatatimedata[6]={0x00,0x00,0x00,0x00,0x00,0x00};//電子鐘的初始時間:00:00:00
uchardatasecclock[6]={0x00,0x00,0x00,0x00,0x00,0x00};//鬧鐘調時的初始時間:00:00:00uchari;
display();//顯示數(shù)碼管函數(shù)申明keyscan();//調時按鈕函數(shù)聲明//alarmcolk();
/************************************************************************/
/*1ms延時顯示程序
*/
/************************************************************************/
voiddelay(intz){intx,y;
for(x=0;x
/************************************************************************/
/*初始化子程序*/
/************************************************************************/initializa(){
for(i=0;i{baojing=0;P1=0x00;delay(500);baojing=1;P1=0xff;delay(500);}}}
if(key3==0){con=0;x=0;TR1=0;ET1=0;TR0=1;ET0=1;}//關閉調時按鈕中斷,繼續(xù)顯示電子鐘的時間elseif(naozhong==0)//開啟調時按鈕中斷{EA=0;if(key0==0){delay(10);while(key0==0);if(dis[con]==10){dis[7]=dis[con];dis[con]=dis[6];dis[6]=dis[7];}con++;TR0=0;ET0=0;TR1=1;ET1=1;if(con>=6)//若左移位數(shù)超過6,則關閉調時按鈕中斷,繼續(xù)顯示電子鐘的時間{con=0;TR1=0;ET1=0;TR0=1;ET0=1;}}if(con!=0){if(key1==0){delay(10);while(key1==0);timedata[con]++;//當前位數(shù)據(jù)+1switch(con){case1:case3:if(timedata[con]>=6)//1、3位滿6進一{timedata[con]=0;
}break;case2:case4:if(timedata[con]>=10)進一{timedata[con]=0;}break;case5:if(timedata[con]>=3){timedata[con]=0;}break;default:;}dis[con]=timedata[con];dis[6]=0x0a;}}if(con!=0){if(key2==0){delay(10);while(key2==0);switch(con){case1:case3:if(timedata[con]==0){timedata[con]=0x05;的減1處理}else{timedata[con]--;}break;case2:case4:if(timedata[con]==0)
20//2、4位滿10
//5位滿2清零
//1、3位為0時
//當前位數(shù)據(jù)-{timedata[con]=0x09;的減1處理}else{timedata[con]--;}break;case5:if(timedata[con]==0){timedata[con]=0x02;減1處理}else{timedata[con]--;}break;default:;}dis[con]=timedata[con];dis[6]=0x0a;}}EA=1;}elseif(naozhong!=0)斷,功能類似上面{EA=0;if(key0==0){delay(10);while(key0==0);if(dis[x]>=10){dis[7]=dis[x];dis[x]=dis[6];dis[6]=dis[7];}x++;TR0=0;ET0=0;TR1=1;ET1=1;if(x>=6){x=0;TR1=0;ET1=0;TR0=1;ET0=1;}
21//2、4位為0時
//當前位數(shù)據(jù)-1
//5位為0時的
//減1處理
//送顯示數(shù)據(jù)
//開啟調時按鈕中
}if(x=6){secclock[x]=0;}break;case2:case4:if(secclock[x]>=10){secclock[x]=0;}break;case5:if(secclock[x]>=3){secclock[x]=0;}break;default:;
}dis[x]=secclock[x];dis[6]=0x0a;}}if(x>=0){if(key2==0){delay(10);while(key2==0);switch(x){
case1:case3:if(secclock[x]==0){secclock[x]=0x05;}else{secclock[x]--;}break;case2:case4:if(secclock[x]==0){secclock[x]=0x09;}else{secclock[x]--;}break;case5:if(secclock[x]==0){secclock[x]=0x02;}else{secclock[x]--;}break;default:;}dis[x]=secclock[x];dis[6]=0x0a;}}EA=1;}
}/********************************************************************
****/
/*0.3s閃爍中斷小程序*/
/************************************************************************/
voidtime_intt1(void)interrupt3{
EA=0;TR1=0;TH1=0X3C;TL0=0XB0;TR1=1;cons++;
if(cons==6)//50msx6=300ms=0.3s{cons=0x00;dis[7]=dis[con];dis[con]=dis[6];dis[6]=dis[7];}
EA=1;}
/************************************************************************/
/*電子鐘顯示進位處理程序*/
/************************************************************************/
voidtime_intt0(void)interrupt1{{inti,j,x=0;j=0;
if(naozhong==0&&stop==1){ET0=0;TR0=0;TH0=0X3C;TL0=0XB0;TR0=1;conls++;if(conls==20)//20次延時,秒+1{conls=0x00;timedata[0]++;if(timedata[0]>=10)//10s時,秒十位數(shù)+1{timedata[0]=0;timedata[1]++;if(timedata[1]>=6)//60s時,分+1{//5timedata[1]=0;timedata[2]++;
if(timedata[2]>=10)//10min時,分十位數(shù)+1{timedata[2]=0;timedata[3]++;if(timedata[3]>=6)//60min時,時+1{timedata[3]=0;timedata[4]++;if(beep==0){
for(i=1;i=10)時,時十位數(shù)+1{timedata[4]=0;timedata[5]++;if(timedata[5]==2)//當h等于24時,清零{if(timedata[4]==4){timedata[4]=0;timedata[5]=0;}}}}}}}for(b=0;b顯示碼{dis[b]=timedata[b];}}ET0=1;}
/*顯示清零并轉換成秒計時(原時間仍然保存)*//*elseif(jishi==1){for(j=0;j=10){timedata[0]=0;timedata[1]++;if(secclock[0]>=10){secclock[0]=0;secclock[1]++;}}if(timedata[1]>=6){timedata[1]=0;timedata[2]++;if(secclock[1]>=6){secclock[1]=0;secclock[2]++;}}if(timedata[2]>=10)
26}}
{timedata[2]=0;if(secclock[2]>=10){secclock[2]=0;secclock[3]++;}}}}for(b=0;b
5.總結
AT89C51單片機作為嵌入式專業(yè)的入門基礎,受到行業(yè)內的高度重視。作為一名高職高專的學生,最重要的是實際操作能力,而對于修讀嵌入式專業(yè)的高職學生更是如此。單片機實訓,敲開了同學們對知識求知若渴的大門。
本周的單片機實訓項目課題是定時鬧鈴。剛接到課題時感覺毫無壓力,覺得自己的能力應該很快就可以完成,因為本項目要實現(xiàn)的功能只不過是同等于價值2元的電子鬧鐘!
但是現(xiàn)實卻擊垮了浮夸的我們。程序設計無從入手,調試錯誤,單片機無響應……老師在講解課題任務的時候確實是很簡單,清晰明了。但是真正到我們設計的時候,錯誤接一連二。由于對匯編語言掌握不足,最終放棄匯編語言改換C語言編寫程序。函數(shù)調用,設計循環(huán)語句,調用數(shù)組函數(shù)……
一步步慢慢深入,一點點漸漸掌握。最終,經(jīng)過小組成員不停地編碼,測試,運行,一個小項目終于完成。
項目雖然完成,但通過本次實訓確實感觸不少。于嵌入式行業(yè)而言,單片機談得上是基礎,但是就連這樣一門基礎我們也沒有熟悉掌握,對于日后ARM的學習就更是困難。不過在實訓中我們也學會了很多。項目設計、功能選定、搭建硬件工作環(huán)境、編寫軟件程序,程序下載測試、程序最終實現(xiàn),以及在項目設計中的團隊分工與合作。
嵌入式行業(yè)在我國日趨發(fā)展成熟,而嵌入式行業(yè)的人才
卻是十分緊缺,這就取決于嵌入式行業(yè)對技術型人才要求高的特點。要想在嵌入式行業(yè)站穩(wěn)腳,就必須要痛下苦工,敢于鉆研。相信通過日后的專業(yè)知識學習,我們會在嵌入式學習的道路上越走越遠。
友情提示:本文中關于《單片機實訓報告》給出的范例僅供您參考拓展思維使用,單片機實訓報告:該篇文章建議您自主創(chuàng)作。
來源:網(wǎng)絡整理 免責聲明:本文僅限學習分享,如產(chǎn)生版權問題,請聯(lián)系我們及時刪除。