云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 单片机习题

单片机习题

  • 62 次阅读
  • 3 次下载
  • 2025/5/2 17:39:22

RET

4.从内部RAM31H单元开始存放一组8位带符号数,字节个数存放在30H中,试编写程序统计出其中正数、0和负数的数目,并把统计结果分别存入20H、21H、22H单元中。

解: 程序段如下:

MOV 20H,#0 MOV 21H,#0 MOV 22H,#0 MOV R0,#31H MOV R7,30H LP: MOV A,@R0

JB ACC.7,NEG CJNE A,#0,POS INC 21H SJMP LP1 NEG:INC 22H

SJMP LP1 POS:INC 20H LP1:INC R0

DJNZ R7,LP SJMP $ RET

5.将外RAM 2000H~20FFH中256个ASCII码加上奇校验后从P1口依次输出。 解: 程序段如下:

MOV DPTR,#2000H

MOV R7,#0

LP: MOVX A,@DPTR

MOV C,P CPL C

MOV ACC.7,C ;置奇校验 MOV P1,A INC DPTR DJNZ R7,LP SJMP $

七、硬件设计题(10分)

1.利用8031单片机的P1.0端产生如下图所示的方波,系统晶振频率为12MHz。要求用软件延时方法或定时器方法完成此题要求。

20ms 20ms

40ms 40ms

解:用定时器方法:

定时常数:20ms定时, Tc=B1E0H 40ms定时, Tc=63C0H

ORG 0000H

AJMP MAIN

12

ORG 000BH AJMP T0INT ORG 0030H

MAIN: MOV TMOD,#01H ;T0设置为方式1 MOV TH0,#0B1H MOV TL0,#0E0H

MOV IE,#82H ;开放T0中断 SETB P1.0 CLR F0 SETB TR0

SJMP $ ;等待T0中断

T0INT: CPL P1.0

CPL F0

JB F0,LOW ;F0为“1”,转40ms低电平定时 MOV TH0,#0B1H MOV TL0,#0E0H RETI

LOW: MOV TH0,#63H MOV TL0,#0C0H RETI END

八、综合设计题(10分)

1.在8031芯片外扩展32KB EPROM(27256)和32KB RAM(62256)各一片来组成较完整的单片机系统。

①画出8031与存储器之间完整的连接图(请标明各连线的信号名称)。 ②指出连接后各存储芯片的地址范围。

③将外部数据存储器单元8000H~9FFFH中的数据拷贝到同一芯片内的C000H~DFFFH区间,编写程序并加以注释(特别要说明程序中所用各寄存器的用途)。

解: ①硬件连接图如图所示。

②27256的地址范围是0000H~7FFFH,62256的地址范围是8000H~FFFFH。

③程序如下:

MOV DPTR,#8000H ;DPTR作为源数据区和目的数据区的地址指针

LOOP:PUSH DPH

MOVX A,@DPTR ;A用来传递数据 ORL DPH,#40H MOVX @DPTR,A

13

POP DPH INC DPTR

MOV A,DPH ;A也用来判断数据块末地址 CJNE A,#0A0H,LOOP SJMP $

2.用8位ADC0809对1路模拟信号进行转换,采集100个数据存入单片机中(画出主要接口电路图、给出说明、编出源程序)。

解: 单片机与ADC0809的接口电路设计如下图所示:

因为只要求一路模拟信号的转换,所以在电路设计上可以做如下简化:

①将8路通道的选择信号ADDA、ADDB、ADDC直接接地,表示长期选通0通道。 ②改由P1.0控制“转换开始”,让P1.0一直置“1”,继而让RD和WR独立起作用。这种设计可以不占用任何地址线。

③本题只要求采集100个数据,所以数据区可以设置在内部RAM中。拟将存放单元首地址置为1CH(128–100=28=1CH)。

④本题对“转换结束”信号的识别,既可以采用中断法,也可以采用查询法,还可以用无条件传送。此处为简化编程工作量,采用无条件传送方法,即启动转换后等待100μs(这是ADC0808的最保守转换时间)再读取转换结果。

⑤模拟信号接至INo引脚,但要保证模拟量在一次A/D转换过程中其值不发生变化。如果变化速度快,在输入前应该增加采样保持电路。 100个数据的采集程序如下:

MOV R0,#1CH ;设置内部RAM数据区首址 MOV R7,#100 ;设置数据块长度计数器

SETB P1.0 ;准备好“转换开始”和“读取数据”的必要条件之一 LOOP1:MOVX @R0,A ;让WR有效(A与R0均无意义),启动转换。 ACALL DELAY ;延时100μs,等待转换结束 MOVX A,@R0 ;让WR有效,读取转换结果 MOV @R0,A ;存转换结果 INC R0 ;地址指针加1

DJNZ R7,LOOP1;100个数据尚未采集完,回头继续 SJMP $

DELAY:MOV R1,#10 ;延时100μs(设晶振频率为12MHz) DLOOP:MUL AB MUL AB

14

DJNZ R1,DLOOP RET

3.用一片74LS244设计一监视8台设备状态的接口电路和监控程序,若发现某一设备状态异常(由低电平变成高电平),则发出报警信号(指示灯亮),一旦状态恢复正常,则将其报警信号撤除。

解: 监视接口电路如下图所示:

74LS244和74LS74的端口地址为BFH。 监控程序如下:

MOV R0,#0BFH ;预置两块I/O芯片的地址指针

LOP1:MOV A,#00H ;选通74LS74输出接口并熄灭指示灯 MOVX @R0,A

LOP2:MOVX A,@R0 ;读入设备状态

JZ LOP2 ;全0表示正常,继续检测设备状态 MOV A,#01H ;若不全为0,应该报警,控制74LS74 点亮指示灯 MOVX @R0,A

LOP3:MOVX A,@R0 ;读入设备状态

JZ LOP1 ;若正常,则熄灭指示灯,再从头开始检测

SJMP LOP3 ;若仍不正常,循环查询,直到设备恢复正常为止

15

搜索更多关于: 单片机习题 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

RET 4.从内部RAM31H单元开始存放一组8位带符号数,字节个数存放在30H中,试编写程序统计出其中正数、0和负数的数目,并把统计结果分别存入20H、21H、22H单元中。 解: 程序段如下: MOV 20H,#0 MOV 21H,#0 MOV 22H,#0 MOV R0,#31H MOV R7,30H LP: MOV A,@R0 JB ACC.7,NEG CJNE A,#0,POS INC 21H SJMP LP1 NEG:INC 22H SJMP LP1 POS:INC 20H LP1:INC R0 DJNZ R7,LP SJMP $ RET 5.将外RAM 2000H~20FFH中256个ASCII码加上奇校验后从P1口依次输出。 解: 程

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com