版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1 單片機(jī)原理與應(yīng)用 戴勝華等 清華大學(xué)出版社 2005年4月 2 單片機(jī)基礎(chǔ)(修訂本) 李廣弟等編 北京航空航天大學(xué)出版社 2003年3 單片機(jī)原理實(shí)驗(yàn)講義 左 明編 中山大學(xué)出版社 2009年3月4 單片機(jī)應(yīng)用設(shè)計(jì)200例(下冊(cè)) 張洪潤(rùn)等編 北京航空航天大學(xué)出版社 2006年7月 P2.5 解: 片內(nèi)數(shù)據(jù)存儲(chǔ)器分為片內(nèi)RAM區(qū)和專(zhuān)用功能寄存器區(qū)(SFR); (一) 片內(nèi)RAM分為工作寄存器區(qū)、位尋址區(qū)和數(shù)據(jù)緩沖區(qū): 1、工作寄存器區(qū)地址范圍00H1FH,32個(gè)單元分為4組,每組8 個(gè)單元。同一時(shí)間只有一組單元選作為工作寄存器,命名為R0-7R, 可用于臨時(shí)存放數(shù)據(jù),(可在一些特定指令中使
2、用),其中R0、R1還 可作為間接尋址寄存器使用。不作為工作寄存器使用時(shí),可作為普通 數(shù)據(jù)RAM使用。 2、位尋址區(qū)地址范圍20H2FH,共16個(gè)單元128位(7FH),位 地址區(qū)中的每一位都有一個(gè)位地址,可直接進(jìn)行位尋址,實(shí)現(xiàn)位操作。 位尋址區(qū)的單元也可做為數(shù)據(jù)RAM。 3、數(shù)據(jù)緩沖區(qū)地址范圍30H7FH(52系列為30H0FFH),用作 用戶(hù)數(shù)據(jù)RAM區(qū)。也可作為堆棧使用,一般放在區(qū)域頂部。 (二)專(zhuān)用功能寄存器區(qū)地址范圍80H0FFH,P2.10 解: P0-P3口具有鎖存器、輸出驅(qū)動(dòng)器、兩個(gè)三態(tài)緩沖器等相同的基本結(jié)構(gòu),P1-P3都具有上拉電阻。但也有不同的結(jié)構(gòu)部分,其不同的部分有: 1
3、、P0口沒(méi)有輸出上拉電阻,但P0口有雙MOS輸出結(jié)構(gòu),能提供三態(tài)輸出。此外P0口還有地址/數(shù)據(jù)口和普通I/O口轉(zhuǎn)換控制器,提供控制地址/數(shù)據(jù)口和普通I/O口之間的轉(zhuǎn)換,該控制器由反向器、雙輸入與門(mén)和選擇電路組成。I/O口輸出控制信號(hào)由鎖存器的反向端提供。 2、P1口的I/O口輸出控制信號(hào)由鎖存器的反向端提供。 3、P2口具有地址口和普通I/O口轉(zhuǎn)換控制器,提供控制地址口和普通I/O口之間的轉(zhuǎn)換,轉(zhuǎn)換后的信號(hào)通過(guò)反向器輸出給輸出驅(qū)動(dòng)器,該控制器由選擇電路組成。I/O口輸出控制信號(hào)由鎖存器的正向端輸出。 4、P3口的I/O口輸出控制信號(hào)由鎖存器的正向端經(jīng)由雙輸入與非門(mén)輸出,雙輸入與非門(mén)的另一輸入口
4、接P3口的第二功能輸出。P3口的輸入多了一級(jí)緩沖器,其第二功能輸入只經(jīng)過(guò)緩沖器輸入。P4.7 解 MOV A,R2 CLR C SUBB A,#0AH ; 判別是否大于9 MOV A,R2 JC D1_9 ; ADD A,#07H D1_9: ADD A,#30H MOV R2,A RETP4.11 解 CHBCD: PUSH PSW ; 保護(hù)現(xiàn)場(chǎng),PSW中的每一位。 PUSH B MOV PSW,#18H ; 第3組工作寄存器 MOV B,#100 DIV AB ; (A)BCD碼的百位 MOV R3,A ; (R3)BCD碼的百位 MOV A,#10 ; 余數(shù)繼續(xù)分離十位和個(gè)位 XCH A
5、,B DIV AB ; (A)BCD碼的十位 SWAP A ORL A,B ; 將十位和個(gè)位拼裝成BCD碼 POP B ; 恢復(fù)現(xiàn)場(chǎng) POP PSW RETP4.12 解法一(無(wú)符號(hào)數(shù)) MOV R0, #50H MOV R1, #07H MOV R2, #0H MOV A, R0LOOP: INC R0 ADD A, R0 ; 加數(shù) XCH A, R2 ; 和數(shù)A和進(jìn)位數(shù)R2交換 ADDC A, #0H ; 加進(jìn)位位 XCH A, R2 ; 進(jìn)位數(shù)R2與和數(shù)A交換 DJNZ R1, LOOP ; 做七次加法 MOV B, #08H ; 8個(gè)數(shù)相加和數(shù)的低8位求平均值 DIV AB ; 和數(shù)除
6、以8得低8位平均數(shù) MOV R0, A ; 保留低8位平均值商在R0 MOV R1, B ; 保留余數(shù)在R1 MOV A, R2 ; 8個(gè)數(shù)累加的進(jìn)位數(shù)送A MOV B, #32 ; 8個(gè)數(shù)相加和數(shù)的高8位求平均值 MUL AB ; 進(jìn)位數(shù)乘以32(高8位除8) ADD A, R0 ; 高8位和低8位平均值相加 MOV R0,A ; 平均值保留在R0中 RETP4.12 解法二(有符號(hào)數(shù)) MOV R0, #50H ;數(shù)據(jù)首地址 MOV R1, #08H ;循環(huán)次數(shù)LOOP: MOV A, R0 INC R0 JNB ACC.7,LOOP1 ;判斷符號(hào)位,為零(正數(shù))轉(zhuǎn)移; CPL A ;負(fù)數(shù)
7、求補(bǔ)碼, INC A ORL A,#80H ;符號(hào)位置“1”, MOV R0,A ;求得補(bǔ)碼后放回原地址LOOP1: DJNZ R1,LOOP; MOV R0, #50H ;數(shù)據(jù)首地址 MOV R1, #07H ;循環(huán)次數(shù) MOV R2, #0H ;高位清零 MOV A, R0LOOP2: INC R0 ADD A, R0 ;加數(shù),帶符號(hào)位的加法不考慮溢出 DJNZ R1, LOOP2 ;做七次加法 JNB ACC.7,N_NEG ; 和為正數(shù)跳轉(zhuǎn), CLR ACC.7 ;和為負(fù)數(shù),則清除符號(hào)位 SETB 00H ;負(fù)數(shù)標(biāo)志位置“1”N_NEG: MOV B, #08H DIV AB ; 和數(shù)
8、除以8得平均數(shù) JNB 00H,A_END ;如果是負(fù)數(shù),下面程序求原碼 ; ORL A,#80H DEC A CPL A ; ORL A,#80HA_END: MOV R0,A ; 保留平均值在R0 RETP4.18 解法一:LOOP1: MOV A, R0 MOV R1, A MOV A, R7 MOV R6, ALOOP2: MOV A, R0 ; CLR C SUBB A, R1 JC NOXCH ; 若R0比R1大則兩數(shù)交換,否則不交換 MOV A, R0 XCH A, R1 ; 將較大的數(shù)(R0)交換到R1 MOV R0, A ; 將小的數(shù)存放在R0NOXCH: INC R1 ;
9、同一個(gè)循環(huán)比較的數(shù)據(jù)地址加一 DJNZ R6, LOOP2 ; 循環(huán)比較,將最小的數(shù)放在R0。 INC R0 ; 數(shù)據(jù)地址加一 DJNZ R7, LOOP1 ; 循環(huán)比較的個(gè)數(shù)減一,將數(shù)由小到大存放 RET解法二: MOV 50H,R0 MOV 51H,R7MAIN: CLR 00H MOV R7,51H DEC R7 MOV R0,50H MOV A,R0COMP: MOV R2,A INC R0 CLR C SUBB A,R0 ;前一個(gè)數(shù)減后一個(gè)數(shù)(50H)-(51H) MOV A,R2 JC NCHAN ;若(50H)(51H), 跳到NCHAN XCH A,R0 ;否則,(50H)和(
10、51H)交換 DEC R0 XCH A,R0 INC R0 SETB 00H ;后一個(gè)數(shù)(51H)小于前一個(gè)數(shù)(50H),置00H位為1NCHAN: MOV A,R0 DJNZ R7,COMP JB 00H,MAIN RETP5.2 解: 1)、調(diào)用時(shí)間的不同 2)、入口地址不同 3)、返回指令不同P5.7 解: 1)、當(dāng)響應(yīng)中斷時(shí),硬件自動(dòng)把斷點(diǎn)處的PC值(即下一條應(yīng)執(zhí)行的指令地址)壓入堆棧保存起來(lái),之后將該中斷的入口地址送入程序指針PC。 2)、由于進(jìn)入中斷程序是隨機(jī)的,為了避免中斷程序破壞斷點(diǎn)處的數(shù)據(jù),要注意把相關(guān)的寄存器內(nèi)容和狀態(tài)標(biāo)志位壓入堆棧保護(hù)起來(lái)。64 工作周期: 12/6X10
11、6 = 2(us),考慮脈沖寬度為200us, 則定時(shí)初值: X = 256-200/2=156=9CH ORG 0000H LJMP MAIN ORG 000BH LJMP INT_T0 ORG 0050H MAIN: MOV TMOD,#02H MOV TH0,#9CH MOV TL0,#9CH MOV IE,#82H SETB TR0 SJMP $INT_T0: CPL P1.0 RETI END65 考慮到計(jì)數(shù)值10000大于256因此采用方式1。 1 計(jì)數(shù)初值:65536-10000=55536,所以,TH1=0D8H,TL1=0F0H 2 定時(shí)初值: (1)用定時(shí)工作方式1,工作周
12、期 12/6X10-6 = 2us,10ms的計(jì)數(shù)次數(shù), 10ms/2us=5000(次),65536-5000=60536,所以,TH1=0ECH,TL1=78H (2)用定時(shí)工作方式0,8192-5000=3192,所以,TH1=63H,TL1=18H ORG 0000H SETB TR1 COUNT: MOV TMOD,#50H MOV TH1,#0D8H MOV TL1,#0F0H LOOP: JBC TF1,TIME SJMP LOOP TIME: MOV TMOD,#10H ;#00H MOV TH1,#0ECH ;#63H MOV TL1,#78H ;#18H LOOP1: JB
13、C TF1,COUNT SJMP LOOP1 END P6.6 解:1)、采用6MHz晶振,則工作周期為 12/6MHz = 2us,定時(shí)器方式1時(shí)的最大計(jì)數(shù)次數(shù)為256x256=65536,計(jì)數(shù)一次需時(shí)間2us,所以最大計(jì)時(shí)時(shí)間為:Tmax = 65536 x 2us = 131072us。 2)、通過(guò)在中斷處理程序中設(shè)定一個(gè)加一寄存器記錄中斷次數(shù)來(lái)擴(kuò)展計(jì)時(shí)時(shí)間,則計(jì)時(shí)時(shí)間為 = 中斷次數(shù) X 131072 + TH0,TL0 X 2 us 用定時(shí)器T0來(lái)完成工作,設(shè)置定時(shí)器的狀態(tài)寄存器TMOD為: TMOD = 00001001B ( M1M0=01,GATE=1,C/T=0 ) 參考程序
14、: ORG 0000H LJMP START ORG 0013H LJMP T0INT ORG 0050H START: MOV TMOD,#09H ; 計(jì)數(shù)方式,開(kāi)啟門(mén)控制 MOV TH0,#0 ;設(shè)定定時(shí)器初值 MOV TL0,#0 MOV IE,#84H ;開(kāi)定時(shí)器0中斷 SETB TR0 MOV R5,#0 ;中斷次數(shù)初值清零 SJMP $ T0INT: INC R5 ; 記錄中斷次數(shù), RETIP7.6P7.2 解: 讀取指令使能信號(hào) /PSEN 讀表格數(shù)據(jù)指令 MOVC ,使能信號(hào)/PSEN 讀外部 RAM 指令MOVX , 使能信 /RD 寫(xiě)外部 RAM 指令MOVX , 使能信
15、 /WR 讀寫(xiě)指令不同,產(chǎn)生不同的讀寫(xiě)信號(hào)。由于讀寫(xiě)指令不會(huì)在同一時(shí)間并行執(zhí)行,因此程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器的讀寫(xiě)使能信號(hào)不會(huì)在同一時(shí)間有效。 P8.6 1)、顯示緩沖區(qū)是存放顯示數(shù)據(jù)的區(qū)域。例如對(duì)于動(dòng)態(tài)顯示電路,只能定時(shí)的輪換的將部分?jǐn)?shù)據(jù)送入驅(qū)動(dòng)電路中,因此需要有一個(gè)區(qū)域?qū)⑺袛?shù)據(jù)存儲(chǔ)起來(lái); 2)、一般放在單片機(jī)的數(shù)據(jù)RAM中; 3)、需要顯示的數(shù)據(jù),如數(shù)碼管的段數(shù)據(jù)代碼。P8.7 1)、靜態(tài)顯示:每一個(gè)數(shù)碼管單獨(dú)對(duì)應(yīng)一個(gè)驅(qū)動(dòng)電路接口,當(dāng)電路工作時(shí),驅(qū)動(dòng)電流恒定導(dǎo)通或截止。 2)、動(dòng)態(tài)顯示:多個(gè)顯示器件(如數(shù)碼管)共用一個(gè)數(shù)據(jù)驅(qū)動(dòng)電路接口,每個(gè)顯示器件獨(dú)立擁有一個(gè)電源開(kāi)關(guān)電路;當(dāng)電路工作時(shí),在
16、某一時(shí)刻只控制一個(gè)顯示器件的電源開(kāi)關(guān)電路處于開(kāi)態(tài),并在數(shù)據(jù)驅(qū)動(dòng)電路接口輸出要顯示的數(shù)據(jù),其余顯示器件的電源開(kāi)關(guān)電路處于關(guān)態(tài),使得只有一個(gè)顯示器件點(diǎn)亮;這樣通過(guò)分時(shí)控制顯示器件電源開(kāi)關(guān)電路的開(kāi)關(guān)以及傳輸相應(yīng)的數(shù)據(jù)到數(shù)據(jù)驅(qū)動(dòng)電路接口,使得同一個(gè)數(shù)據(jù)驅(qū)動(dòng)電路接口處的多個(gè)顯示器件分時(shí)輪流點(diǎn)亮。P9.6 中斷方式: ORG 0000H LJMP MAIN ORG 0023H ; 串行口中斷入口 AJMP SINT ORG 0050H MAIN: MOV TMOD,#20H ; 初始化編程 MOV SCON,#40H MOV TH1,#0FAH MOV TL1,#0FAH MOV DPTR,#TBLOCK
17、 MOV R2,#20H MOV IE,#90H SETB TR1 TRAM: MOVX A,DPTR ; 取數(shù)據(jù) MOV SBUF,A ; 發(fā)送第一個(gè)字符 H: SJMP ; 其它工作SINT: PUSH ACC CLR TI ; 中斷服務(wù)程序 DJNZ R2,SINT1 MOV R2,#20H SJMP SINTENSINT1: INC DPTR MOV A,DPTR ; 取數(shù)據(jù) MOV SBUF,A ; 發(fā)送下一個(gè)字符SINTEN: POP ACC RETIP9.9 中斷方式: ORG 0000H LJMP MAIN ORG 0023H ; 串行口中斷入口 AJMP SINT ORG 0
18、050H MAIN: MOV TMOD,#20H ; 初始化編程 MOV SCON,#80H MOV PCON,#80H MOV IE,#90H MOV TH1,#0FAH MOV TL1,#0FAH MOV DPTR,#RBLOCK MOV R2,#20H SETB TR1 H: SJMP ; 其它工作用奇校驗(yàn)方式接收:RXDSUB: PUSH PSW ;保護(hù)現(xiàn)場(chǎng) PUSH ACC MOV PSW,#08H CLR RI ;清發(fā)送中斷標(biāo)志以備下次發(fā)送 MOV A,SBUF ;讀進(jìn)收到的數(shù)據(jù) JNB P,PP1 JNB RB8,D_OK ;P=1且RB8=0表明接收正確 SJMP EER ;P=1且RB8=1表明接收不正確 PP1: JB RB8,D_OK ;P=0且RB8=1表明接收正確 SJMP EER ;P=0且RB8=0表明接收不正確D_OK: MOV R0, A ;保存數(shù)據(jù) INC R0 ;指針指向下
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 風(fēng)景名勝區(qū)自行車(chē)租借協(xié)議
- 建筑安裝工程承包合作協(xié)議
- 廣告委托制作協(xié)議書(shū)
- 民間借款協(xié)議書(shū)的格式要求
- 私車(chē)出租給機(jī)構(gòu)協(xié)議
- 2024年加盟經(jīng)銷(xiāo)合同范本
- 建筑工程勞務(wù)擴(kuò)大分包合同完整2024年
- 2024正規(guī)版私人借款合同樣本
- 吉林省農(nóng)業(yè)產(chǎn)品訂購(gòu)協(xié)議
- 房產(chǎn)物業(yè)抵押借款協(xié)議
- GB/T 19963.2-2024風(fēng)電場(chǎng)接入電力系統(tǒng)技術(shù)規(guī)定第2部分:海上風(fēng)電
- 2024年秋新北師大版七年級(jí)上冊(cè)數(shù)學(xué)教學(xué)課件 第3章 問(wèn)題解決策略-歸納
- 印刷服務(wù)投標(biāo)方案(技術(shù)方案)
- 爆破片日常檢查及定期更換記錄
- 運(yùn)轉(zhuǎn)車(chē)間鋼包管理制度
- 銷(xiāo)售大戶(hù)監(jiān)管辦法
- 小型裝配式冷庫(kù)設(shè)計(jì)(全套圖紙)
- 西師版小學(xué)數(shù)學(xué)二年級(jí)上冊(cè)半期考試
- 八六版高中英語(yǔ)課文全集
- 審計(jì)工作手冊(cè)
- 胰腺癌一病一品知識(shí)分享
評(píng)論
0/150
提交評(píng)論