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