郭天祥 10天搞定单片机 (3)数码管+中断

本文介绍了单片机中的数码管显示原理,包括共阴极和共阳极的区别,以及段选和位选的概念。此外,详细阐述了中断的工作机制,包括中断响应、中断返回和中断嵌套,并探讨了80C51单片机的中断源和中断优先级。文中通过实例展示了如何编程控制数码管显示和使用中断功能。
摘要由CSDN通过智能技术生成

好久没有更新了,前两个月在复习备考,9月底刚刚考过,希望能有好结果吧~

这一讲接着讲流水灯,涉及到段选和位选,以及介绍了中断的知识。

先介绍一下使用的单片机的主控引脚:

  • 总线型引脚定义:
    • RST/Vpd: RST是复位端,高电平持续24个振荡周期,就可以复位,指针就回到最开始的语句。Vpd给RAM提供备用电源
    • 同一个口的不同值由寄存器里的值控制
    • P3.0/RXD: RXD 串行输入口
    • P3.1/TXD:TXD串行输出口
    • P3.2,INT0一横,P3.3 INT1一横,外部中断0和外部中断1
    • T0/T1: 计时器0和计时器1
    • P3.6 WR一横:外部寄存器的写选通
    • P3.7 RD一横:外部寄存器的读选通
    • XTAL2,XTAL1:外部晶振的输入端
    • 晶振
    • Vss: 接地
    • PDEN一横:一般不用
    • ALE/PROG一横:第二功能,输出1/6晶振频率的方波
    • EA一横:内部存储器选择控制端
    • P0口没有上拉电阻,P1 P2 P3内部有上拉电阻
  • 特殊功能寄存器
  • 数码管如何显示字符
    • 看是共阴极还是共阳极
    • 要显示什么数字,要先确定那几个笔画需要显示,再确定管脚
    • 段选和位选

 WE1就是位选,其他是段选。因为第几个数码管和每个数码管上的每个笔画都是由P0口控制的,所以要由位选段选来控制什么时候控制选数码管还是选数码管上的笔画。

 来编程让第一个数码管显示1:

#include<reg52.h>
sbit dula=P2^6;
sbit wela=P2^7;

void main()
{
	wela=1; //启动位选
	P0=0xfe; // 第一个启动,WE1=0,其他为1
	wela=0; //WELA=0, 低电平,锁存上一次的输出结果

	dula=1; //启动段选
	P0=0x06; //数字1, b, c两段是亮的,即编号4和6管脚导通
	dula=0;
}

这是静态控制。

利用人眼的残留效应和数码管的余晖可以实现动态显示。

下面这段让6个数码管同时亮,并且同时按1,2,3……循环变化:

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

	while(1)
	{
		for(num=0;num<16;num++)
		{
			dula=1;
			P0=table[num];
			dula=0;
			delay(5);
		}
	}
}


void delay(uint z)
{
	uint x,y;
	for (x=z; x>0; x--)
	{ 
		for (y=5000;y>0;y--)
		{}
	}
}

中断

  • 中断的概念:CPU在处理某时间A时,发生了另外一件事B请求CPU处理(中断发生);CPU暂时中断当前工作,去处理B(中断响应或者中断服务);当处理完B后,CPU再回到原先A被中断的地方继续处理A(中断返回);这个过程被称为中断。
  • 中断可以嵌套;
  • 中断的地方被称为断点,引起CPU中断的根源被称为中断源
  • 80C51有5个中断源,2个优先级,可以实现二级中断嵌套
  • 中断允许寄存器IE是一个特殊功能寄存器,之前学的都是I/O口的寄存器。

位序号

位符号

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值