单片机原理及应用——基于Proteus和Keil C(5)

2019-04-09 16:45

{ } }

TMOD = 0x50; TL1 = 0x68; TH1 = 0xfc;

while(TF1 == 0); TMOD = 0x10; TL1 = 0x78; TH1 = 0xe0; while(TF1 == 0);

8.已知8051单片机的fosc=6MHz,试利用T0和P1.0输出矩形波。矩形波高电平宽100μs,低电平宽300μs。

解:先确定 T0作为定时器工作于模式2时初值为:高电平为50,低电平为150。

采用中断方式编程。 程序如下:

#include

#define uchar unsigned char sbit SQU = P1^0; void main() {

TMOD = 0x02; TL0 = 50; IE = 0x82; SQU = 1; TR0 = 1; while(1) { } }

void t0_SQU() interrupt 1 {

if(SQU == 1) { SQU = 0; TL0 = 150; } else { SQU = 1; TL0 = 50; } }

9.设fosc=12MHz,试编写一段程序,功能为:对定时器T0初始化,使之工作在模式2,产生200μs定时,并用查询T0溢出标志的方法,控制P1.1输出周期为2ms的方波。

解:先确定 T0作为定时器时初值为:56 程序如下:

#include

#define uchar unsigned char sbit SQU = P1^1; void main() {

TMOD = 0x02; TL0 = 56; TL0 = 56; SQU = 1; TR0 = 1; while(1) { if(TF0 == 1) { i++; if(i>4) { i = 0; SQU = ~SQU; } } } }

10.已知8051单片机系统时钟频率为6MHz,利用其定时器测量某正脉冲宽度时,采用哪种工作模式可以获得最大的量程?能够测量的最大脉宽是多少?

答:首先设置TMOD中GATE为1,以定时方式工作在模式1,外部正脉冲从外部中断引脚引入,可获得最大的量程。

能够测量的最大脉宽为:131ms.

第6章

1.通常8031给用户提供的I/O口有哪几个?为什么? 答案:

MCS-51系列单片机虽然有4个8位I/O口P0、P1、P2、P3,但4个I/O口实际应用时,并不能全部留给用户作系统的I/O口。因为当单片机在外部扩展了程序存储器、数据存储器时,就要用P0和P2口作为地址/数据总线,而留给用户使用的I/O口只有P1口和一部分P3口。

2. 简述MCS-51系列单片机CPU访问外部扩展程序存储器的过程。 答案:

P0口作为地址/数据复用的双向三态总线,用于输出程序存储器的低8位地址或输入指令,P2口具有输出锁存功能,用于输出程序存储器的高8位地址。当ALE有效(高电平)时,高8位地址从P2口输出,低8位地址从P0口输出,在ALE的下降沿把P0口输出的低8位地址锁存起来,然后在PSEN有效(低电平)期间,选通外部程序存储器,将相应单

元的数据送到P0口,CPU在PSEN上升沿完成对P0口数据的采样。

3. 简述MCS-51系列单片机CPU访问外部扩展数据存储器的过程。 答案:

第一个机器周期是从外部程序存储器读取MOVX指令操作码,第二个机器周期才是执行MOVX指令访问外部数据存储器。在该周期中,若是读操作,则RD信号有效(低电平),P0口变为输入方式,被地址信号选通的外部RAM某个单元中的数据通过P0口输入CPU;若是写操作,则WR信号有效(低电平),P0口变为输出方式,CPU内部数据通过P0口写入地址信号选通的外部RAM的某个单元中。

4. 现要求为8051扩展2片2732作为外部程序存储器,试画出电路图,并指出各芯片的地址范围。

答案:

电路图如下:

各芯片的地址范围: 2732(1):0B800H ~0BFFFH; 2732(2):7800H ~7FFFH。

5. 现要求为8051外扩1片2864A,兼作程序存储器和数据存储器,请画出硬件连接图。 答案:

电路图如下:

