IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 51单片机入门(第三讲) -> 正文阅读

[嵌入式]51单片机入门(第三讲)

共阳、共阴数码管显示原理、定时器工作方式介绍、重点讲述工作方式2、中断概念及中断函数写法、外部中断试验、定时器中断应用

WE端为位选端 即选中哪个数码管工作

a,b,c,d,e,f,g等为段选端 即控制数码管上面那个段亮

WELA为位选的锁存端,先打开位选锁存端(给高电平),然后送入相应的值来控制哪个数码管工作然后关闭锁存端(给低电平),然后位选信号就保持住了。

然后打开段选锁存端DULA给高电平,然后送入相应的值给段选端,使得相应的数码管段亮,最后关闭段选端(给低电平),信号保持。

?数码管采用共阴极? 这个公共端就是位选端, 所以当你想选择某个数码管工作时 ,就令对应的WE端为0就可以了。

而想控制数码管上的某一段亮的话,因为是共阴极所以就需要给对应的段加高电平。

#include <reg52.h>
sbit wela=P2^7;
sbit dula=P2^6;
void main()
{
		wela=1;  //打开位选锁存端
	  P0=0xfe;  //给p0信号让第一个数码管工作
	  wela=0;   //关闭位选锁存端
	  
	  dula=1;  //打开段选锁存端
		P0=0x7f;  //给p0信号控制 显示数字8
		dula=0;  //关闭段选端
		while(1); //停留在此处
}

实现了让第一个数码管显示数字8

?可以把这16个数字写成一个数组

uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};

用的时候可以直接 table[0]? table[3]这样调用

#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit wela=P2^7;
sbit dula=P2^6;
uchar sum;
uchar code table[]={  //  建立数组  名字为 table
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(uint z);  //声明函数
void main()
{
		wela=1;
		P0=0xc0;  //让6个数码管全部工作
		wela=0;
	  while(1)
		{
			for(sum=0;sum<16;sum++)  //循环
					{
							dula=1;
						  P0=table[sum];   //让P0口依次接收16个数字
						  dula=0;
						  delay(1000);   // 延时
					}
		}
}
void delay(uint z)   //延时函数
{
		uint x,y;
		for(x=z;x>0;x--)
				for(y=110;y>0;y--);
}

中? ? 断

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?01234? 用在写中断子程序的后面

void exter0()?interrupt 0

?

?定时器

?

?

?

?不可按位寻址? ? 只能 直接对TMOD进行设置

?一般使GATE 为0

?TCON可位寻址

?

?

?

?

?

?

#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar sum;
sbit led1=P1^0;
void main()
{
	  TMOD=0x01; //设置工作方式
	  TH0=(65536-50000)/256;//设置初值
	  TL0=(65536-50000)%256;
	  EA=1;  //开启中断总开关
	  ET0=1; //开启定时器0中断开关
	  TR0=1; //开启定时器0
	  while(1); //等待
}

void T0_time() interrupt 1    //中断子程序
{
	  TH0=(65536-50000)/256;
	  TL0=(65536-50000)%256;
	  sum++;
	  if(sum==20)
		{
			  sum=0;
			  led1=~led1;
		}
			
}

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-01-08 14:11:18  更:2022-01-08 14:13:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 12:30:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码