【单片机】单片机基本原理练习题3

一、题目一

1.1 作业题目

1.什么是MCS-51单片机的最小系统?

1.2 作业解答

指51单片机为核心的真正可用的最小配置系统。51单片机内部集成了微型计算机的大部分功能部件,只需要外部连接一些简单电路就可组成最小系统。分为以下两种情况:
8051/8751片内有4KB的ROM/EPROM,因此,只需要外接晶体振荡器和复位电路就可以构成最小系统;
8031片内无程序存储器,因此,在构成最小系统时,不仅要外接晶体振荡器和复位电路,还应在外扩展程序存储器。

二、题目二

2.1 作业题目

2.LED数码管显示器的显示方式有几种?各有什么特点?

2.2 作业解答

数码管在显示时,通常有静态显示方式和动态显示方式两种。
静态显示时,其公共端直接接地(共阴极)或接电源(共阳极),各段选线分别与I/O接口线相连。要显示字符,直接在IO线发送相应的字段码。
动态显示时,将所有的数码管的段选线并接在一起,用一个I/O接口控制,公共端不是直接接地(共阴极)或电源(共阳极),而是通过相应的I/O接口线控制。显示是多个数码管轮流显示。当单位时间显示的频率足够高,看起来就是稳定显示。

三、题目三

3.1 作业题目

3.矩阵键盘有几种编码方式?怎样编码?

3.2 作业解答

通常有以下两种方法进行编码;
(1)用连接键盘的I/O线的二进制组合进行编码。
(2)顺序排列编码。

四、题目四

4.1 作业题目

4.对于数码管动态显示,在很多实际的单片机应用系统中,为了实现较好的显示效果,通常是把动态显示过程用定时扫描方式来实现,处理思想如下:用定时器实现20ms周期性定时,定时时间到动态显示一遍。参照书上图8.9的电路和内容,把数码管显示改成定时扫描方式,用C语言编写相应程序。(第8章)

4.2 作业解答

分析:用定时器T1工作于方式1实现20ms周期性定时,20ms定时到调用显示函数一遍,定时器方式控制字为10H,系统时钟为12MHz,初值为:65536-20000

#include <reg51.h>
#include <absacc.h>
#define uchar unsigned char
#define uint unsigned int
uchar disbuffer[8] = {0, 1, 2, 3, 4, 5, 6, 7};
void delay(uint i)//定义延时函数
{
    for (uint j = 0; j < i; j++);
}
void display(void)//定义显示函数
{
    uchar codevalue[16] = {0x3f, 0x06, 0x5b, 0x4f,
                          0x66, 0x6d, 0x7d, 0x07,
                          0x7f, 0x6f, 0x77, 0x7c,
                          0x39, 0x5e, 0x79, 0x71};//共阴极0~F的字段码表
    uchar chocode[8] = {0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f}; //ll位选码表
    uchar i, p, temp;
    for (i = 0; i < 8; i++)
    {
        temp = chocode[i];   //取当前的位选码
        P2 = temp;           //送出位选码
        p = disbuffer[i];    //取当前显示的字符
        temp = codevalue[p]; //查得显示字符的字段码
        P0 = temp;           //送出字段码
        delay(20);           //延时1ms
    }
}
void main(void)
{
    TH1 = (65536 - 20000) / 256;
    TL1 = (65536 - 20000) % 256;
    EA = 1;         //EA=1访问片内程序存储器
    ET1 = 1;        //ET1=1定时/计数器T1溢出中断允许控制位
    TR1 = 1;        //TR1=1定时/计数器T1启动位
    while (1);
}
void time1(void) interrupt 3
{
    TH1 = (65536 - 20000) / 256;
    TL1 = (65536 - 20000) % 256;
    display(); //设显示函数
}
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敲代码两年半的练习生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值