单片机原理接口与应用李群芳版习题解答参考_第1页
单片机原理接口与应用李群芳版习题解答参考_第2页
单片机原理接口与应用李群芳版习题解答参考_第3页
单片机原理接口与应用李群芳版习题解答参考_第4页
单片机原理接口与应用李群芳版习题解答参考_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机原理、接口及应用一一嵌入式系统技术基础习题解答预备篇计算机的基础知识0.140H,62H,50H,64H,7DH ,FFH0.2812 ,104, 213, 256, 2936, 9410.3十进制数原码补码十进制数原码补码281CH1CH250FAHFAH-289CHE4H-347815BHFEA5H10064H64H92803A0H03A0H-1308082HFF7EH-92883A0HFC60H0.4 机器数真值分别为 :27,233, - 128, - 8,14717,31467, - 27824, - 124780.5 (1) 33H+5AH = 8DH, OV=1, CY=0

2、。(2) -29H-5DH= 7AH, OV=0, CY=1(3) 65H-3EH= 27H, OV=0, CY=1。(4) 4CH-68H= E4H, OV=0, CY=00.6十进制数压缩BCD数非压缩BCD数ASCII 码3838H0308H3338H255255H020505H323535H483483H040803H343833H764764H070604H373634H10001000H01000000H31303030H10251025H01000205H31303235H0.7 ASCII码表示的十六进制数分别为:105H, 7CAH, 2000H,8A50H基础篇第1章、MC

3、S-51单片机结构1.1单片微型计算机(即单片机)是包含CPU、存储器和I/O接口的大规模集成芯片,即它本身包含了 除外部设备以外构成微机系统的各个部分,只需接外设即可构成独立的微机应用系统。微机处理器仅为CPU,CPU是构不成独立的微机系统的。1.2参见教材1.1.1节1.3参见教材第6页表格1.4参见教材表1.41.5参见教材表1.1和表1.21.6 当PSW=10H 表明选中的为第二组通用寄器R0R7的地址为10H17H1.7程序存储器和数据存储器尽管地址相同,但在数据操作时,所使用的指令不同,选通信号也不同,因此不会发生错误。1.8 部数据 稈序 外部数据 程序1.9 振荡周期=0.1

4、667卩s机器周期=2卩s指令周期=28卩s1.10 A=0,PSW=0,SP=07,P0P3=FFHA,JZ 指令是寻址外第 2章、51 系列单片机的指令系统2.1 参见教材 2.1 节2.2 因为 A 累加器自带零标志 ,因此若判断某部 RAM 单元的容是否为零 ,必须将其容送到 即可进行判断。2.3 当 A=0 时 ,两条指令的地址虽然相同 ,但操作码不同 ,MOVC 是寻址程序存储器 ,MOVX 部数据存储器 ,送入 A 的是两个不同存储空间的容。2.4目的操作数源操作数寄存器直接SP 间接寻址直接直接直接直接立即寄存器间址直接寄存器变址寄存器间址寄存器2.5Cy=1, OV=0, A

5、=94H2.6V XV x XX VV xVxxxxxVxxxxxx2.7A=25H (50H)=0(51H)=25H (52H)=70H2.8SP=(61H)(SP)=(24H)SP=(62H)(SP)=(10H)SP=(61H)DPL =(10H)SP=(60H)DPH=(24H)执行结果将0 送外部数据存储器的2410 单元2.9程序运行后部 RAM(20H)=B4H,A=90H2.10机器码源程序7401LA:MOV A,#01HF590LB:MOV P1,A23RL AB40AFACJNE,#10,LB80F6SJMP LA2.11 ANL A,#0FHSWAP AANL P1,#0

