静态数码管显示实验

文章目录

    • 摘要
    • 实验器件简介
      • 显示器分类
      • LED显示器
    • 实验原理
    • 七段数码管编码
    • 实验结果
    • 硬件电路图
    • 实验代码
    • 实验视频教程
    • 注意事项以及思考
    • 资源分享

摘要

本实验采用了普中科技的51单片机开发板
通过对单片机的编程控制LED数码管的静态显示

实验器件简介

显示器分类

  1. 发光二极管LED(Light-emitting Diode)显示器
  2. 液晶(Liquid Crystal Display)显示器
  3. TFT(Thin Film Transistor)液晶显示器(彩屏)

LED显示器

1.段显示(7段,米字型等)

2.点阵显示(5x5, 8x8)
静态数码管显示实验_第1张图片
3.共阴和共阳型LED数码管
静态数码管显示实验_第2张图片

实验原理

数码管静态显示:必须接一个8位数据线来保持显示的字形码。
动态显示:期待下次实验。

静态显示
优点:占用CPU时间少,显示便于检测和控制
缺点:硬件电路复杂,成本高;

七段数码管编码

前提条件:
编码的前提条件不同,编出的码自然也就不同;

1.如图所示顺时针排列(a~h)八段LED
静态数码管显示实验_第3张图片
2.采用共阳型数码管
3.规定了a段是最高位,h段是最低位

编码:
静态数码管显示实验_第4张图片
编码代码:

unsigned char code segmentCode[23]={0xFF,	   //无显示
		0x03,0x9F,0x25,0x0D,0x99,0x49,0x41,0x1F,0x01,0x09, //数字0~9
		,0x11,0xC1,0x63,0x85,0x61,0x71,       //字母A~F
		0x91,0xE3,0x13,0x31,0x83,0x13,0xD1   //其他字母H、L、N、P、U、H
		};  

实验结果

视频地址:http://t.cn/ESbbzVS?m=4366177717178388&u=5955627170

硬件电路图

完整电路图查看资源分享中 4–开发板原理图
静态数码管显示实验_第5张图片
静态数码管显示实验_第6张图片

实验代码

/**********************************************************/
//晶振频率:12.0MHz
//文件名	:main.c
//功能说明	:七段LED静态数码管显示实验
//制作    	:mp.csdn.net/postedit/89392804
//技术支持	:QQ:2116447359
//变更记录	:2019.04.17
//变更内容	: 
//说明		:
/**********************************************************/
#include 

#define	u8		unsigned char
#define LED_8	P0
void DelayMS(u8 i);

//编码前提条件:
//1.共阳极数码管 
//2.各段数码管按顺时针排列
//3.a是高位,h(即dp)是低位
u8 code segmentCode[22]={0xFF,   						//无显示
	0x03,0x9F,0x25,0x0D,0x99,0x49,0x41,0x1F,0x01,0x09,  //0~9
	0x11,0xC1,0x63,0x85,0x61,0x71,  					//A~F
	0x91,0xE3,0xD5,0x31,0x83							//H,L,n,P,U
};  	
//加code把数组存放在Flash ROM中否则在RAM中

void main()
{
	u8 i;											
	LED_8 = 0xFF;
	while(1)
	{
		for(i=0;i<22;i++)
		{
			LED_8 = segmentCode[1];  //把1改为i将循环显示
			DelayMS(1000);  //大约 1s
		}
	}
}

void DelayMS(u8 i)
{
	//延时大约 1ms
	u8 j=100;
	while(i--)
	{
		while(j--);  
	}
}



实验视频教程

推荐视频:https://www.bilibili.com/video/av32132894/?p=22
静态数码管原理

静态数码管编程

静态数码管实验操作演示

注意事项以及思考

1.当采用共阴型LED数码管时,只需要把共阳型编码按位取反即可;

P0 = ~segmentCode[i];
P0 = ~0x03;  //两者择其一

2.当规定了h段是最高位,a段是最低位,只需要采用二进制倒序算法即可;
此问题有待解决… ???

资源分享

003-普中51单片机开发板教程+参考资料
链接:https://pan.baidu.com/s/1SHARpgOLFtkY0gQXOGLx7g 提取码:yqjq
复制这段内容后打开百度网盘手机App,操作更方便哦

你可能感兴趣的:(51单片机)