1、 CH5 2.8051单片机提供几个中断源?几个中断优先级?中断优先级的处理原则是什么? 答:五个中断源:,,T0,T1,TXD/RXD. 两个中断优先级:高优先级、低优先级 优先级处理原则: ①不同级中断同时申请,先高后低 ②低优先级中断可被高优先级中断所中断,反之不能 ③同级中断源同时申请,按自然优先级顺序,从高到低依次是、T0、、T1、TXD/RXD. 4.说明MCS-51单片机响应中断后,中断服务程序的入口地址 解: 入口地址:外中断0 0003H T0溢出中断 000BH 外中断1 0013H T1溢出中断 001BH 串口中断
2、0023H 8.编写一程序,对中断系统进行初始化,要求允许、中断,并将设置为低优先级,边沿触发方式,将设为高优先级,电平触发。 解: MOV IE, #85H ;总中断允许,、允许 MOV IP,#04H ; 设为高优先级, 低优先级 SETB IT0 CLR IT1 Ch6 1.8051定时器有哪几种工作方式?如何选择和设定? 答:4种工作方式,由TMOD中M1、M0设定。 M1 M0 0 0 13位计数器 0 1 16位计数器 1 0 自动重装初值8位计数器 1
3、 1 定时器0: 分成两个8位计数器 定时器1:停止计数 5.定时器模式2有什么特点?适用于哪些场合? 答:定时器模式2可以省去用户重装初值的语句,可以产生相当精确的定时时间,特别适于用作串行口的波特率发生器. 6.已知8051单片机的fosc=12MHz,用T1定时,试编程在P1.0和P1.1引脚分别输出周期为2ms和500μs的方波. 答:P1.1方波T=500μs,则T1定时250μs,采用方式1,TMOD:#20H,初值为X=65536-250=FF06H。P1.0方波采用P1.1信号循环得到。 工作方式1,查询方式: MOV R0,#
4、04H MOV TMOD, #10H ;T1 工作方式1 MOV TH1, #0FFH ;方式1初值 MOV TL1,#06H SETB TR1 ;启动定时器工作 LOOP: JBC TF1, L1 ;等待中断 SJMP LOOP L1: MOV TH1, #0FFH ;重赋初值 MOV TL1,#06H CPL P1.1 DJNZ R0,LOOP CPL P1.0 ;输出信号电平取反,得到方波 MOV R0
5、04H ;R0重赋初值,准备下半周期输出 SJMP LOOP 中断方式: ORG 0000H AJMP MAIN ORG 001BH AJMP SERVE MAIN:MOV R0,#04H MOV TMOD, #20H MOV TH1, #06H MOV TL1,#06H SETB EA SETB ET1 SETB TR1 SJMP $ ORG 0100H SERVE: CPL P1.1 DJNZ R0, DONE
6、 CPL P1.0 MOV R0, #04H DONE: RETI 8.当定时器T0用作模式3时,由于TR1位已经被T0占用,如何控制定时器T1的开启和关闭? 答:T0方式3时,仅用T1控制C/T切换T1的工作方式就可以启动T1运行或关闭. 11.设单片机的fosc=12MHz,试编写一段程序,功能为:对T0初始化,使之工作在方式2,产生200μs定时,并用查询T0溢出标志的方法控制P1.0输出周期为2ms的方波. 答:T0定时200μs,方式2,TMOD:#20H,P1.0方波半周期T=1ms,采用200μs循环5次得到。初值为X=256-200/
7、1=56=38H。 T0工作方式2,查询方式: MOV R0,#05H MOV TMOD, #02H ;T0 工作方式2 MOV TH0, #38H ;方式0初值 MOV TL0,#38H SETB TR0 ;启动定时器工作 LOOP: JBC TF0, L1 ;等待中断 SJMP LOOP L1: DJNZ R0,LOOP CPL P1.0 ;输出信号电平取反,得到方波 MOV R0,#05H ;R0重赋初值,
8、准备下半周期输出 SJMP LOOP Ch7 4.8051串行口有几种工作方式?有几种帧格式?各工作方式的波特率如何确定? 答:串行口有4种工作方式,有8位、10位、11位3种帧格式。方式0的波特率为fosc/12,方式2的波特率为×fosc,方式1和方式3的波特率由定时器T1的溢出率决定。 5.假定串行口发送的字符格式为1个起始位,7个数据位,一个奇偶校验位,一个停止位,请画出传送ASCⅡ码字符“A”并且采用奇校验的帧格式。 解:A的ASCⅡ码为41H,帧格式 起始位 D0 D1 D2 D3 D4 D5 D6 D7 D8 停止位 41H 0 1
9、 0 0 0 0 0 1 0 1 1 6、某异步通信接口,其帧格式由1个起始位,7个数据位,一个偶校验和1个停止位组成。当该接口每分钟传送1800个字符时,试计算波特率。 解: ×10=300bps 16、以8031串行口按工作方式3进行串行数据通信.假定波特率为1200B/S,第9位数据位作奇偶校验位,以中断方式传送数据。请编写通信程序,将甲机片内RAM 30H~3FH的内容通过串行口发送到乙机片内RAM 40H~4FH中. 解:设fosc=11.0592MHz, 定时器工作在方式2,B=1200b/s,查表得初值为E8H 发送程序: ORG
10、0000H AJMP MAIN ORG 0023H AJMP SERVE ORG 0100H MAIN: MOV TMOD,#20H ;T1工作方式2 MOV TH1,#E8H ;设初值 MOV TL1,#E8H SETB TR1 MOV SCON, #0C0H ;SCON=1100 0000,方式3,发送 MOV PCON,#00H ;SMOD=0 MOV R0, #30H MOV
11、 R1, #0FH SETB ES SETB EA MOV A, @R0 MOV C, PSW.0 MOV TB8,C MOV SBUF, A SJMP $ SERVE:CLR TI INC R0 MOV A,@R0 MOV C,P MOV TB8,C MOV SBUF,A DJNZ R1,ENDT CLR ES ENDT: RETI
12、 接收程序: ORG 0000H AJMP MAIN ORG 0023H AJMP SERVE ORG 0100H MAIN: MOV TMOD,#20H ;T1工作方式2 MOV TH1,#E8H ;设初值 MOV TL1,#E8H SETB TR1 MOV SCON, #0D0H ;SCON=1101 0000,方式3,接收 MOV PCON,#00H ;SMOD=0 MOV R0, #40
13、H MOV R1, #10H SETB ES SETB EA SJMP $ SERVE: CLR RI MOV A, SBUF JNB P, PNP JNB RB8, PER SJMP RIGHT PNP : JB RB8, PER RIGHT: MOV @R0, A INC R0 DJNZ R1, WAIT CLR PSW.5 RETI PER: SETB PSW.5 RET
14、I Ch8 7.以两片Intel 2716芯片给8051单片机扩展一个4KB的外部程序存储器,要求地址空间与8051内部ROM相衔接(即从1000H开始编址),请画出逻辑连线图。 IC1: 1000H~17FFH IC2:1800H~1FFFH 8.以一片2716和一片6116组成一个既有外扩程序存储器,又有外扩数据存储器的扩展系统,请画出逻辑图,并说明各芯片的地址范围。 存储器容量均为2K IC1和IC3地址范围相同: P2.7~P2.5 P2.4 P2.3 P2.2~P2.0 P0.7~P0.0 1 1 1 1 0 0
15、00 00000000 F000H~F7FFH IC2和IC4地址范围相同: P2.7~P2.5 P2.4 P2.3 P2.2~P2.0 P0.7~P0.0 1 1 1 0 1 000 00000000 E800H~EFFFH 9.在一个由8051单片机与一片ADC0809组成的数据采集系统中,ADC0809的地址为7FF8H~7FFFH。试画出相关逻辑框图,并编写出每隔1秒钟轮流采样一次8个通道数据的程序(共采样100次,采样值存入片外RAM3000H开始的地址空间)。 解: 1.采用延时程序定时。
16、 ORG 0000H LJMP MAIN ORG 0013H AJMP ADCVT ORG 2000H MAIN: MOV P2, #30H MOV R0, #00H MOV R1, #08H MOV R2, #64H SETB EX1 MOV DPTR, #7FF8H MOVX @DPTR, A SJMP $ ADCVT: MOVX A, @DPTR MOVX @R0, A INC DPTR INC R0 DJNZ R1, AGAIN
17、 DJNZ R2, DELAY ;一次转换结束,延时1s RETI AGAIN: MOVX @DPTR, A RETI DELAY: MOV R3, #04H DLY1: MOV R4, #0FAH DLY2:MOV A, #0A5H DJNZ R4, DLY2 NOP NOP DJNZ R3,DLY1 RET {{[(1+2)*165+2+2+1]*250+2+1}*4+2+1}*2=1000030 10. 在一个8051单片机与一片DAC0832组成的应用系统中,DAC0832的
18、地址为7FFFH,输入电压为0V~5V。试画出有关逻辑框图,并编写产生一个矩形波(占空比1:4,高低电平分别为2.5V和1.25V)的程序。 矩形波: ORG 2000H START: MOV DPTR,#7FFFH LOOP: MOV A,#80H MOVX @DPTR,A ;置矩形波上限电平 LCALL DELAY1 ;调用高电平延时程序 MOV A,#40H MOVX @DPTR,A ;置矩形波下限电平 LCALL DELAY2 ;调用低电平延时程序 SJMP LOOP ;重复进行下一个周期 如图所示,现有8031单片
19、机、74LS373锁存器、74LS138、l块2764(要求其首地址为0000H)和1块6264(首地址为2000H).试利用它们组成一单片机系统,要求画出硬件连线图(含控制信号、片选信号、数据线和地址线) 第9题 2.采用定时器定时。设晶振为6MHz,采用定时器0工作方式1,每次定时100ms,中断10次为1s,TH0=3CH, TL0=0B0H。 采用查询方式: MAIN: MOV P2, #30H MOV R0, #00H MOV R1, #08H MOV R2, #63H MOV DPTR, #7
20、FF8H MOV TMOD, #01H ;定时器0方式1 SAM1: MOVX @DPTR, A ;先启动转换, JBC P3.3, $ ;等待转换结束 MOVX A, @DPTR ;存放结果 MOVX @R0, A INC DPTR INC R0 DJNZ R1, SAM1 ; 8个通道循环 L0: MOV R1, #08H ;一轮转换结束,准备下一轮 MOV DPTR, #7FF8H MOV R3
21、 #0AH MOV TL0, #0B0H ;开始定时 MOV TH0, #3CH SETB TR0 L1: JBC TF0, L2 ;等待100ms结束 SJMP L1 L2: MOV TL0, #0B0H MOV TH0, #3CH DJNZ R3, L1 ;循环10次,等待1s定时结束 SAM2: CLR TR0 ;1s定时到,关闭定时器 DJNZ R2, SAM1 ;再次开始转换,一共采
22、样100次 SJMP $ 3.采用中断方式 ORG 0000H LJMP MAIN ORG 000BH AJMP TIME ORG 0013H AJMP ADCVT ORG 2000H MAIN: MOV B, #0AH ;定时100ms,10次 MOV P2, #30H ;片外RAM3000H MOV R0, #00H MOV R1, #08H ;8个通道 MOV R2, #64H ;采样100次 MOV TMOD, #01H ;定时
23、器0工作方式1 MOV TL0, #0B0H MOV TH0, #3CH SETB IT1 SETB ET0 SETB EX1 SETB TR0 MOV DPTR, #7FF8H SJMP $ ;等待定时时间到 TIME: MOV TL0, #0B0H ;定时器中断子程序 MOV TH0, #3CH DJNZ B, LOOP1 ;循环不到10次,中断返回 CLR TR0
24、 ;10次结束,关闭定时器 MOVX @DPTR, A ;启动A/D转换 LOOP1: RETI ;中断返回,等待转换结束 ADCVT: MOVX A, @DPTR ;读A/D转换结果 MOVX @R0, A ;存放结果 INC DPTR INC R0 DJNZ R1, AGAIN ;8个通道未结束,重复 DJNZ R2, LOOP2 ;一轮转换全部结束,重复100次 RETI AGAIN: MOVX @DPTR, A RETI LOOP2: MOV R1, #08H ;重新开始下一轮定时、转换 MOV B, #0AH MOV DPTR,#7FF8H MOV TL0, #0B0H MOV TH0, #3CH SETB TR0 RETI