6、FH ORL P1,A SJMP $2.12 MOV A,R0XCH A,R12.13MOV R0,A SJMP $ (1)利用乘法指令MOV B,#04HMUL ABSJMP $ADDA,ACCMOVR1,A;R1=4AMOVR0,A ;R0=2AMOVA,BMOVA,#0ADDCA,B;进位X 2ADDCA,#0MOVB,A; 存积高位MOVB,A ;B 存 2A 的进位MOVA,R1; 存积低位MOVA,R0SJMP$(2) 利用位移指令RL AMOV B,ARL AMOV A,20HMOV 20H,AANL A,#0FCHANL A,#03HSJMP $(3)用加法指令完成ADD A,

7、ACC2.14 XRL 40H,#3CHSJMP $2.15 MOV A,20HADD A,21HDA AMOV 22H,A; 存和低字节MOV A,#0ADDC A,#0MOV 23H,A;存进位SJMP $2.16 MOV A,R0JZ ZEMOV R1,#0FFHSJMP $ZE: MOV R1,#0SJMP $2.17 MOV A,50HMOV B,51HMUL ABMOV 53H,BMOV 52H,A SJMP $2.18 MOV R7,#0AHWOP: XRL P1,#03HDJNZ R7,WOPSJMP $2.19 单片机的移位指令只对 A, 且只有循环移位指令 ,为了使本单元的

8、最高位移进下一单元的最低位 必须用大循环移位指令移位 4 次。ORG 0MOV A,22HCLR CRLC AMOV A,20HMOV 22H,ARLC AMOV A,#0MOV 20H,ARLC AMOV A,21HMOV 23H,ARLC ASJMP $MOV 21H,A第 3 章、 MSC-51 单片机汇编语言程序设计3.1 因为是多个单元操作 ,为方便修改地址使用间址操作。片外地址用DPTR 指示 ,只能用 MOVX指令取数到 A,片地址用R0或R1指示,只能用MOV指令操作,因此循环操作外部数据存贮器 f A f部部数据存贮器。ORG0000HINCDPTRMOVDPTR,#1000

9、HINCR0MOVR0,#20HCJNER0,#71H,LOOPLOOP: MOVX A,DPTRSJMP$MOV R0,A3.2 要注意两高字节相加应加低字节相加时产生的进位 , 同时要考虑最高位的进位。ORG0MOV51H,AMOVA,R0MOVA,#0ADDA,R6ADDCA,ACCMOV50H,AMOV52H,AMOVA,R7SJMP $ADDCA,R13.3 A中放小于14H(20)的数,平方表的一个数据占2个字节,可用BCD码或二进制数存放.(如A中放的是 BCD 码,则要先化成二进制数再查表。)ORG0INC AMOVDPTR,#TABMOVC A,A+DPTRADDA,ACC;

10、A*2MOV R6,APUSHACCSJMP $MOVC A,A+DPTRTAB: DB 00,00,00,01,00,04, 00,09,00,16HMOVR7,ADB04H,00POPACC3.4 先用异或指令判两数是否同号,在同号中判大小, 异号中正数为大 .ORG0BG: MOV22H,21HMOVA,20HSJMP$XRLA,21HCMP: MOVA,20HANLA,#80HCJNEA,21H,GRJZ CMPGR: JNCAGJB 20H.7,BGMOV22H,21HAG: MOV22H,20HSJMP$SJMP $3.5 fosc=6MHZ机器周期数DELAY:MOV R1,#0

11、F8H1LOOP:MOV R3,#0FAH1DJNZ R3,$2DJNZ R1,LOOP2RET2(1+(1+2*0xFA+2)*0xF8+2)*12/6MHz=(1+(1+2*250+2)*248+2)*2us=249.494ms3.6将待转换的数分离岀高半字节并移到低4位 加30H;再将待转换的数分离岀低半字节并30H,安排好源地址和转换后数的地址指针 ,置好循环次数。ORG0000HMOVA,R0MOVR7,#05HANLA, #0FHMOVR0,#20HADDA,#30HMOVR1,#25HMOVR1,ANET: MOVA,R0INC R0ANLA,#0F0HINCR1SWAPADJN