6. 假设某一8051单片机系统,拟扩展2片2764 EPROM芯片和2片6264SRAM芯片,试画出电路图,并说明存储器地址分配情况。

答案:

电路图如下:

P2.0~P2.458ALE8031EAGQ0~Q7A0~A7A8~A12A0~A7A8~A12A0~A7A8~A12A0~A7A8~A1274LS373OED0~D782764?1?OED0~D7CE2764?2?6264?1?OED0~D7CEWE6264?2?OED0~D7CEOED0~D7CEWEP0.0~P0.7PSENRDWRP2.5P2.5

存储器地址分配:

2764(1):C000H~DFFFH; 2764(2):A000H~BFFFH; 6264(1):C000H~DFFFH; 6264(2):A000H~BFFFH。

7. 一个8051应用系统扩展了1片8155,晶振为12MHz,具有上电复位功能,P2.1~P2.7作为I/O口线使用,8155的PA口、PB口为输入口,PC口为输出口。试画出该系统的逻辑图,并编写初始化程序。

答案:

系统逻辑图如下:

初始化程序:

MOV DPTR, #0FFF8H MOV A, #0CH

MOVX DPTR, A

8. 8155TIN端输入脉冲频率为1MHz,请编写能在TOUT引脚输出周期为8ms方波的程序。

答案: 程序如下:

MOV DPTR,#7F04H ; 指向定时器低8位 MOV A,#40H MOVX @DPTR,A ; 计数常数低8位装入定时器 INC DPTR ; 指向定时器高8位 MOV A,#5FH ; 设定时器输出方式为连续方波输出 MOVX @DPTR,A ; 装入定时器高8位 MOV DPTR,#7F00H ; 指向命令/状态口

MOV A,#0C2H ; 命令字设定PA口为基本输入方式,PB口为基

本输出方式,并启动定时器

MOVX @DPTR,A

9. 现要求8155的A口基本输入,B口、C口基本输出,启动定时器工作,输出连续方波,请编写8155的初始化程序。

答案: 程序如下:

MOV DPTR,#data 1 ; 指向定时器低8位 MOV A,#data2 MOVX @DPTR,A ; 计数常数低8位装入定时器 INC DPTR ; 指向定时器高8位 MOV A,#40 H ; 设定时器输出方式为连续方波输出 MOVX @DPTR,A ; 装入定时器高8位 MOV DPTR,#data3 ; 指向命令/状态口

MOV A,#0CEH ; 命令字设定PA口为基本输入方式,PB、PC

口为基本输出方式,并启动定时器

MOVX @DPTR,A

第7章

1.简述键盘扫描的主要思路。 答案:

键盘扫描的主要思路:首先确定是否有键按下,消除抖动,若有键按下,输出逐行或列的扫描字,读取列或行的状态,确定按键键值,然后再判断按键是否释放,若释放,即可返回。

2.简述软件消除键盘抖动的原理。 答案:

软件消除键盘抖动的原理:当CPU发现有键按下的情况下,为了防止是机械抖动的误动作,可以采用软件延时10ms,然后再次检测按键是否仍然为闭合状态,若仍然闭合,则确定有键按下,否则就是键盘抖动,不予理睬。

3.什么叫LED的动态显示和静态显示。 答案:

静态显示形式,即七段LED数码管在显示某一个字符时,相应的段(发光二极管)恒定的导通或截至,直至换显其他字符为止。

动态显示是将所有数码管的段码线对应并联在一起,由一个8位的输出口控制,每位数码管的公共端(称位选线)分别由一位I/O口线控制,以实现各位的分时选通。

4.要求利用8051的P1口扩展一个2?2行列式键盘电路,画出电路图,并根据所绘电路编写键扫描子程序。

答案:

设行线H1~H2连接到51单片机P1口的P1.0~P1.1,列线L1~L2连接到P1口的P1.4~


单片机原理及应用——基于Proteus和Keil C(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2广本自动变速器452

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: