第一篇:單片機實習報告標準文本
遼寧科技學院實習報告
目錄
前言………………………………………………………………… 2 軟件實驗
清零程序??????????????????????? 3 拆字程序…………………………………………………………… 4 拼字程序…………………………………………………………… 5 數(shù)據(jù)排序?qū)嶒灐?6 脈沖計數(shù)…………………………………………………………… 7 電腦時鐘…………………………………………………………… 11 二進制轉(zhuǎn)到BCD碼………………………………………………… 18 八段數(shù)碼管顯示…………………………………………………… 19 鍵盤掃描程序……………………………………………………… 22 倒計時秒表………………………………………………………… 24 硬件實驗
P1口亮燈實驗…………………………………………………… 28 A/D轉(zhuǎn)換實驗……………………………………………………… 28 實習心得…………………………………………………………… 30
遼寧科技學院實習報告
清零程序
實驗目的
掌握匯編語言設(shè)計和調(diào)試方法,熟悉鍵盤操作。實驗內(nèi)容
把2000H~20FFH的內(nèi)容清零。實驗步驟
★本實驗涉及外部數(shù)據(jù)存儲器擴展尋址操作,因此在實驗前按硬件實驗十九(數(shù)據(jù)存儲器和程序存儲器擴展實驗)連接存儲器擴展電路。
以0100H為起始地址用連續(xù)或單步方式運行程序,檢查2000H~20FFH中執(zhí)行程序前后的內(nèi)容變化。程序流程
實驗程序
MOV DPTR,#2000H;把(2000H)送DPTR MOV R0,#00H;R0中的內(nèi)容送0 LOOP: MOV @DPTR,#0;把0送(DPTR)INC DPTR;DPTR+1 INC R0;R0自加1 CJNE R0,#00H,LOOP;當R0再次加到00時到20FFH單元清零完成 END ;結(jié)束
遼寧科技學院實習報告
MOV @R0,A;送2002H END
拼字程序
實驗目的
進—步掌握匯編語言設(shè)計和調(diào)試方法。實驗內(nèi)容
把2000H、2001H的低位分別送入2002H高低位,一般本程序用于把顯示緩沖區(qū)的數(shù)據(jù)取出拼裝成—個字節(jié)。實驗步驟
★本實驗涉及外部數(shù)據(jù)存儲器擴展尋址操作,因此在實驗前按硬件實驗十九(數(shù)據(jù)存儲器和程序存儲器擴展實驗)連接存儲器擴展電路。
以0100H為起始地址用單步或斷點方式運行程序,檢查2002H內(nèi)容變化情況。程序流程
實驗程序
ORG 0100H MOV R0,#2000H MOV A,@R0 SWAP A;交換高低4位 ANL A,#0FH;(2000H)內(nèi)容取低位 MOV R1,A;A內(nèi)容送至R1 INC R0;R0自加1
遼寧科技學院實習報告
實驗程序
ORG 0100H Q1: MOV R3,#50H;50H給R3 MOV A,R3 ;R3給A MOV R0,A;50H給R0 MOV R7,#0AH;長度10送R7 CLR 00H;00H單元標志位清零 MOV A,@R0;(50H)給A Q2: INC R0;R0內(nèi)容為51H MOV R2,A ;A給R2 CLR C;Cf位清零 MOV 22H,@R0;51H內(nèi)容送22H CJNE A,22H,Q3;50H,51H內(nèi)容相等則跳轉(zhuǎn) SETB C;置位C Q3: MOV A,R2 JC Q1;大于交換位置 SETB 00H;00H位標志位置1 XCH A,@R0;交換50H,51H內(nèi)容 SUB R0,#1;R0減1 XCH A,@R0 INC R0 ;R0自加1 Q1: MOV A,@R0 DJNZ R7,Q2;R7-1不等于0則跳轉(zhuǎn)Q2 JB 00H,Q1;有交換繼續(xù) SJMP $;無條件跳到當前 END
脈沖計數(shù)(定時器/計數(shù)器綜合實驗)實驗目的
遼寧科技學院實習報告
MOV TH0,#00H MOV TL0,#00H;定時計數(shù)器初始化 SETB TR0;開計數(shù)器 LO29: MOV R2,TH0 MOV R3,TL0;取出TH0.TL0內(nèi)容 LCALL ZOY0;二轉(zhuǎn)十進制 MOV R0,#79H MOV A,R6 LCALL PTDS MOV A,R5 LCALL PTDS MOV A,R4 LCALL SSEE;LCALL PTDS;SJMP LO29;ZOY0: CLR A MOV R4,A MOV R5,A MOV R6,A;0 MOV R7,#10H LO30: CLR C;R2 R3 MOV A,R3;RLC A MOV R3,A MOV A,R2 RLC A MOV R2,A MOV A,R6 ADDC A,R6;(R4 R5 R6)*2+CY DA A;;79H給R0 ;R6給A ;調(diào)用PTDSS ;R5給A 顯示 送顯示緩沖區(qū) 循環(huán)計數(shù).顯示 送R4 R5 R6 左移.移出的 最高位送CY ;A給R3 ;R2給A 送R4 R5 R6 十進制調(diào)整
遼寧科技學院實習報告
MOV A,@R0 MOV DPTR,#DDFF MOVC A,@A+DPTR;取字形代碼 MOV R1,#0DCH MOVX @R1,A;字形送入 MOV A,30H;右移 RR A MOV 30H,A DEC 31H MOV A,#0FFH MOVX @R1,A;關(guān)顯示
DJNZ R7,SSE1;6位顯示完了嗎? DJNZ R5,SSE2;5次顯示完了嗎? CLR RS1 RET;-------------------------DDFF: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH;-------------------------END 電腦時鐘(定時器、中斷綜合實驗)實驗目的
熟悉MCS-51定時器,串行口和中斷初始化編程方法,了解定時器的應用實時程序的設(shè)計與調(diào)試技巧。實驗內(nèi)容
編寫程序,從本實驗系統(tǒng)鍵盤上輸入時間初值,用定時器產(chǎn)生0.1S定時中斷,對時鐘計數(shù)器計數(shù),并將數(shù)值實時地送數(shù)碼管顯示。實驗步驟
以0030H為起始地址連續(xù)運行程序,在鍵盤上輸入時間初值,按執(zhí)行鍵EXEC執(zhí)行,數(shù)碼管上實時顯示時間值。
遼寧科技學院實習報告
PUSH ACC SETB 0D3H INC 23H MOV A,23H CJNE A,#0AH,DONE MOV 23H,#00H SSE2: MOV 30H,#20H MOV 31H,#7EH MOV R7,#06H SSE1: MOV R1,#0DDH MOV A,30H
MOVX @R1,A MOV A,22H INC A DA A MOV 22H,A CJNE A,#60H,DONE MOV 22H,#00H MOV A,21H INC A DA A MOV 21H,A CJNE A,#60H,DONE MOV 21H,#00H MOV A,20H INC A DA A MOV 20H,A CJNE A,#24H,DONE MOV 20H,#00H DONE: POP ACC POP PSW RETI;------------------------SSEE: SETB RS1 MOV R5,#05H
MOV R0,31H MOV A,@R0 MOV DPTR,#DDFF
MOVC A,@A+DPTR MOV R1,#0DCH
MOVX @R1,A MOV A,30H RR A MOV 30H,A DEC 31H MOV A,#0FFH
MOVX @R1,A DJNZ R7,SSE1 DJNZ R5,SSE2 CLR RS1 RET
;----------------------------DDFF:
DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H DB 8EH,0FFH,0CH,89H,0DEH;----------------------------X3: MOV R4,A
遼寧科技學院實習報告
JZ X10 MOV R2,#88H MOV R4,#88H X10: DEC R4 MOV A,R4 XRL A,#82H JZ X11 MOV A,R4 XRL A,#0EH JZ X11 MOV A,R4 JZ X12 MOV R4,#20H DEC R2 SJMP X13 X12: MOV R4,#0FH X11: MOV R2,04H NOP NOP MOV R4,03H X13: MOV R1,#48H MOV A,R2 MOV @R1,A INC R1 MOV A,R3 MOV @R1,A MOV A,R4 JB ACC.5,X113 JB ACC.4,X113 MOV DPTR,#LS3
MOVC A,@A+DPTR
X113: RET
;---------------------LS3:
DB 07H,04H,08H,05H DB 09H,06H,0AH DB 0BH,01H,00H,02H DB 0FH,03H,0EH DB 0CH,0DH
;-----------------------DIS: PUSH DPH PUSH DPL SETB RS1 MOV R0,#7EH MOV R2,#20H MOV R3,#00H MOV DPTR,#LS0 LS2: MOV A,@R0 MOVC A,@A+DPTR MOV R1,#0DCH MOVX @R1,A MOV A,R2 inc R1 MOVX @R1,A LS1: DJNZ R3,LS1 CLR C RRC A MOV R2,A DEC R0 JNZ LS2
遼寧科技學院實習報告
LEDS: MOV @R0,A INC R0 CJNE R0,#7EH,LEDS INC A MOV @R0,A RET;----------------------LCK0: LCALL X2 JB ACC.4,LDFC LCALL X3 DB 79H,7EH SJMP LCK0 LDFC: CJNE A, #16H,LCK0 MOV A, 7AH SWAP A ORL A, 79H MOV 22H, A CJNE A, #60H,LE09 LE09: JNC LE24 MOV A, 7CH SWAP A ORL A, 7BH MOV 21H, A CJNE A, #60H,LE15 LE15: JNC LE24
MOV A, 7EH SWAP A ORL A, 7DH MOV 20H, A CJNE A, #24H,LE21 LE21: JNC LE24 RET
;------------------------LE24: CLR 8CH LJMP CHK00 DELYA: PUSH 02H DELYB: PUSH 02H DELYC: PUSH 02H DELYD: DJNZ R2,DELYD
LCALL SSEE POP 02H DJNZ R2,DELYC POP 02H DJNZ R2,DELYB POP 02H
DJNZ R2,DELYA RET
;-----------------------END
遼寧科技學院實習報告
DIV AB MOV RESULT+1,A;余數(shù)除以10,得十位數(shù) MOV RESULT+2,B;余數(shù)為個位數(shù) RET LOOP1: MOV SP 30H ;指針到30H MOV A,#123 ;123立即數(shù)給A CALL LOOP2 ;調(diào)用LOOP2 LJMP $ ;跳到當前 END
八段數(shù)碼管顯示
實驗要求
利用實驗系統(tǒng)提供的顯示設(shè)備,動態(tài)顯示一行數(shù)據(jù)。實驗目的
1.了解數(shù)碼管動態(tài)顯示的原理。
2.了解用總線方式控制數(shù)碼管顯示。實驗說明
本實驗系統(tǒng)提供了6位八段碼LED顯示電路,學生只要按地址輸出相應數(shù)據(jù),就可以實現(xiàn)對顯示器的控制。程序流程
遼寧科技學院實習報告
MOV r7,#0 DELAYLOOP: DJNZ r7,DELAYLOOP DJNZ r6,DELAYLOOP RET DISPLAYLED: MOV r0,#LEDBUF MOV r1,#6;共6個八段管 MOV r2,#100000b;從左邊開始顯示 Loop: MOV DPTR,#OUTBIT MOV a,#0 MOVX @DPTR,a;關(guān)所有八段管 MOV a,@r0 MOV DPTR,#OUTSEG MOVX @DPTR,a MOV DPTR,#OUTBIT MOV a,r2 MOVX @DPTR,a;顯示一位八段管 MOV r6,#01 CALL DElAY MOV a,r2;顯示下一位 RR a MOV r2,a inc r0 DJNZ r1,Loop MOV DPTR,#OUTBIT MOV a, #0 MOVX @DPTR,a;關(guān)所有八段管 RET
遼寧科技學院實習報告
實驗程序
YWJ: MOV P1,#0F0H MOV R3,P1;OFOH MOV P1,#0FH MOV A,P1 ORL A,R3 CPL A JZ YWJ1 LCALL YS1MS MOV P1,#0F0H MOV R3,P1 MOV P1,#0FH MOV A,P1 ORL A,R3 CPL A YWJ1:RET YS1MS:MOV R1,#4 LOOP:MOV R2,#250 LOOP1:DJNZ R2,LOOP1 DJNZ R1,LOOP RET END 倒計時秒表
給R3 ;0FH中的內(nèi)容給A ;A和R3或 ;0F0給P1 ;0FH給A
遼寧科技學院實習報告
實驗目的
熟悉MCS-51定時器,串行口和中斷初始化編程方法,了解定時器的應用實時程序的設(shè)計與調(diào)試技巧。實驗內(nèi)容
編寫程序,從本實驗系統(tǒng)鍵盤上輸入時間初值,用定時器產(chǎn)生10MS定時中斷,對秒表計數(shù)器計數(shù),并將數(shù)值實時地送數(shù)碼管顯示。實驗步驟
以0030H為起始地址連續(xù)運行程序,在鍵盤上輸入時間初值,按執(zhí)行鍵EXEC執(zhí)行,數(shù)碼管上實時顯示時間值。倒計時到0時P1口燈亮。程序終止 實驗程序
在數(shù)字時鐘基礎(chǔ)上做出修改,此處只列出修改的程序段 主程序:
ORG 0000H SJMP CHK00 ORG 000BH LJMP CLOCK;INT_T0 ORG 0030H CHK00: MOV SP,#60H LCALL LEDP CHK0: LCALL LCK0 LCALL PTDS0 MOV TMOD,#02H ORL IE,#82H MOV TL0,#06H MOV TH0,#06H MOV 23H,#00H SETB TR0 LOO5: LCALL DIS LCALL PTDS0 SJMP LOO5
遼寧科技學院實習報告
DA a JMP done DONE4: MOV 24h,a ANL a,#0fh CJNZ a,#00h,done3 JMP done5 done2: MOV a,24h SUBB a,#07h MOV 20h,a DA a JMP done DONE1: MOV 24h,a ANL a,#0fh CJNZ a,#00h,done3 JMP done2 done3: DA a;時單元清零 DONE: POP ACC;退棧 POP PSW RETI dde2: MOV p1,#0ffh MOV A,#00h MOV p1,A 子程序2;-LCK0: LCALL X2 JB ACC.4,LDFC LCALL X3 DB 79H,7EH SJMP LCK0 LDFC: CJNE A, #16H,LCK0
遼寧科技學院實習報告
P1口亮燈實驗
實驗目的:
⑴學習P1口的使用方法;
⑵學習延時子程序的編寫。
實驗預備知識:
⑴P1口對準雙向口,每一位都可獨立地定義為輸出線或輸入線。
⑵本實驗中延時子程序采用指令循環(huán)來實現(xiàn),機器周期(12/6MHz)*指令所需機器周期數(shù)* 循環(huán)次數(shù),在系統(tǒng)時間允許的情況下可以采用此方法。
實驗內(nèi)容:
P1作為輸出口,接八只發(fā)光二極管,編寫程序,使發(fā)光二極管循環(huán)點亮。
實驗步驟:
P1.O~P1.7用插針連至L1~L8,運行程序后,觀察發(fā)光二極管閃亮移位情況。
實驗流程:
A/D轉(zhuǎn)換實驗
實驗目的:
⑴掌握A/D轉(zhuǎn)換與單片機接口的方法;
⑵了解A/D芯片0809轉(zhuǎn)換性能及編程方法;
⑶通過實驗了解單片機如何進行數(shù)據(jù)采集。
實驗內(nèi)容:
利用實驗儀上的0809做A/D轉(zhuǎn)換實驗,實驗儀上的W1電位器提供模擬量輸入。編制程
序,將模擬量轉(zhuǎn)換成數(shù)字量,通過發(fā)光二極管L1~L8顯示。
第二篇:單片機實習報告
單片機實習報告
單片機>實習報告
(一)這次實習我們使用控制電路的單片機是AT89S51型號的。通過它實現(xiàn)對八盞雙色燈發(fā)光二極管的控制P0和《單片機實習報告總結(jié)》正文開始》 這次實習我們使用控制電路的單片機是AT89S51型號的。通過它實現(xiàn)對八盞雙色燈發(fā)光二極管的控制P0和P2口控制四盞燈。在AT89S51的9引腳接復位電路,對電路實現(xiàn)復位控制。在電路中接入74S164譯碼器和共陰極數(shù)碼管,通過AT89S51的P3口數(shù)據(jù)的輸入對共陰極數(shù)碼管的控制。同時也可實現(xiàn)雙色發(fā)光的二極管與共陰極數(shù)碼管的共同作用。在AT89S51的P3.2口接上中斷控制電路,P3.5口接入蜂鳴器,使電路實現(xiàn)中斷作用,也使電路便于檢測。盡量朝“單片”方向設(shè)計硬件系統(tǒng)。系統(tǒng)器件越多,器件之間相互干擾也越強,功耗也增大,也不可避免地降低了系統(tǒng)的穩(wěn)定性。系統(tǒng)中的相關(guān)器件要盡可能做到性能匹配。如選用CMOS芯片單片機構(gòu)成低功耗系統(tǒng)時,系統(tǒng)中所有芯片都應盡可能選擇低功耗產(chǎn)品。
硬件電路設(shè)計:
1)確保硬件結(jié)構(gòu)和應用軟件方案相結(jié)合。硬件結(jié)構(gòu)與軟件方案會相互影響,軟件能實現(xiàn)的功能盡可能由軟件實現(xiàn),以簡化硬件結(jié)構(gòu)。必須注意,由軟件實現(xiàn)的硬件功能,一般響應時間比硬件實現(xiàn)長,且占用CPU時間;
2)可靠性及抗干擾設(shè)計是硬件設(shè)計必不可少的一部分,它包括芯片、器件選擇、去耦濾波、印刷電路板的合理布線、各元器相互隔離等;
3)盡量朝“MCS-51單片”方向設(shè)計硬件系統(tǒng)。系統(tǒng)器件越多,器件之間相互干擾也越強,所消耗功耗也增大,也不可避免地降低了系統(tǒng)的穩(wěn)定性;
4)系統(tǒng)中的相關(guān)器件要盡可能做到性能匹配。如選用CMOS芯片單片機構(gòu)成低功耗系統(tǒng)時,系統(tǒng)中所有芯片都應盡可能選擇低功耗產(chǎn)品。
1.1 單片機型號及特性
單片機型號是 AT89S51。特性是:⑴8031 CPU與MCS-51⑵兼容 4K字節(jié)可編程FLASH存儲器(壽命:1000寫/擦循環(huán))⑶全靜態(tài)工作:0Hz-24KHz ⑷三級程序存儲器保密鎖定 ⑸128*8位內(nèi)部RAM ⑹32條可編程I/O線⑺兩個16位定時器/計數(shù)器 ⑻6個中斷源⑼可編程串行通道⑽低功耗的閑置和掉電模式⑾片內(nèi)振蕩器和時鐘電路
1.2 晶振電路
單片機晶振的兩個電容的作用 這兩個電容叫晶振的負載電容,分別接在晶振的兩個腳上和對地的電容,一般在幾十皮發(fā)。它會影響到晶振的諧振頻率和輸出幅度,晶振的負載電容=[(Cd*Cg)/(Cd+Cg)]+Cic+△C式中Cd,Cg為分別接在晶振的兩個腳上和對地的電容,Cic(集成電路內(nèi)部電容)+△C(PCB上電容)經(jīng)驗值為3至5pf。各種邏輯芯片的晶振引腳可以等效為電容三點式振蕩器。晶振引腳的內(nèi)部通常是一個反相器,或者是奇數(shù)個反相器串聯(lián)。在晶振輸出引腳 XO 和晶振輸入引腳 XI 之間用一個電阻連接,對于 CMOS 芯片通常是數(shù) M 到數(shù)十M 歐之間。很多芯片的引腳內(nèi)部已經(jīng)包含了這個電阻,引腳外部就不用接了。這個電阻是為了使反相器在振蕩初始時處與線性狀態(tài),反相器就如同一個有很大增益的放大器,以便于起振。石英晶體也連接在晶振引腳的輸入和輸出之間,等效為一個并聯(lián)諧振回路,振蕩頻率應該是石英晶體的并聯(lián)諧振頻率。晶體旁邊的兩個電容接地,實際上就是電容三點式電路的分壓電容,接地點就是分壓點。以接地點即分壓點為參考點,振蕩引腳的輸入和輸出是反相的,但從并聯(lián)諧振回路即石英晶體兩端來看,形成一個正反饋以保證電路持續(xù)振蕩。在芯片設(shè)計時,這兩個電容就已經(jīng)形成了,一般是兩個的容量相等,容量大小依工藝和版圖而不同,但終歸是比較小,不一定適合很寬的頻率范圍。外接時大約是數(shù) PF 到數(shù)十 PF, 依頻率和石英晶體的特性而定。需要注意的是: 這兩個電容串聯(lián)的值是并聯(lián)在諧振回路上的,會影響振蕩頻率。當兩個電容量相等時,反饋系數(shù)是 0.5, 一般是可以滿足振蕩條件的,但如果不易起振或振蕩不穩(wěn)定可以減小輸入端對地電容量,而增加輸出端的值以提高反饋量。
電路如圖所示
1.3 復位電路
單片機在開機時或在工作中因干擾而使程序失控,或工作中程序處于某種死循環(huán)狀態(tài)等情況下都需要復位。復位作用是使CPU以及其他功能部件,如串行口,中斷都恢復到一個確定初始狀態(tài),并從這個狀態(tài)開始工作。
復位電路有兩種:上電、按鈕復位,考慮到各部件影響,采用按鈕復位,當電阻給電容充電,電容的電壓為高電平,當按下按鈕時芯片復位腳近似低電平,于是芯片復位。
單片機實習報告
(二)一、生產(chǎn)實習的目的和意義:
生產(chǎn)實習是培養(yǎng)本科學生理論聯(lián)系實際,提高實際動手操作能力的重要教學環(huán)節(jié)。本專業(yè)的生產(chǎn)實習旨在使學生廣泛了解實際電子產(chǎn)品生產(chǎn)的全過程,熟悉電子產(chǎn)品的主要技術(shù)管理模式,并在實習的操作過程中學習、掌握電子產(chǎn)品的焊接、安裝、調(diào)試的實際操作技能。鞏固和加深理解所學的理論,開闊眼界,提高能力,為培養(yǎng)高素質(zhì)大學本科人才打下必要的基礎(chǔ)。通過學習,是理論與實際相結(jié)合,可以使學生加深對所學知識的理解,并為后續(xù)專業(yè)課的學習提供必要的感性知識,同時使學生直接了解本業(yè)的生產(chǎn)過程和生產(chǎn)內(nèi)容,為將來走上工作崗位提供必要的實際生產(chǎn)知識。
二、實習的基本內(nèi)容:
集中授課,進行相關(guān)知識的學習。
學習、掌握電子產(chǎn)品的獨立性設(shè)計與安裝、調(diào)試的能力;進一步掌握電子測量儀器的正確使用方法,電元器件的測量與篩選技術(shù)。
初步了解電子整機產(chǎn)品的工藝過程。
為能使學生得到充分的鍛煉,較大的提高學生的實際動手能力,本次生產(chǎn)實習安排每一位學生獨立完成全部系統(tǒng)的設(shè)計與安裝工作。
本實習環(huán)節(jié),學生要獨立使用電焊鐵及各種電子測試設(shè)備電路安裝與調(diào)試,要學生嚴格遵守電器設(shè)備的使用安全,遵守實驗室的各項>規(guī)章制度。
三、基本要求:
在教師的指導下練習在測試電路德核心板上焊接元件,掌握焊接要領(lǐng)。
熟悉元器件的性能及管腳分配。
在給定的PCB板上焊接跳線,IC插座,電阻,電容,LED器件等。
檢查焊接是否正確。
插上元器件,運行系統(tǒng),并觀測系統(tǒng)工作是否正常。
四、總體設(shè)計電路思想和原理:
本次生產(chǎn)實習用到的開發(fā)板和模塊共7塊,分別為:單片機核心板,電子鐘模塊,MP3模塊,RFID模塊,無線傳輸模塊,脈搏傳感模塊,GPS模塊。
各模塊相互組合,其所能實現(xiàn)的基本功能如下:
單片機核心板+電子鐘模塊:實現(xiàn)時間的顯示,溫度的測量,且可通過遙控器調(diào)時、定鬧等。
單片機核心板+無線傳輸模塊:實現(xiàn)數(shù)據(jù)的近距離無線傳輸。
單片機核心板+MP3模塊(含SD卡):實現(xiàn)MP3播放功能。
單片機核心板+RFID模塊:實現(xiàn)地鐵檢票系統(tǒng)的模擬。
單片機核心板+脈搏傳感模塊:實現(xiàn)人體脈搏傳感的測量。
單片機核心板+GPS模塊:實現(xiàn)GPS衛(wèi)星定位功能。
(一)核心板電路設(shè)計
單片機核心板電路主要包括STC12C5A60S2單片機,電子鐘模塊接口電路,MP3接口電路,無線傳輸模塊接口電路,脈搏傳感模塊接口電路,GPS模塊接口電路,串口擴展電路,電源供電電路。該系統(tǒng)的單片機是宏晶科技生產(chǎn)的單時鐘機器周期(IT)的單片機,是高速、低功耗、超強干擾的新一代8051單片機。通過使用STC-ISP軟件,該單片機可實現(xiàn)串口在線編程,無需編程器,無需仿真器。
核心板電路的設(shè)計思想主要是圍繞單片機芯片的工作原理和特點,為其實現(xiàn)合理的設(shè)計出外圍電路:包括電源電路,顯示電路部分,復位電路部分,串行口通信電路,按鍵電路等。
(二)電子鐘模塊電路設(shè)計
該模塊主要用到的芯片有:時鐘保持芯片DS1302,單總線數(shù)字溫度傳感器DS18B20,紅外遙控解碼器TL1838A。
該模塊電路設(shè)計的思想是了解這三種芯片的工作電壓,DS1302的工作時鐘頻率以及三種芯片與單片機之間的硬件連接。
(三)MP3模塊電路設(shè)計
該模塊用到的主要芯片有MP3音頻解碼芯片VS1003,3.3V電壓轉(zhuǎn)換芯片LM1117-3.3,2.5V電壓轉(zhuǎn)換芯片LM1117-2.5。
該電路的設(shè)計思想主要是了解芯片的作用和特點,尋找各芯片之間的聯(lián)系,VS1003芯片是該模塊的主要部分。單片機設(shè)有單獨解碼MP3文件的功能,而單片機可與通過VS1003的接口電路的連接,進行MP3的解碼,實現(xiàn)音頻的輸出。通過芯片各引腳的功能和特點,合理的設(shè)計出相應的外圍電路。
(四)RFID模塊電路的設(shè)計
該模塊的電路所用到的主要芯片為13.56MHZ的非接觸式通信讀卡芯片F(xiàn)M1702。該芯片是基于ISO/4443標準的非接觸卡讀卡機專用芯片,采用0.6微米CMOS、EEPROM工藝,支持13.56MHZ頻率下的type A非接觸式通信協(xié)議,支持多種加窗算法,兼容philips的MFRC530(SPI接口)讀卡機芯片。
該模塊的電路設(shè)計思想是基于FM1702各引腳的功能和特點,合理的設(shè)計芯片的外圍電路,其中的電容和電感所構(gòu)成的天線是芯片與S50卡通信的工具。
五、單元電路設(shè)計:
單片機核心板電路分析
單片機核心板是本次實習中最重要的部分,它是實現(xiàn)各種模塊功能的基礎(chǔ)部分。單片機核心板的核心是STC12C5A60S2單片機芯片,圍繞該芯片設(shè)計出相應電源供電電路,蜂鳴器驅(qū)動電路,按鍵電路,串行口通信電路,復位電路,液晶屏驅(qū)動電路以及各模塊的接口電路,由以上的電路部分就構(gòu)成一個核心板電路系統(tǒng)。
電子鐘模塊電路分析
電子鐘模塊配合單片機核心板,可在LCD1602液晶屏上顯示當前的日期(年月日)時間(時分秒),環(huán)境溫度值,和紅外遙控解碼值。用戶可通過遙控器或單片機核心板上的按鍵來進行日期和時間的設(shè)置。
通過遙控上的“EQ”鍵,可控制LED顯示界面在時間、溫度、紅外解碼之間的切換。如果想調(diào)整時間,需要首先使用遙控器的“EQ”鍵將LCD顯示調(diào)制時間界面;之后通過按“播放停止鍵”將時間停止;然后再按“左快捷鍵”向右切換;最后按“加減鍵”可以進行數(shù)值的加減操作,調(diào)整完成后,再次按“播放停止鍵”,時間開始運行。另外通過單片機核心板上的K1-K4鍵也可以完成時間的調(diào)整:其中K1鍵對應遙控器的“右快捷鍵”,即實現(xiàn)向右切換年月日時分;K3鍵對應遙控器的“加鍵”,即實現(xiàn)年月日時分的加1;K4鍵對應遙控器的“減鍵”,即實現(xiàn)年月日時分的減1。
MP3電路模塊分析
是一單芯片MP3/WMA/MIDI音頻解碼和ADPCM編碼芯片,其擁有一個高性能低功耗的DSP處理器核VS-DSP。5K的指令RAM,0.5K的數(shù)據(jù)RAM,串行的控制和數(shù)據(jù)輸入接口,4個通用IO口,1個UART口;同時片內(nèi)帶有一個可變采樣率的DAC,一個立體聲DAC以及音頻耳機放大器;VS1003通過一個串行接口來接收輸入的比特流,它可以作為一個系統(tǒng)的從機。
與單片機連接的引腳主要有7個,分別為:SO、SI、SCLK、XDCS、XRESET、DREQ、MOSI,只有保證它們與單片機正確可靠的連接,才能對VS1003進行有效的操作與控制。另外,VS1003各部分的供電電壓與輸出電壓值是不同的。
芯片各部分供電電壓如下表:
供電部分最小電壓推薦電壓最大電壓
模擬)
數(shù)字)
卡是一種大容量,性價比高,體積小,訪問接口簡單的存儲卡。SDIMMC卡大量 應用于數(shù)碼相機、MP3、手機、大容量存儲設(shè)備。作為這些便攜式設(shè)備的存儲載體,它具有低功耗,非易失性,保存數(shù)據(jù)無需消耗能量的特點。
卡只使用了1-7觸點。對于1號引腳(CD/DAT3)擴展的DAT線(DAT1-DAT3)在上電后處于輸入狀態(tài),它們在執(zhí)行SET-BUS-WIDTH命令后作為DAT線操作,當不用DAT1-DAT3線時,主機應使自己的DAT1-DAT3線處于輸入模式,這樣定義是為與MMC卡保持兼容。上電后,CD/DAT3作為帶50K上拉電阻的輸入線(可用于檢測卡是否存在或選擇SPI模式)。用戶可以在正常的數(shù)據(jù)傳輸中用SET-CLR-CARD-DETECT(ACMDA口)命令斷開上拉電阻的連接。MMC卡的該引腳在SD模式下為保留引腳,在SD模式下無任何作用。對于2號引腳CMD,MMC卡在SD模式下為IO/PP/OO,MMC卡在SPI模式下為I/PP。
關(guān)于電壓匹配問題,SD卡的邏輯電平相當于3.3V TTL電平標準,而單片機的邏輯電平為5V。因此,它們之間不能直接相連,否則會有燒毀SD卡的可能。解決邏輯器件接口的電平兼容問題,原則主要有兩條:一為輸出電平器件輸出高電平的最小電壓值,應大于接受電壓器件識別為高電平的最低電壓值;二為輸出電平器件輸出低電平的最大電壓值,應小于接受器件識別為低電平的最高電壓值。考慮到SD卡在SPI協(xié)議的工作模式下,通訊都是單向的,于是在單片機向SD卡傳輸數(shù)據(jù)時采用晶體管加上拉電阻法的方案。在SD卡向單片機傳輸數(shù)據(jù)時,可以直接連接。因為它們之間的電平剛好滿足上述的電平兼容原則,既經(jīng)濟又實用。該方案可以雙電源供電(一個5V電源,一個3.3V電源供電),3.3V電源可用ASL1117穩(wěn)壓管從5V電源穩(wěn)壓獲取。
RFID模塊電路分析
基于FM1702SL的非接觸式IC卡讀寫器,只要稍加改動就能開發(fā)成不同的射頻識別應用系統(tǒng),如考勤系統(tǒng),門禁系統(tǒng),公交車收費系統(tǒng)等。S50非接觸式卡符合MIFARE的國際標準,容量8K位,數(shù)據(jù)保存期10年,又可改寫10萬次,讀無限次。S50卡不帶電源,自帶天線,內(nèi)含加密控制邏輯電路和通用邏輯電路,卡與讀卡器之間的通訊采用國際通用DES和RES保密交叉算法,具有較高的保密性能。
單片機與FMITDISL通用SPI總線通信,采用中斷工作模式,在FMITDISL復位后,必須進行一次初始化程序以便初始化SPI接口模式,而且可以同步實現(xiàn)單片機和FMITDISL的啟動工作。信息存儲在MIFARSE卡里,讀寫器與卡通過各自的天線建立起二者之間非接觸信息傳輸通道。當卡進入系統(tǒng)的工作區(qū)時,讀寫器向卡發(fā)射一組固定頻率的電磁波,卡內(nèi)有一個LC串聯(lián)諧振電路,其頻率與讀寫器發(fā)射的頻率相同,在電磁波的激勵下,LC諧振電路產(chǎn)生共振,從而使電容內(nèi)有了電荷,在這個電容的另一端接有一個單向?qū)ǖ碾娮铀冢瑢?nèi)容內(nèi)的電荷送到另一個電容內(nèi)存儲,當所有積累的電荷達到2V時,此電容可做到電源為其它電路提供工作電壓,將卡內(nèi)數(shù)據(jù)發(fā)射出去或讀取讀寫器的數(shù)據(jù)。
根據(jù)互感原理可知,讀寫器天線半徑越大,匝數(shù)越多,讀寫器上的天線和卡上的天線的互感系數(shù)就越大。根據(jù)國際標準的要求,卡和讀寫器的通信距離為10cm,通過調(diào)整天線驅(qū)動電壓可以改變通信的最長距離。天線的傳輸帶寬和品質(zhì)因數(shù)成反比關(guān)系。過高的品質(zhì)因數(shù)會導致帶寬減小,從而減弱讀寫器的調(diào)制邊帶,會導致讀寫器無法與卡通信。
無線傳輸模塊分析
是一無線通信芯片,采用FSK調(diào)制,可以實現(xiàn)點對點或是1對6的無線通信。無線通信速度最高可達2Mbps,只需為單片機系統(tǒng)預留5個GPIO,1個中斷輸入引腳,就可很容易地實現(xiàn)天線通信的功能,非常適合用MCU系統(tǒng)構(gòu)建無線通信功能。
具有收發(fā)模式,待機模式和掉電模式,四種工作模式,并由CE、寄存器內(nèi)部PWR、VP和PRIM、RX共同控制。nRF24L01所有的配置都由配置寄存器來定義,這些配置寄存器可通過SPI口訪問。SPI接口由SCK、MOSI、MISO及CSN組成,在配置模式下單片機通過SPI接口配置nRF24L01的工作參數(shù),在發(fā)射或接收模式下單片機SPI接口發(fā)送和接收數(shù)據(jù)。
單片機的控制指令從nRF24L01的MOSI引腳輸入,而nRF24L01的狀態(tài)信息和數(shù)據(jù)是從其MISO引腳輸出并送給單片機的。利用SPI傳輸數(shù)據(jù)時,是先傳輸?shù)臀蛔止?jié),再傳輸高位字節(jié),并且在傳輸每個字節(jié)時是從高位傳起。
六、單片機軟件系統(tǒng)工作流程
通過使用STC-ISP軟件,STC12C5A60S2單片機可實現(xiàn)串口在線編程。由于現(xiàn)在大的數(shù)據(jù)計算機都不存在提供單獨的串口,所以需要USB轉(zhuǎn)RS232串口線。
USB轉(zhuǎn)RS232串口設(shè)備驅(qū)動程序的安裝
STC-ISP V483串口下載軟件
七、實習過程心得:
新學期伊始,就迎來了為期四周的單片機生產(chǎn)實習。在這次生產(chǎn)實習過程中,我受益頗多。這是我們經(jīng)歷的第一次廣泛了解實際電子產(chǎn)品生產(chǎn)的全過程。從最初的設(shè)計,到焊接,安裝,調(diào)試,我們都是逐一親自動手操作完成的。在這次實習中,我們遇到了不少問題,但正是因為有了這些問題,才有了我們更加深入學習的機會。為了解決這些問題,我們查資料,探討,請教老師,充分利用自己身邊的一切資源來學習。這樣的學習過程讓我們對所學內(nèi)容理解的更深刻,而且大大提高了我們的團結(jié)協(xié)作能力。在實際操作焊接的過程中,我們從笨拙到熟練,動手能力不斷提高,有了很大的進步。這為我們以后步入工作崗位做了良好的鋪墊。
總之,通過這次生產(chǎn)實習,我受益匪淺,各方面的能力都有了提高。最后,感謝在實踐過程中悉心指導的每一位老師!
第三篇:單片機實習報告
實
習
報
告
實習名稱 :
嵌入式系統(tǒng) 實習
系部名稱 :
信科院
專業(yè)班級:
:
計本 08 -5
學生姓名:
:
陳鵬任
學
號:
:
3080417907
指導教師:
:
陳小琴 金紅 楊光杰
日 日
期:
2010.12.18
一. 引言
目前,嵌入式技術(shù)已成為通信和消費類產(chǎn)品的共同發(fā)展方向。嵌入式系統(tǒng)幾乎包括了生活中的所有電器設(shè)備,如掌上PDA、移動計算設(shè)備、電視機頂盒、手機上網(wǎng)、數(shù)字電視、多媒體、汽車、微波爐、數(shù)字相機、家庭自動化系統(tǒng)、電梯、空調(diào)、安全系統(tǒng)、自動售貨機、蜂窩式電話、消費電子設(shè)備、工業(yè)自動化儀表與醫(yī)療儀器等。
嵌入式系統(tǒng)是先進的計算機技術(shù)、半導體技術(shù)、電子技術(shù)和各個行業(yè)的具體應用相結(jié)合的產(chǎn)物,這就決定了它必然是一個技術(shù)密集、資金密集、高度分散、不斷創(chuàng)新的知識集成系統(tǒng)。嵌入式系統(tǒng)一般指非PC系統(tǒng)。它是以應用為中心、軟硬件可裁減的、能適應應用系統(tǒng)對功能、可靠性、成本、體積、功耗等綜合性要求的專用計算機系統(tǒng)。簡單地說,嵌入式系統(tǒng)是集系統(tǒng)的應用軟件與硬件于一體,類似于PC中BIOS的工作方式,具有軟件代碼小、高度自動化、響應速度快等特點,因此特別適合于要求實時和多任務的系統(tǒng)。嵌入式系統(tǒng)主要由嵌入式處理器、相關(guān)支撐硬件、嵌入式操作系統(tǒng)及應用軟件系統(tǒng)等組成。
通過這次實訓,老師讓我們了解最基本的嵌入式系統(tǒng)設(shè)計,開發(fā)的流程,結(jié)合掌握所學的知識,做出一個單片機與上位機通信的簡單嵌入式系統(tǒng)。
二.課題設(shè)計 1 .基本原理
MCS-51 單片機串行口發(fā)送/接收數(shù)據(jù)時,通過 2 個串行緩沖器 SBUF 進行,這 2 個緩沖器采用一個地址(98H),但在物理上是獨立的。其中接收緩沖器只能讀出不能寫入,發(fā)送緩沖器只能寫入不能讀出。
① 發(fā)送過程,由指令 MOV SBUF,A 啟動,此時待傳送的數(shù)據(jù)由 A 累加器傳入串行發(fā)送緩沖器 SBUF,由硬件自動在發(fā)送字符的始、末加上起始位(低電平)、停止位(高電子)及其它控制位(如奇偶位等),而后在移位脈沖的控制下,低位在前,高位在后,逐位從 TXD 端(方式 0 除外)發(fā)出。
② 接收過程,串行口的接收與否受制于允許接收位 REN 的狀態(tài),當 REN 被軟件置“1”后,允許接收器接收。串口的接收器以所選波特率的 16 倍速對 RXD線進行監(jiān)視。當“1”到“0”跳變時,檢測器連續(xù)采樣到 RXD 線上低電平時。便認定 RXD 端出現(xiàn)起始位,繼而接收控制器開始工作。在每位傳送時間的第 7、8、9 三個脈沖狀態(tài)采樣 RXD 線,決定所接收的值為“0”或“1”。當接收完停止位后,控制電路使中斷標志 R1 置為“1”,此時程序可通過 MOV
A,SBUF指令將接收到的字符從 SBUF 送入累加器 A,從而完成一幀數(shù)據(jù)的接收工作。
2.原理框架
3.硬件電路原理 圖,對各模塊進行分別介紹
單
片
機 LCD 顯示電路 復位電路 時鐘電路 電源電路 串行口通信電路
3.1 液晶顯示模塊
1602LCD 采用標準的 14 腳(無背光)或 16 腳(帶背光)接口,各引腳接口如下所示
接口信號說明 編號 符號 引腳說明 編號 符號 引腳說明 1 VSS 電源地 9 D2 Data I/O 2 VDD 電源正極 10 D3 Data I/O 3 VL 液晶顯示偏壓信號 11 D4 Data I/O 4 RS 數(shù)據(jù)/命令選擇端(H/L)D5 Data I/O 5 R/W 讀/寫選擇端(H/L)D6 Data I/O 6 E 使能信號 14 D7 Data I/O 7 D0 Data I/O 15 BLA 背光源正極 8 D1 Data I/O 16 BLK 背光源負極 用 LCD1602 液晶顯示模塊顯示字符或字符串之前必須對其進行初始化,LCD1602 液晶顯示模塊的初始化流程如下:
? 5.0 初始化過程(復位過程)
? 5.1 延時 15ms ? 5.2 寫指令 38H(不檢測忙信號)
? 5.3 延時 5ms ? 5.4 寫指令 38H(不檢測忙信號)
? 5.5 延時 5ms ? 5.6 寫指令 38H(不檢測忙信號)
? 5.7(以后每次寫指令、讀/寫數(shù)據(jù)之前均需檢測忙信號)
? 5.8 寫指令 38H:顯示模式設(shè)置 ? 5.9 寫指令 38H:顯示關(guān)閉 ? 5.10 寫指令 01H:顯示清屏 ? 5.11 寫指令 06H:顯示光標移動設(shè)置 ? 5.12 寫指令 0CH:顯示開關(guān)及光標位置
表 8 LCD1602 液晶模塊內(nèi)部的控制器控制指令 指令 指令碼
說明
RS
R/W D0
D1
D2
D3
D4
D5
D6
D7
清屏
0 0 0 0 0 0 0 0 0 1 清顯示,光標回位
光標返回
0 0 0 0 0 0 0 0 1 * ADD=0 時,回原位
輸入方式
0 0 0 0 0 0 0 1 I/D S 決定是否移動以及移動方向
顯示開關(guān)
0 0 0 0 0 0 1 D C B D-顯示,C-光標,B-光標閃爍
移位
0 0 0 0 0 1 S/C R/L * * 移動光標及整體顯示
功能設(shè)置
0 0 0 0 1 DL N F * * DL-數(shù)據(jù)位數(shù),L-行數(shù),F-字體
CGRAM 地址設(shè)置
0 0 0 1 A5 A4 A3 A2 A1 A0 設(shè)置 CGRAM 的地址 DDRAM 地址設(shè)置
0 0 1 A6 A5 A4 A3 A2 A1 A0 設(shè)置 DDRAM 的地址 忙標志/讀地址計數(shù)器
0 1 BF AC6 AC5 AC4 AC3 AC2 AC1 AC0 讀出忙標志位(BF)及 AC 值 CGRAM/DDRAM 數(shù)據(jù)寫0 寫數(shù)據(jù) 將內(nèi)容寫入 RAM 中 CGRAM/DDRAM 數(shù)據(jù)讀1 讀數(shù)據(jù) 將內(nèi)容從 RAM 中讀出
LCD1602 液晶顯示模塊可以和單片機 AT89C51 直接接口,電路如下圖所示。
RP110KGND1VDD2VO3RS4RW5E6DB07DB18DB29DB310DB411DB512DB613DB714BL115BL216U2LCD1620X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10GND20VCC40EA/VP31nPSENRXDTXDALEU1AT89S51P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7+5VP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7RWRSE+5VnWRVCCnWRnRD
AT89S52 和 LCD1602 液晶模塊連接電路 液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認模塊的忙標志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,表 9 是 LCD1602 的內(nèi)部顯示地址。即第 1 行的顯示地址應為 80H+顯示位置,第 2 行的顯示地址應為 40H+顯示位置。
表 9
LCD1602 的內(nèi)部顯示地址
3.2 串口通信模塊 RS-232C 標準(協(xié)議)的全稱是 EIA-RS-232C 標準,其中 EIA(Electronic Industry Association)代表美國電子工業(yè)協(xié)會,RS(recommended standard)代表推薦標準,232 是標識號,C 代表 RS232 的最新一次修改,在這之前,有 RS232B、RS232A,它規(guī)定連接電纜和機械、電氣特性、信號功能及傳送過程。RS-232C 適合于數(shù)據(jù)傳輸速率在 0~20000b/s 范圍內(nèi)的通信。
PC 機常用 DB-9 連接器作為提供多功能 I/O 卡或主板上 COM1 和 COM2 兩個串行接口的連接器,它只提供異步通信的 9 個信號,9 針串口功能見表 10,并且對電纜長度也有要求:
RS-232C 標準規(guī)定,若不使用 MODEM,在碼元畸變小于 4%的情況下,DTE 和 DCE 之間最大傳輸距離為 15m(50 英尺)。可見這個最大的距離是在碼元畸變小于 4%的前提下給出的,為了保證碼元畸變小于 4%的要求,接口標準在電氣特性中規(guī)定,驅(qū)動器的負載電容應小于 2500pF。
表 10針串口功能一覽表 針腳 功能 針腳 功能 1 載波檢測 6 數(shù)據(jù)準備完成 2 接收數(shù)據(jù) 7 發(fā)送請求 3 發(fā)送數(shù)據(jù) 8 發(fā)送清除 4 數(shù)據(jù)終端準備完成 9 振鈴指示 5 信號地線
本方案對 RS-232-C 接口采用 3 線制(RXD、TXD、GND)軟握手的零 MODEM 方式進行單片機和 PC 之間的數(shù)據(jù)通信,即 PC 機和單片機的發(fā)送數(shù)據(jù)線(TXD)與接收數(shù)據(jù)(RXD)交叉連接,二者的地線(GND)直接相連,其它信號線如握手信號線均不用,而采用軟件握手。但由于 RS-232-C 的邏輯電對地是對稱的,與 TTL、MOS 邏輯電平完全不同,邏輯 0 電平規(guī)定為+5~ +15V 之間,邏輯 1 是電平為-5~-15V 之間,因此利用 MAX232芯片進行電平轉(zhuǎn)換,電路連接如圖 11。
C1-3V+2C2+4C2-5V-6R209D2110VCC16GND15D1014R1113R1012D1111R218D207C1+1IC2MAX232C13C12C11C10VCC162738495J232DB9 圖 RS-232-C 通信連接電路
3.3 電源模塊 +220PFC5C60.1uFS12Vin+5VGNDU37805R81.5KD0LED123POWCON3SPD2
充電電路
4.軟件設(shè)計 ((1)流程圖
((2)代碼附錄 //示 接收電腦送過來的數(shù)據(jù),并且顯示 16 進制數(shù),并將數(shù)據(jù)回傳到電腦 腦 #include
InitLcd();//初始化 LCD
myflag=0x00;//標志痊
SendCommandByte(0x80);//調(diào)用發(fā)送命令
Delay(2);
SendDataByte(“c”);//初始化顯示 CPR:
SendDataByte(“p”);
SendDataByte(“r”);
SendDataByte(“:”);
TMOD=0x20;//定時器的設(shè)置
TH1=0xf3;//計時器
TL1=0xf3;
SCON=0x50;//設(shè)定串行工作方式
TR1=1;
REN=1;//允許中斷
IE=0x90;//中斷允許標志
while(1)
{
if(recokbit==1)//接收數(shù)據(jù)
{
recokbit=0;
disprec();
}
} }
//以下為串口中斷程序 void rs232(void)interrupt 4//中斷串行口
{
if(RI==1)//控制電路使中斷標志 R1 置為“1 此時程序可通過 MOV
A,SBUF 指令將接收到的字符從 SBUF 送入累加器 A,從而完成一幀數(shù)據(jù)的接收工作
{
RI=0;
recdata[recv_p]=SBUF;
SBUF=recdata[recv_p];
recv_p++;if(recv_p>27)recv_p=0;//
recokbit=1;//接受完成}
} void Delay(unsigned int t)
// delay 40us {
for(;t!=0;t--);} //============================================= void SendCommandByte(unsigned char ch){
RS=0;
RW=0;
P0=ch;
E=1;//使能端口為 1,接收命令
Delay(1);
E=0;
Delay(100);
//delay 40us }
//=============================================
//-------------------------------------------------------void SendDataByte(unsigned char ch){
TI=0;//開始發(fā)送數(shù)據(jù)
SBUF=ch;
while(!TI);
RS=1;//輸入數(shù)據(jù)
RW=0;//為 0 時寫,1 時讀
P0=ch;
E=1;
Delay(1);
E=0;//使能信號為 0 時,不能輸入
Delay(100);//delay 40us } //-------------------------------------------------void InitLcd(void){ unsigned char i;for(i=0;i<28;i++)recdata[i]=0x30;//初始化數(shù)組 0 recv_p=0;
SendCommandByte(0x30);
SendCommandByte(0x30);
SendCommandByte(0x30);
SendCommandByte(0x38);//設(shè)置工作方式
SendCommandByte(0x0c);//顯示狀態(tài)設(shè)置
SendCommandByte(0x01);//清屏
SendCommandByte(0x06);//輸入方式設(shè)置 } void disprec(void){
unsigned char i;
for(i=0;i<12;i++)
{
SendCommandByte(0x84+i);
SendDataByte(recdata[i]);
}
for(i=0;i<16;i++)
{
SendCommandByte(0xc0+i);
SendDataByte(recdata[i+12]);
}
}
5.調(diào)試過程((1)測試數(shù)據(jù)
采用 RS232 把 PC 機與單片機連接起來,運行上位機程序如下圖所示:
向單片機發(fā)送信息時,PC 機顯示信息重復了。
((2))
數(shù)據(jù)分析
PC 機發(fā)送的數(shù)據(jù)給單片機能正常顯示,但單片機返回給 PC 機的信息重復了,經(jīng)過反復檢查,原來是 recdata[recv_p]=SBUF;SBUF=recdata[recv_p];這語句重寫了,刪了,就恢復正常通信顯示了。
三. 結(jié)論 經(jīng)過這次嵌入式系統(tǒng)實訓,熟悉了單片機設(shè)計,開發(fā)的流程,在楊琴老師,金紅老師,楊光杰老師的辛勤指導下,在和組員龐卡努力下,從最初的元件領(lǐng)取,電路焊接,利用 PROTEL99 畫電路原理圖,到代碼的編寫,我負責下位機程序,龐卡負責上位機的程序,經(jīng)過我們的共同努力,加上各位老師的指導,終于在老師規(guī)定的時間內(nèi)完成了單片機與上位機的通信。
這次嵌入式系統(tǒng)實訓,學習了嵌入式系統(tǒng)簡單開發(fā)流程,加深所學知識的理解。
第四篇:單片機實習報告
重慶城市管理職業(yè)學院
信息工程學院
單片機實習報告
專業(yè)班級電子A0801
學號0401080112
姓名呂爽
組號第一組
實 驗 室 單片機實訓室
成績評定
老師簽名
2009年 12月 25日
實訓課題:99數(shù)字跑表
實訓目的:通過實驗掌握顯示的接口電路及程序設(shè)計,熟悉各種操作指令,子程序的調(diào)用以及中斷知識和計數(shù)器的計數(shù)
實訓原理:通過把設(shè)計好的程序利用軟件將編譯得到HEX格式文件加載到單片機芯片中,實現(xiàn)仿真電路,得到仿真電路結(jié)果。
實驗儀器:電腦,Keil軟件,Proteus軟件
實訓要求:(1)四位LED數(shù)碼管動態(tài)顯示,顯示最小時間為0.01秒,最多顯示時間99秒;
(2)由按鍵控制,第一次按下鍵,開始計時,第二次按下鍵,停止計時,第三次按下鍵,清零。
在Keil軟件中,新建一個項目,命名為跑表,然后根據(jù)程序流程圖和仿真電路圖編寫程序。調(diào)試程序,檢查程序是否有誤,保存。得程序如下:
編寫程序
ORG0000H
LJMPMAIN
ORG0003H
LJMPL1
ORG0030H
/*開始程序*/
MAIN:SETBIT0
SETBP1.0;至高電頻
SETBEA;開中斷控制位
SETBEX0;開外部中斷0
MOVDPTR,#TAB;將TAB所代表的地址送入DPTR
MOV30H,#0
MOV40H,#0
MOVR1,#0
/*判斷R1,然后進行判斷*/
L4:JBP1.0,L14;P1.0的值為1,則轉(zhuǎn)移至L14
INCR1;R1加1
SETBP1.0
L14:MOVR3,#2
/*使時間達到0.01秒*/
L9:ACALLL3;絕對調(diào)用L3程序
ACALLL2
DECR3;寄存器減1
CJNER3,#0,L9
/*當按一次開關(guān)時進行跑秒*/
CJNER1,#1,L5;寄存器R1中的值不為1,則轉(zhuǎn)移到L5
MOVA,30H
ADDA,#1
DAA
CJNEA,#99H,L6
ACALLL7
CLRA
L6:MOV30H,A
/*當再一次按鍵時,暫停*/
L5:CJNER1,#2,L10
SJMPL4;轉(zhuǎn)移到L4
/*當繼續(xù)按鍵時,清零*/
L10: CJNER1,#3,L11
MOV30H,#0
MOV40H,#0
MOVR1,#0
L11: SJMPL4
/*跑秒顯示后兩位*/
L2:
CLRP2.3
MOVA,30H
ANLA,#0FH
MOVCA,@A+DPTR
MOVP0,A
LCALLL3
SETBP2.3
CLRP2.2
MOVA,30H
SWAPA
ANLA,#0FH
MOVC A,@A+DPTR
MOVP0,A
LCALLL3
SETBP2.2/*跑秒顯示前兩位*/
CLRP2.1
MOVA,40H
ANLA,#0FH
MOVCA,@A+DPTR
MOVP0,A
LCALL L3
SETB P2.1
CLRP2.0
MOVA,20H
SWAP A
ANLA,#0FH
MOVCA,@A+DPTR
MOVP0,A
LCALLL3
SETBP2.0
RET
/*顯示用的時間*/
l3: MOVR7,#250
J0: NOP;延遲一個機器周期的時間
NOP
DJNZR6,J0;寄存器減1不為0,轉(zhuǎn)移到J0
RET
/*終端打開*/
L1: CLR EA
CLR P1.0
SETBEA
RETI
/*秒位顯示*/
L7: MOVA,40H
ADDA,#1
DAA
CJNEA,#99H,L8
CLR A
L8: MOV40H,A
RET
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
四:檢查程序是否有誤,然后修改,并將無誤的程序保存編譯為HEX格式文件,然后加載到單片機芯片中,查看電路,觀看仿真電路結(jié)果.得到課題要求的結(jié)果。
五、實訓小結(jié)
1)通過實訓,我們自己動手分析設(shè)計程序加深了對知識的理解和對指令的運用。
2)通過對程序的編譯和電路的仿真,使我們能夠更直觀得看到程序運行的結(jié)果。
3)通過實訓與所學知識的結(jié)合,提高我們動手的能力和對技能的熟悉。強化了我們得專業(yè)技能,能更好的運用所學知識。
第五篇:單片機實習報告
1602液晶顯示設(shè)計
一、實驗簡介:
通過學習本門課程,能夠掌握利用51單片機完成簡單項目的應用系統(tǒng)設(shè)計和調(diào)試,掌握單片機應用程序的編寫和調(diào)試過程。本次實習,我的題目是用51單片機控制1602液晶顯示指定字符的設(shè)計,需要分別設(shè)計系統(tǒng)的硬件電路及調(diào)試軟件程序,并能夠正確演示調(diào)試結(jié)果。
二、實驗要求:
1、查找資料學習單片機的LCD點陣顯示原理;
2、理解KST-51的LCD點陣顯示電路圖;
3、編制程序在點陣LCD上實現(xiàn)字母:我愛單片機繪制原理圖;
4、完成實驗報告的撰寫。
三、硬件電路:
(一)89C52系列單片機
89C52是INTEL公司MCS-51系列單片機中基本的產(chǎn)品,它內(nèi)置8位中央處理單元、512字節(jié)內(nèi)部數(shù)據(jù)存儲器RAM、8k片內(nèi)程序存儲器(ROM)32個雙向輸入/輸出(I/O)口、3個16位定時/計數(shù)器和5個兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)時鐘振蕩電路。此外,89C52還可工作于低功耗模式,可通過兩種軟件選擇空閑和掉電模式。在空閑模式下凍結(jié)CPU而RAM定時器、串行口和中斷系統(tǒng)維持其功能。掉電模式下,保存RAM數(shù)據(jù),時鐘振蕩停止,同時停止芯片內(nèi)其它功能。89C52有PDIP(40pin)和PLCC(44pin)兩種封裝形式。
1、單片機最小系統(tǒng)
KST-51單片機開發(fā)板
最小系統(tǒng)是指單片機正常工作的最基本的外圍配置,主要包括時鐘電路、復位電路等。
51單片機最小系統(tǒng)是利用XTAL1和XTAL2兩個引腳外接晶體振蕩器的內(nèi)部時鐘方式,C1和C2的作用是穩(wěn)定頻率和快速起振,典型值為30pf,晶體振蕩器的振蕩頻率典型值為6 MHZ、12 MHZ或者11.0592 MHZ,系統(tǒng)與PC通信時常采用11.0592MHZ。
復位電路設(shè)計形式包括:上電復位、按鍵復位、和利用專業(yè)的復位芯片進行管理,本次設(shè)計采用按鍵復位方式。
51單片機最小系統(tǒng)
2、單片機引腳功能
51系列單片機有40個引腳,包括2個 電源引腳,2個外界晶振引腳,4個控制或 其他電源復用引腳,32個I/O引腳。1)主電源引腳(2根)VCC(Pin40):電源輸入,接+5V電源 GND(Pin20):接地線 2)外接晶振引腳(2根)
XTAL1(Pin19)、XTAL2(Pin18)主要用來構(gòu)成單片機的時鐘電路。時鐘電路用來產(chǎn)生單片機工作所需的時鐘信號。時鐘信號分為內(nèi)部時鐘方式和外部時鐘方式。3)控制引腳(4根)
RST/VPP(Pin9):復位引腳,引腳上出現(xiàn)2個機器周期的高電平將使單片機復位。
ALE/PROG(Pin30):地址鎖存允許信號 PSEN(Pin29):外部存儲器讀選通信號
EA/VPP(Pin31):程序存儲器的內(nèi)外部選通,接低電平從外部程序存儲器讀指令,如果接高電平則從內(nèi)部程序存儲器讀指令。4)輸入/輸出引腳(32根)
P0口是一個雙功能的8位并行口,可以用做地址/數(shù)據(jù)總線,另外P0口還可以作為通用I/O口使用,此時為準雙向口,且內(nèi)部無上拉電阻。
P1口是單功能的I/O口,只能作為通用的I/O口使用,為準雙向口,但內(nèi)部有上拉電阻。
P2口是一個雙功能口,為準雙向口,但內(nèi)部有上拉電阻,P2口功能主要有一下兩個方面:一是作為高8位地址輸出線使用時,P2口可以輸出外部存儲器的高8位地址,與P0口輸出的低8位地址一起構(gòu)成16位地址,可以尋址64位的地址空間;二是作為通用I/O口使用時,與P1口使用方法一樣。
P3口作為通用I/O口時使用方法與P1一樣。另外,P3口主要作為第二功能使用。
(二)1602字符液晶
P3口第二功能表
字符型液晶顯示模塊是一種專門用于顯示字母、數(shù)字、符號等點陣式LCD,1602是指顯示的內(nèi)容為16*2,即可以顯示兩行,每行16個字符。字符液晶絕大多數(shù)是基于HD44780液晶芯片的。
1602實物圖 1、1602LCD的特性
? +5V電壓,對比度可調(diào) ? 內(nèi)含復位電路
? 提供各種控制命令,如:清屏、字符閃爍、光標閃爍、顯示移位等多種功能
? 有80字節(jié)顯示數(shù)據(jù)存儲器DDRAM ? 內(nèi)建有160個5X7點陣的字型的字符發(fā)生器CGROM ? 8個可由用戶自定義的5X7的字符發(fā)生器CGRAM
2、字符型LCD1602接口 引腳2、1為1602的電源和地,引腳15、16 為背光電源,引腳4、5、6為控制端口,引腳7-14為 數(shù)據(jù)端口,以下為各個端口的詳細介紹。3、1602存儲器
HD44780內(nèi)置了DDRAM(顯示數(shù)據(jù)存儲RAM)、CGROM(字符存儲ROM)和CGRAM(用戶自定義RAM)。
DDRAM就是顯示數(shù)據(jù)RAM,用來寄存待顯示的字符代碼。共80個字節(jié),其地址和屏幕的對應關(guān)系如下表:
在DDRAM的00H地址處顯示數(shù)據(jù),則必須將00H加上80H,即0X80+0x00,若要在DDRAM的01H處顯示數(shù)據(jù),則必須將01H加上80H即 0X80+0x01。以此類推。
字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個不同的點陣字符圖形,如下表所示,這些字符有:阿拉伯數(shù)字、英文字母的大小寫、常 用的符號、和日文假名等,每一個字符都有一個固定的代碼。4、1602指令表
對DDRAM的內(nèi)容和地址操作,HD44780的指令集及其設(shè)置說明,共有11條指令: 1)清屏指令
功能:<1> 清除液晶顯示器,即將DDRAM的內(nèi)容全部填入“空白”的字符碼20H;<2> 光標歸位,即將光標撤回液晶顯示屏的左上方;<3> 將地址計數(shù)器(AC)的值設(shè)為0。
2)光標歸位指令
功能:<1> 把光標撤回到顯示器的左上方;<2> 把地址計數(shù)器(AC)的值設(shè)置為0;<3> 保持DDRAM的內(nèi)容不變 3)輸入模式設(shè)置指令
功能:設(shè)定每次寫入1位數(shù)據(jù)后光標的移位方向,并且設(shè)定每次寫入的一個字符是否移動。參數(shù)設(shè)定的情況如下所示: 位名 設(shè)置
I/D 0=寫入新數(shù)據(jù)后光標左移 1=寫入新數(shù)據(jù)后光標右移
S 0=寫入新數(shù)據(jù)后顯示屏不移動 1=寫入新數(shù)據(jù)后顯示屏整體右移1個字 4)顯示開關(guān)控制指令
功能:控制顯示器開/關(guān)、光標顯示/關(guān)閉以及光標是否閃爍。參數(shù)設(shè)定的情況如下:
位名 設(shè)置 D 0=顯示功能關(guān) 1=顯示功能開 C 0=無光標 1=有光標 B 0=光標不閃爍 1=光標閃爍 5)設(shè)定顯示屏或光標移動方向指令
功能:使光標移位或使整個顯示屏幕移位。參數(shù)設(shè)定的情況如下: S/C R/L 設(shè)定情況
0 0 光標左移1格,且AC值減1 0 1 光標右移1格,且AC值加1 1 0 顯示器上字符全部左移一格,但光標不動 1 1 顯示器上字符全部右移一格,但光標不動 6)功能設(shè)定指令
功能:設(shè)定數(shù)據(jù)總線位數(shù)、顯示的行數(shù)及字型。參數(shù)設(shè)定的情況如下: 位名 設(shè)置
DL 0=數(shù)據(jù)總線為4位 1=數(shù)據(jù)總線為8位 N 0=顯示1行 1=顯示2行 F 0=5×7點陣/每字符 1=5×10點陣/每字符 7)設(shè)定CGRAM地址指令
功能:設(shè)定下一個要存入數(shù)據(jù)的CGRAM的地址。8)設(shè)定DDRAM地址指令
功能:設(shè)定下一個要存入數(shù)據(jù)的CGRAM的地址。9)讀取忙信號或AC地址指令
功能:<1> 讀取忙碌信號BF的內(nèi)容,BF=1表示液晶顯示器忙,暫時無法接收單片機送來的數(shù)據(jù)或指令;當BF=0時,液晶顯示器可以接收單片機送來的數(shù)據(jù)或指令;<2> 讀取地址計數(shù)器(AC)的內(nèi)容。10)數(shù)據(jù)寫入DDRAM或CGRAM指令
功能:<1> 將字符碼寫入DDRAM,以使液晶顯示屏顯示出相對應的字符;<2> 將用戶自己設(shè)計的圖形存入CGRAM。11)從CGRAM或DDRAM讀出數(shù)據(jù)的指令
功能:讀取DDRAM或CGRAM中的內(nèi)容。
5、時序圖
(1)讀狀態(tài) 輸入:RS=0,RW=1,E=1 讀數(shù)據(jù) 輸入:RS=1,RW=1,E=1(2)寫指令 輸入:RS=0,RW=0,E=下降沿脈沖,DB0~DB7=指令碼 寫數(shù)據(jù) 輸入:RS=1,RW=0,E=下降沿脈沖,DB0~DB7=數(shù)據(jù)
四、實習結(jié)果與討論:
通過程序的編輯在1602型LCD上實現(xiàn)了顯示英文字符,通過本次實驗的學習進一步熟悉了1602型LCD,對其操作有了更多的心得體會,在本次實驗中獲益匪淺。
五、實驗程序: #include
sbit LCD_RS = P2^0;sbit LCD_RW = P2^1;sbit LCD_EN = P2^2;
uchar code dis1[] = {“woai danpianji”};uchar code dis2[] = {“huizhi yuanlitu”};uchar code dis3[] = {“chen jian”};uchar code dis4[] = {“ dianzihua 1101 ”};
void delay(int ms){ int i;while(ms--){ for(i = 0;i< 250;i++){ _nop_();_nop_();_nop_();_nop_();} } }
bit lcd_busy(){ bit result;LCD_RS = 0;LCD_RW = 1;LCD_EN = 1;_nop_();_nop_();_nop_();_nop_();result =(bit)(P0&0x80);LCD_EN = 0;return result;} void lcd_wcmd(uchar cmd){ while(lcd_busy());LCD_RS = 0;LCD_RW = 0;LCD_EN = 0;_nop_();_nop_();P0 = cmd;_nop_();_nop_();_nop_();_nop_();LCD_EN = 1;_nop_();_nop_();_nop_();_nop_();LCD_EN = 0;}
void lcd_wdat(uchar dat){ while(lcd_busy());LCD_RS = 1;LCD_RW = 0;LCD_EN = 0;P0 = dat;_nop_();_nop_();_nop_();_nop_();LCD_EN = 1;_nop_();_nop_();_nop_();_nop_();LCD_EN = 0;}
void lcd_pos(uchar pos){ lcd_wcmd(pos|0x80);//數(shù)據(jù)指針=80+地址變量 }
void lcd_init(){ lcd_wcmd(0x38);//16*2顯示,5*7點陣,8位數(shù)據(jù) delay(5);lcd_wcmd(0x38);delay(5);lcd_wcmd(0x38);delay(5);lcd_wcmd(0x0c);//顯示開,關(guān)光標 delay(5);lcd_wcmd(0x06);//移動光標 delay(5);lcd_wcmd(0x01);//清除LCD的顯示內(nèi)容 delay(5);}
void flash(){ delay(600);//控制停留時間 lcd_wcmd(0x08);//關(guān)閉顯示 delay(200);//延時 lcd_wcmd(0x0c);//開顯示 delay(200);//延時 lcd_wcmd(0x08);//關(guān)閉顯示 delay(200);//延時 lcd_wcmd(0x0c);//開顯示 delay(200);} main(){ uchar i;delay(10);lcd_init();// 初始化LCD
while(1){ lcd_wcmd(0x06);//向右移動光標
lcd_pos(0);//設(shè)置顯示位置為第一行的第1個字符 i = 0;while(dis1[i]!= ' 主站蜘蛛池模板: 天天看片视频免费观看| 丰满少妇被粗大的猛烈进出视频| 成人免费视频无码专区| 国产在线乱子伦一区二区| 亚洲欧洲日产国码aⅴ| 精品国产乱码久久久久app下载| 国偷自产一区二区三区在线视频| 中文无码精品a∨在线| 国产在线精品一区二区| 在厨房被c到高潮a毛片奶水| 人妻丰满熟妇av无码区app| 加勒比无码一区二区三区| 亚洲欧美日韩国产综合v| 国内熟妇人妻色无码视频在线| 无码中文字幕免费一区二区三区| 亚洲一区二区三区写真| 亚洲av成人片色在线观看| 久久国产精品-国产精品| 国产片精品av在线观看夜色| 国产成人a∨激情视频厨房| 4hu44四虎www在线影院麻豆| 日韩少妇内射免费播放18禁裸乳| 狠狠色狠狠色综合| 亚洲精品欧美精品日韩精品| 在线看片免费人成视频福利| 欧美色欧美亚洲国产熟妇| 中文字幕亚洲色妞精品天堂| 不卡无在线一区二区三区观| 亚洲精品无码久久毛片| 老熟女多次高潮露脸视频| 极品无码国模国产在线观看| 亚洲精品成人片在线观看| 无码囯产精品一区二区免费| 无码国内精品人妻少妇蜜桃视频| 久久av无码精品人妻出轨| 亚洲另类欧美在线电影| 亚洲精品久久久久久久久久久捆绑| 欧美成人精品高清视频在线观看| 成本人片无码中文字幕免费| 国产成人午夜福利免费无码r| 日韩精品无码一区二区|