12、ZR7,NEADDA,#30HSJMP$MOV R1,A ENDINC R13.7 片 RAM 间址寄存器只能有 R0 和 R1 两个 ,而正数、 负数和零共需 3 个寄存器指示地址 ,这时可用 堆栈指针指示第三个地址 ,POP 和 PUSH 在指令可自动修改地址。 R0 指正数存放地址和 R1 指负数存 放地址 ,SP 指源数据存放的末地址 ,POP 指令取源数据 ,每取一个数地址减 1。ORG0000HMOVR7,#10HMOVA,#0MOVR0,AMOVR4,AINCR0MOVR5,AAJMPDJMOVR6,ANE: INCR5MOVR0,#40HMOVR1,AMOVR1,#50HINC

13、R1MOVSP,#3FHAJMPDJNEXT:POPACCZER0: INCR6JZ ZER0DJ:DJNZ R7,NEXTJB ACC.7,NESJMP $INC R4END3.8 可直接用 P 标志判断 (JBP ,ret)ORG 0000HMOV A,40HJB P,EN;奇数个 1 转移ORL A,#80H;偶数个 1 最高位加 “1”EN: SJMP $3.9 取补不同于求补码 ,求补码应区别正、负数分别处理 ,而取补不分正、负 ,因正、负数均有相对于 模的补数。用取反加 1 求补也可用模 (00H) 减该数的方法求补。ORG0000HMOVR7,#03HAB:INCR0MOVR0,

14、#DAT AMOVA,R0MOVA,R0CPLACPLAADDCA,#0ADDA,#01DJNZR7,ABMOVR0,ASJMP$3.10 16个单字节累加应用 ADD指令而不能用 ADDC指令,和的低位存 A,当和超过一个字节,和的高 字节存于B,并要加进低位相加时产生的进位,16个单字节加完后,采用右移4次进行除十六求平均值的运算 ,商在 BUF2 单元 ,余数在 BUF2-1 单元。MOVMOVBUF2,ABUF2-1,#0NEX:CLRCMOVA,BRRCAMOVB,AMOVA,BUF2RRCAMOVBUF2,AMOVA,BUF2-1RRCAMOVBUF2-1,ADJNZR6,NEXS

15、JMP$;以上完成除十六运算ORG 0000HMOV R7,#0FHMOV R0,#BUF1MOV B,#0MOV A,R0MOV R2,ANEXT: MOV A,R2INC R0ADD A,R0MOV R2,AMOV A,BADDC A,#0MOV B,ADJNZ R7,NEXT ;以上完成求和MOV R6,#04H3.11将20H单元的容分解为高 4位和低4位,根据是否大于 9分别作加37H和30H处理。ORG0000HMOV21H,AMOVA,20HSJMP$ANLA,#0F0HASCII: CJNEA,#0AH,NESWAPANE:JC A30ACALLASCIIADDA,#37HMO

16、V22H,ARETMOVA,20HA30:ADDA,30HANLA,#0FHRETACALLASCIIC。3.12 要注意 ,位的逻辑运算其中一个操作数必须在ORG 0000HMOV C,20HANL C,2FHCPL CORL C,/2FHCPL CANL C,53HMOV P1.0,CSJMP $END3.13ORG 0000HMOV C,ACC.3ANL C,P1.4ANL C,/ACC.5MOV 20H,CMOV C,B.4CPL CANL C,/P1.5ORL C,20HMOV P1.2,CSJMP $END3.14设一字节乘数存放在R1,三字节的被乘数存放在data开始的部RAM单

17、元,且低字节存放在低位地址单元,R0作为被乘数和积的地址指针,用MUL指令完成一字节乘一字节,每一次部分积的低位加上一次部分积的高位,其和的进位加在本次部分积的高位上,并暂存,三字节乘一字节共需这样三次乘、加、存操作,以R7作循环三次的计数寄存器。ORG0000HMOVR7,#03HMOVA,#0MOVR0,#dataADDCA,BMOVR2,#0MOVR2,ANEXT: MOVA,R0INCR0MOVB,R1DJNZR7,NEXTMULABMOVR0,BADDA,R2SJMP$MOVR0,AEND第4章、并行接口 P0-P3和单片机的中断系统4.14.3 参考教材4.1节4.4用P1.7监测

