第一范文网 - 专业文章范例文档资料分享平台

单片机习题

来源:用户分享 时间:2025/10/9 1:49:28 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

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

搜索更多关于: 单片机习题 的文档
单片机习题.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3nscq9brlh9jajr89mby_4.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top