单片机习题答案 下载本文

内容发布更新时间 : 2024/5/10 23:52:14星期一 下面是文章的全部内容请认真阅读。

1200 波特的波特率.试 . 应用系统中, 波特的波特率. . 计算定时器的初值,并指出实际得到的波特率与所要求的波特率是否有误差. 计算定时器的初值,并指出实际得到的波特率与所要求的波特率是否有误差. 解:根据波特率计算公式 2 SMOD f OSC 1 × 32 12 256 初值 2 SMOD 6MHz 1 1 SMOD 1200 = × = 15625 × 2 32 12 256 初值 256 初值 当 SMOD=0 时,初值为 243,此时实际的波特率为:1201.92 当 SMOD=1 时,初值为 230,此时实际的波特率为:1201.92 所以实际波特率与要求的波特率有误差. 7.8 试设计一个 8051 单片机的双机通讯系统,并编写程序将 A 机片内 RAM40H~5FH 的数据块通过 . 单片机的双机通讯系统, ~ 中去. 串行口传送 B 机的片内 RAM 60H~7FH 中去. ~ 解:该双机通讯系统,是将 A 机数据发送到 B 机,所以可以采用单工工作方式 串行口采用方式 1 10 位异步收发,采用查询方式 MOV R0,#40H A 机:发送 MOV TMOD,#20H CLR TI MOV TL1,#0F3H NEXT: MOV A,@R0 MOV TH1,#0F3H INC R0 MOV SBUF,A SETB TR1 MOV SCON,#40H JNB TI,$ 10 CJNE R0,#60H, NEXT MOV R0,#60H AJMP $ NEXT: CLR RI JNB RI,$ B 机:接收 MOV TMOD,#20H MOV A,SBUF MOV TL1,#0F3H MOV @R0,A MOV TH1,#0F3H INC R0 SETB TR1 CJNE R0,#80H, NEXT AJMP $ MOV SCON,#50H 8.1 8051 有几个中断源,各中断标志是如何产生的,又是如何复位的?CPU 响应中断时其中断入口地 有几个中断源,各中断标志是如何产生的,又是如何复位的? . 址各是多少? 址各是多少? 答:8051 有 5 个中断源,分别是外部中断 0,定时器 T0 中断,外部中断 1,定时器 T1 中断,串行口中 断.中断入口地址分别为 0003H,000BH,0013H,001BH,0023H. 定时器中断标志 TF1 和 TF0 是当计数器溢出时产生的,CPU 响应中断时能自动清除;外部中断 IE1 和 IE0 则是根据外部 INT1 和 INT0 的变化产生的, 只有边沿方式的 IE1 和 IE0 能在响应中断是自动清除, 电平方式的只能软件清除;串行口中断标志 RI,TI 是在串行口接收和发送是产生的,它们只能利用软件 清除. 8.3 如何区分串行通讯中的发送中断和接收中断? . 如何区分串行通讯中的发送中断和接收中断? 答:串行通讯中,发送和接收中断共用一个中断入口地址,但可以通过 RI 和 TI 标志判断是哪种中断, TI=1 表示发送中断,RI=1 表示接收中断. 8.4 如何设定外部中断源是采用边沿触发还是电平触发? 这两种中断触发所产生的中断过程有和不 . 如何设定外部中断源是采用边沿触发还是电平触发? 同? 答:可通过 IT1 和 IT0 标志位进行设置,IT=0 时,为电平触发,IT=1 时,为边沿触发.电平触发,CPU 响应中断时不会清除 IE 标志,所以中断返回前应撤销 INT 引脚上的低电平;边沿触发方式,CPU 连续 两个机器周期采样到先高后低的电平,则置位 IE 标志,CPU 响应中断时由硬件清除 IE 标志. 8.7 试用中断方法设计秒,分脉冲发生器,即由 8051 的 P1.0 每秒钟产生一个机器周期的正脉冲,由 . 试用中断方法设计秒,分脉冲发生器, 每秒钟产生一个机器周期的正脉冲, P1.1 每分钟产生一个机器周期的正脉冲. 每分钟产生一个机器周期的正脉冲. 解:设系统时钟为 6MHz,由定时器完成定时,最大定时时间为 65536×2us=131096us=131.096ms,所 以设置定时器定时时间为 100ms,10 次定时为 1 秒钟,60 次一秒为一分钟,所以设置两个计数器分别对 10 和 60 计数 (M-X)×2us=100ms,所以 X=15536=3CB0H ORG 0000H MOV R4,#60 AJMP MAIN MOV R3,#10 ORG 0023H STB ET0 AJMP INTTIMER SETB EA MAIN: MOV TH0,#3CH INTTIMER: MOV TL0,#0B0H MOV TL0,#0B0H MOV TMOD,#01H MOV TH0,#3CH SETB TR0 DJNZ R3,INTEND CLR P1.0 SETB P1.0 CLR P1.1 CLR P1.0 11 MOV R3,#10 CLR P1.1 DJNZ R4,INTEND MOV R4,#60 SETB P1.1 INTEND: RETI 8.8 试运用定时器中断技术设计一个秒闪电路,其功能是使发光二极管 LED 每秒钟闪亮 400ms,设系统 . 试运用定时器中断技术设计一个秒闪电路, , 主频为 6MHz. . 答: 分析题目可知每秒钟 LED 闪亮 400ms, 也就是 600msLED 灭, 那也就是只要 LED 亮 400ms, 600ms 灭 即满足要求, 即要实现两个延时, 根据定时/计数器延时计算公式: (M-X) T=定时值, 最大定时值为 65536 ×2us=131.072ms,不足 400ms,所以设置基本延时为 100ms,400ms 和 600ms 定时通过多次

基本延时实 现. (M-X)×2us=100ms,所以 X=15536=3CB0H 程序如下: LED ORG AJMP ORG AJMP MAIN: MOV MOV MOV SETB MOV STB SETB INTTIMER: MOV MOV INC CJNE CLR AJMP NEXT: CJNE SETB MOV INTEND: EQU P1.0 0000H MAIN 0023H INTTIMER TH0,#3CH TL0,#0B0H TMOD,#01H LED R3,#00H ET0 EA TL0,#0B0H TH0,#3CH R3 R3,#04H,NEXT LED INTEND R3,#0AH,INTEND LED R3,#00H RETI 12