18、按键开关,P1.0引脚输岀正脉冲,正脉冲的产生只需要将 再置零即可。P1.0接一示波器可观察波形。电路设计可参考图 4.4汇编语言程序P1.0置零、置1、延时、 如果再接一发光二极管,可观察到发光二极管的闪烁。ORG0000HABC : CLRP1.0Wiif DI-SETBP1.7JNBP1.7,$;键未弹起等待SETBP1.0MOVR2,#0DAY: NOPNOPDJNZR2,DAYSJMPABC电路见图4.5,初始值送0FH到P1,;未按键等待JB P1.7,$4.5从P1 口输岀,循环运行,要注意输岀后要延时。 汇编语言程序30Px_!1KVCC "EA PL0RST300

19、Cl89C51XTAL1XTAL2图4.4-fs十貪1K再和OFFH异或从P1 口输岀,或使用SWAPA指令,然后ORG 0000HMOV A , #0FHABC :MOV P1 , AACALL D05SWAP ASJMP ABCD05:MOV R6 , 250DY:MOV R7 , 250DAY:NOP89C51n. ort iPl. 2Fhk:3Pk 4Pl 5FrLPL 7 rr图4.5NOPDJNZ R7,DAYINC R0CJNE R0,#10H,NEXTSJMP AGAINTAB:DB 3FH,06H ;段码表(略)ENDMOVDPTR,#TABMOVCA, A+DPTRMOVP

20、1,AMOVR2,#08HAGAIN:MOVA,#01NEXT:MOVP3,AACALLDAYRL ACJNEA,#10H,NEXTDJNZR2,AGAINSJMP$VrrSIX 51MALIXTAI.2GNlro 123s覆TTnjTT* W1)7 S'NOPDJNZ R7,DAYDJNZ R6,DYRETEND4.6如使用共阴极数码管,阴极接地,阳极ag分别接P0P3的某个口的7位,将0F的段码列 成表,表的容顺次从该口输岀。如数码管接P3 口。汇编语言程序ORG 0000HMOV DPTR ,#TABAGAIN:MOV R0 , #0NEXT:MOV A , R0MOVC A ,

21、 A+DPTRMOV P3,AMOV R7,#0DAY:NOP4.7电路设计见图 4.7,编程如下:ORG 0000HMOV A, #08H图4.7图4.8TAB:DB 3FH,06H END4.8 P1 口的八根线接行线,输岀行扫描信号 P3 口的八根线接列线,输入回馈信号。见图4.8。4.94.12参见4.2节4.13 电路设计见图4.13汇编语言程序ORG 0000HAJMP MAINORG 0003HRL A冲断服务MOV P1,ARETI1OVA,#0FEHMOVP1,ASETBEASETBEX0SETBIT0SJMP$;第一灯亮MAIN:向量地址问题,程序顺序排下,应注意程序的执行

22、过程。C语言无循环移位指令移位后,后面补零,因此和01相或。4.14 略4.15汇编语言中只有一个中断源,不存在占用别的中断源1KX2图 4.13ORG 0030HMAIN: SETB EASETB EX0SETB IT0MOV P1,#0FFHMOV R0,#0AHSJMP $;等待中断ORG 0000HAJMP MAINORG 0003H ;中断服务XRL P1,#0FFHDJNZ R0,NECLR EAaa EQU 08H;存储高四位的段码CLRP3.0bb EQU 09H;存储第四位的段码SETBP3.1i EQU 0AH;存储计数值MOVP1,aa;显示高位Tab:DB 3FH,06

