手把手教学51单片机第三课 | 复位电路、数码管静态显示

1.复位电路

1个机器周期=12个震荡周期(晶振)
51单片机复位要求:高电平>=2个机器周期
时间常数τ

复位电路要求是RST引脚高电平有效大于2个机器周期,相当于24个震荡周期,假设震荡频率是12Mhz。τ=根号RC,其中R是10KΩ,C是10uf,实际值是τ=0.12s,理论上要大于等于12us(晶振频率分之一),这样就一定成立了。

以下是复位电路图
在这里插入图片描述
---------------------------------------------------------------------------------------分割线-----------------------------------------------------------------------------------

首先关闭S2,相当于单片机上电 用示波器观察R1右侧的节点电压,S2闭合瞬间电容相当于导线,RST触发高电平,上电复位持续时间相29ms,接着电容慢慢充电,节点电压变低,变成低电平,结束复位。1在这里插入图片描述

---------------------------------------------------------------------------------------分割线-----------------------------------------------------------------------------------

在这里插入图片描述
当此时按下按钮(相当于S1闭合),此时电容放电,R1分到的电压升高,到达0.7VCC仅用了15ms,此时RST引脚又到达高电平,电路复位
在这里插入图片描述

1法拉(F)= 1000毫法(mF)
1毫法(mF)=1000微法(μF)
1微法(μF)=1000纳法(nF)
1纳法(nF)=1000皮法(pF)

数码管

我们用到的是八段数码管,即七段表示数字的二极管还有一个表示小数点的dp

静态显示

静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。

(1)上拉电阻

单片机输出的电流是非常小的,点亮二极管的时候是5-10mA的电流 ,而I/O口输出的时候不到一个毫安,不满足点亮条件,这时候需要一个Vcc来提供电流,
当我们给单片机的P0^0口送高电平,给P20送低电平的时候,在这条线路上会产生一个电势差,此时通过额外5v的Vcc结合1k的排阻,就能送出5mA的电流,点亮二极管在这里插入图片描述

(2)共阴极 共阳极

在这里插入图片描述
共阴极和共阳极是相对于一个8位的数码管而言(上面只画出了4个),此时阴极连接在一起,阴极就叫位选(即哪一位数码管亮),阳极就是段选。共阳极就是反过来的。

(3)锁存器(74HC573)

锁存器的第11管脚,即锁存端,是高电平的时候 ,输入端和输出端是直通的;低电平,输出端保持原来的值。本开发板采用的是共阴极的数码管接法,相同段的段选全部接在一起,8个位选分别于锁存器的8个输出端连接。所以:先决定第几个8位数码管亮,那一位数码管显示什么数字

2.实例

#include<reg52.h>
#define uchar unsigned char 
#define uint unsigned int 
sbit dula=P2^6;
sbit wela=P2^7;
uchar num;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};//16个数字
void delay(uint);
void main()
{
	wela=1;
	P0=0xc0;
	wela=0;
	while(1)
	{
		for(num=0;num<16;num++)
		{
			dula=1;
			P0=table[num];
			dula=0;
			delay(1000);
		}
	}
}

void delay(uint z)
{
	uchar x,y;
	for(x=z;x>0;x--)
		for(y=110;y>0;y--);
}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值