23、H;段码表略ACALLDelay;延时ORG0000HSJMPLOOPAJMPMAININTR:CLREX0ORG0013HINCi;i 加一AJMPINTRMOVA,iMAIN:MOVDPTR,#TabANLA,#0FH;取i的低位CLRAMOVDPTR,#TabMOVCA,A+DPTRMOVCA,A+DPTRMOVaa,AMOVbb,A ;查表b=Tabi的低位MOVbb,A;a=b=Tab0MOVA,iCLRP3.0ANLA,#0F0HCLRP3.1SWAPA;取i的高位SETBEAMOVCA,A+DPTRSETBEX0MOVaa,A ;查表a=Tabi的高位SETBIT0;开中断SET

24、BEX0LOOP:SETBP3.0RETICLRP3.1Delay:;略MOVP1,bb;显示低位ENDNE: RETI因一亮一灭为一次,所以共十次4.16两个数码管阳极经驱动器接P1 口,阴极分别接P3.0、P3.1ACALL Delay ;延时4.17提示:将X至X3分别接至一个三输入或非门的三个输入端,同时还分别接至单片机的三个IO 口的值,便可IO 口,或非门的输出端接至单片机的外部中断引脚。中断服务程序中检查三个 知道具体的故障源。程序略。第五章、单片机的定时 /计数器与串行接口5.1 5.3 请参考教材5.4 方式 0:16.38ms 方式 1:131ms方式 2:512 11s5

25、.5 使用方式2 计数初值 C=100H-0AH=F6H查询方式 :ORG0000HABC:JNBTF0,$MOVTMOD,#06HCLRTF0MOVTH0,#0F6HCPLP1.0MOVTL0,#0F6HSJMPABCSETBTR0中断方式 :ORG0000HMOVTH0, #0F6HAJMPMAINSETBEAORG0000BHSETBET0CPLP1.0SETBTR0RETISJMP$ ; 等待中断MAIN: MOV TMOD,#06H5.6 1000HZ的周期为1ms,即要求每500卩sP变反一次,使用方式 T1方式1,MC=12 / fosc=1卩s C=216-500 ys/1 y

26、sFEOCH,除 TMOD=10H , THO=FEH , TLO=OCH 外,程序与 5.5 题相同,注意 每次要重置 TH0 和 TL05.7 f=6MHz MC=2卩s方式2的最大定时为 512卩洽乎题目的要求。50卩时,计数初值为C1=256-25=E7H ,350 时计数初值为C2=256-175=51H汇编语言程序ORG0000HSJMPAB1MOVTMOD , #02HEXT:SETBP1.2NEXT : MOVTH0, #51HMOVTH0, #0E7HMOVTL0 ,#51HMOVTL0 , #0E7HCLRP1.2AB2:JBCTF0, NEXTSETB TR0SJMPAB

27、2AB1: JBC TF0,EXT 上述的计数初值没有考虑指令的执行时间,因此误差较大 ,查每条指令的机器周期,扣除这些时间,算得 C=E3H, 这样误差较小。5.8P1.0输岀2ms脉冲,P1.0输岀50 Q脉冲。汇编语言程序ORG0000HNE: JNBTF0,$MOVTMOD,#02HCLRTF0MOVTH0,#06HCPLP1.1MOVTL0,#06HDJNZR0,NESETBTR0CPLP1.0MOVR0,#04HAJMPNE5.9ORG0000HCLRTF0MAIN:MOVTMOD,#15HRETLOOP:LCALLCounterTimer:MOVTH1,#0F9HLCALLTim

28、erMOVTL1,#30HSJMPLOOPSETBTR1Counter:MOVTH0,#0FDHCLRTR0MOVTL0,#18HJB TF1,$SETBTR0CLRTF1CLRTR1RETJNBTF0,$END5.10略5.11参见教材5.3.1 节5.12方式 3 为每桢 11 位数据格式3600*11/60=660( 波特 )5.13 T1 的方式 2 模式不需要重装时间常数( 计数初值 ), 不影响 CPU 执行通信程序设波特率为 fbaut 计数初值为 x,somd SMO依据公式 f baut =2 /32*(f osc/12(256-x)求得 x=256-(2 D/32)*(f

29、osc/f baut )5.14 最低波特率为 T1 定时最大值时 ,此时计数初值为 256, 并且 SOMD=0,f baut =(1/32)*( f osc/(12(256-0)=61 最高波特率为 T1 定时最小值 (1)且 SOMD=1 时f baut =(2/32)* f osc/(12(256-1)=312505.15 取 SMOD=1 计算 TH1=TL1=B2发送ORG0000HNEXT:MOVSBUF,AMOVTMOD,#20HTES:JBCT1,ADD1MOVTH1,#0B2HSJMPTESMOVTL1,#0B2HADD1:INCASETBTR1CJNEA,#20H,NEX

30、TMOVSCON,#40HSJMP$MOVA,#0END接收ORG0000HTEC:JBCRI,RECMOVTMOD,#20HSJMPTECMOVTH1,#0B2HREC:MOVR0,SBUFMOVTL1,#0B2HINCR0SETBTR1CJNER0,#40H,TECMOVSCON,#50HSJMP$MOVR0,#20HEND5.16 略5.17 利用串行通信方式 如正确 ,则存于片外 言程序如下 :2(波特率固定 ),采用奇校验方式 ,将校验位放在 TB8 中 ,乙机检验校验位 ,4400H 开始的 RAM 中 ,如错误 ,通知对方重发 ,R6 存放数据块长度汇编语发方ORG0000HL5

31、:JBCT1,L6MOVDPTR,#3400HAJMPL5MOVR6,#0A1HL6:JBCRI,L7MOVSCON,#90HAJMPL6MOVSBUF,R6L7:MOVA,SBUFL2:JBCT1,L3CJNEA,#0FF0H,L8AJMP1.2AJMPL3L3:MOV1,DPTRL8:INCDPLJB P,L4DJNZR6,L4SETBTB8SJMP$L4:MOVSBUF ,A收方ORG0000HL5:JB JB8,L8MOVDPTR,#4400HL6:MOVXDPTR,AMOVSCON,#90HINCDPLL1:JBCRI,L2INCDPHAJMPL1DJNZR6,L3L2:MOVA,S

32、BUFSJMP$MOVR6,AL8:MOVA,#0FFHL3:JBCRI,L4MOVSBUF,AAJMPL3L9:JBCTI,L3L4:MOVA,SBUFAJMPL9JB P, L5SJMP$JNBRB8,L8END5.18 电路图见教材中图 5.18,程序如下:ORG 0000HMOV R5,#03HCLR AMOV SCON,ALOOP: SETB P3.3CLRAMOVR7,ADEF:MOVA,R5;循环 4 次MOVDPTR,#tabMOVC A,A+DPTR;查表 A=tabR5MOV SBUF,ADEC R5JNB T1,$CLR T1CJNE R5,#0FFH,ABC; 若 R5

33、=255 , 则 R5=7CJNE R7,#04H,DEF; 循环 4 次CLR P3.3LCALL timerSJMP LOOP timer: MOV A,#64H FOR: JZ ENDDMOV TMOD,#01HMOV TH0,#0D9HMOV TL0,#0F0HSETB TR0JNB TF0,$CLR TF0DEC ASJMP FORENDD: RETtab:DB 0c0H,0f9H,0a4H:略SJMP $ENDMOV R5,#07HABC:INC R7章、单片机总线与存储器的扩展6.1参见6.1节6.2 6116 为 2KB X 8 位 RAM,共11根地址线 AoA io,接线见

34、图6.2。I-S3?y7:QIQCor(ITrrA10鹉A8VccA7CT*<AlAO6116HAM)7P2. 2PN 1P2.0妣7也1P0. 0AI.E8XX5ID1DO图6.26.32732为4KB X 8位EPROM,6264为8KB X 8位RAM,因各只有一片,所以各片选 CE接地,电路见图6.3。吃.0-F2. 4乜0 P21X00 07 AO A7i81图6.36.46116 为 2KB X 8 位 RAM、2716 为 2KB X 8 位 EPROM,地址线均为6.3。PSEN80C31H)ALEHAWR 血 吃73D Q(;0L1OE A8-AJ12732 (TOE

35、WE AS A12 6264 (T1DO D7 AO A711位,地址线接线参见图6.5电路见图6.5PSENP2. 4P2.0P2.1P2.6P2. 7HOC"阖MtEhA BFT W-M22764(4)CF W-A7 00-0727(14(3)FTAS A12<T27fM ta)fiL屈Al2Vc.27rM 图6.54片2764的CE分别接138译码器为y0、y1、y2、y3端,各片地址为2764(4)0000H1FFFH2764(3)2000H3FFFH2764(2)4000H5FFFH2764(1)6000H7FFFH6.6设计电路见图6.6。Js80C31P0ALEE

36、A373nr A8-AL22761 CTIJU D7 AU .V81.811G2G244AY输入+5V rIK CLR273DGh科图6.6第7章、单片机系统功能扩展7.1 将图6.6中的2764去掉,并改“ P2.5”为“ P2.4”,改“ P2.6”为“ P2.7” ;程序可参考教材中例 7.1。7.2请参考上题和题 4.16。将244的输入端最低位经过一个上拉电阻接至+5V,经过一个按钮接到地。7.3电路图见图7.3MOV DPTR,#OCFFBHMOV A, #0A2HMOVX DPTR, A7.4电路与上题类似,程序较简单,略。、7.58255A 口、B 口、C 口、控制口地址分另V

37、为 7CFFH、7DFFH 、7EFFH、7FFFH,A 口方式0输岀,C 口输岀控制字80H7.5RD 限 P2. 5 卩2. 4 poJP0/0丄丄二<LQ7IQJ妙皿 茁1)04 =chm 4 匚veQ 5PAWPL5隨限馬A1AODO用电路见图图7.3程序:ORG0000HMOVDPTR,#7FFH;指向控制口MOVA,#80H;A 口 B 口均采用基本输岀方式MOVXDPTR,A;写控制字MOVDPTR,#7CFFHMOVA,#0MOVXDPTR,A;清显示AGAIN:MOVR0,#0;R0存字形表偏移量MOVR1,#01;R1置数码表位选代码NEXT:MOVDPTR,#7EF

38、FH;指向C 口MOVA,R1MOVXDPTR, A;从C 口输出位选码MOVA, R0MOVDPTR,#TAB;置字形表头地址MOVCA, A+DPTR;查字形码表MOVDPTR,#7CFFH;指向B 口MOVXDPTR, A;从B 口输岀字形码ACALLDAY;延时INCR0; 指向下一位字形MOVA,R1RLA;指向下一位MOVR1,ACJNER1,#10H,NEXT;六个数码管显示完?SJMPAGAINDAY:MOVR6,#50;延时子程序DL2:MOVR7, #7DHDL1:NOPNOPDJNZR7,DL1DJNZR6,DL2RETTAB1:DB6FH,3FH,3FH ,5EH ;“

39、g00d”(9ood) 的字形码7.6提示:EPROM27128O 16KB X 8,地址线为14根,6264为8KB X 8位,地址线为13根,电路可参考教 材中图 7.3。7.7 根据电路连线I/O 口 :A 口 :FDF8H,B 口 :FDF9H,C 口 :FDFAH,命令 /状态口 :FDFBH.定时器 TIMEL:FDFCH TIMEH:FDFDH存贮器 RAM :FC00H FCFFH第 8 章、单片机典型外围接口技术8.1电路参照教材中图 8.7,不同的是将P2。7改为P2。3,先计算各模拟量对应的数字量 3C 对应的数字量 :5V/3V=255/XC=153=99H同样可算得

40、1V、2V、4V 对应的数字量分别为 33H、66H、CCH 三角波MOV DPTR,#OF7FFHNEXT1: MOV A,#0NEXT:MOVX DPTR,ANOPNOPINC ACJNE A,#9AH,NEXTNEXTA:DEC AMOVX DPTR,A NOPNOPCJNE A,#0,NEXTASJMP NEXT1 END 方波4V 对应的数字量为 CCHMOVDPTR, #0F7FFHMOVA,#0NEXT: MOVX DPTR,AACALLD2MSXRLA,#0CCHSJMPNEXT阶梯波MOVDPTR, #0F7FFHNEC:MOVA,#0NEXT:MOVX DPTR,AACAL

41、L D1MSADD A,#33HCJNE A,#0FFH, NEXTANEXTA:MOVX DPTR,AACALL D5MSSJMP NEC8.2 电路参考教材中图 8.8, 增加一个地址 ,使用两条输出指令才能输出一个数据,其他同上。8.3 电路参考教材中图 8.7,地址为 7FFFH 。ORG0000HMOVDPTR,#7FFFHMOVR0,#20HMOVA, R0NEXT: MOV XDPTR,AACALLD1MSINC R0CJNER0,#30H,NEXTSJMP$END8.4电路参阅教材中图8.11,不同的是将 P2.5P2。改为P2.0P2.2,各地址分另为 FEFFH、FDFFH

42、、FBFFH程序参照教材 节,注意修改 RAM 地址 ,循环执行该程序。8.5电路参阅教材中图 8.2,不同的是 延时方式:EOC悬空;查询方式:EOC经非门接单片机 P1.0端口线; 中断方式同原图。下面仅编查询程序。IN2的地址为7FFAH,由于EOC经非门接单片机 P1.0端口线, 查询到 P1.0 为零 ,即转换结束。ORG 0000HMOVMOVMOVNEXT: MOVXR7,#0AHR0,#50HDPTR,#7FFAHDPTR,A ;启动转换JB P1.0,$;查询等待MOVX A, DPTR ; 读入数据MOV R0,AINC R0DJNZ NEXTSJMP $8

43、.6 ADC0809 采集入中模拟信号 ,顺序采集一次 ,将采集结果存放于数组 ad 中。 ADC0809 模拟通道 07 的地址为 7FF8H7FFFH,ADC0809 的转换结束端 EOC 经逻辑非后接至外部中断 1,电路参考 教材中图 8.2。程序参考教材第 167页的例子,只需修改数据存储区地址。8.7 电路参考教材中图 8.26,增加键盘的行线和数码管个数至8个,减少键盘列线到 2根,程序略。第 9 章、串行接口技术9.1-9.3 请参考教材9.4电路参照教材中图 9.12,另外一片24C04的A1接到VCC其它引脚与第一片完全一样。9.5 略9.6 可以,在操作 IIC 总线时,将

44、 SPI 总线上的所有器件的从机选择线置高,这样便不会对SPI 总线有影响;在操作 SPI总线时,让IIC总线的SDA保持高电平,这样IIC总线得不到起始信号, 便不会对 IIC 总线有影响。9.7 TLC5615经SPI总线接至单片机(参照教材中图9.26 ),REFn作为衰减器的输入, OUT作为衰减器的输出。根据V。2 VREFinCODE210其增益为:9.8提示:用较快的速度对被测电压进行采样(采样时间间隔恒定为code codeIo9 。229t),将一定时间段(T)的获得的采样值(v)的平方对时间积分(实为求和)后除以该时间段的长度,最后开平方,便是被 测电压在该时间段近似的有效值。V有效值应用篇第10章、单片机的C语言编程 C5110.1第6行,缺少“;”第8行“;”多余;main函数最后缺少“ ”16)c为自身10.2 xdata 的地址围为0x0000到0xFFFF (共64K),它需要两个字节记录(log 2 6553610.3 char bdata a;float xdata b;int xdata * c(注意不要定义为“xdata int * c "或 “ int * xdata c ” ,这样在xdata区,指

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论