版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_17017545/article/details/81516092
目前市场主要已形成了4类LED显示 产品:
① 单色文字显示屏
② 点阵和数码管混合显示屏
③ 双基色(红、绿)多媒体视屏
④ 全彩色(红、绿、蓝)多媒体视屏
LED屏的优点:亮度高、工作电压低、功耗小、小型化、寿命长、耐冲击和性能稳定。
LED电子屏的发展前景极为广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发光均匀性、更高的灰度级别、全色化方向发展。
#8X8LED点阵屏
8x8点阵LED结构由64个发光二极管组成。
|
|
|
---|---|---|
此处加一个 74LS245 的目的是增强驱动能力,比如从高电平A0输入,B0输出仍然是高电平,只不过电流大一些。
代码
******************************************************************/
* 【课程16】 ****8X8点阵屏的实验***********
* 【说 明】 ****
* 【描 述】 ****在点阵屏上显示一个"大"字
******************************************************************/
#include<reg51.h> //51头文件,
//---------常用的两个宏定义--------------
#define uint8 unsigned char
#define uint16 unsigned int
//------------显示数据-------------------
uint8 Col_contorl[8]={~0xfe,~0xfd,~0xfb,~0xf7,~0xef,~0xdf,~0xbf,~0x7f};
uint8 DA_Disp[8]={~0x44,~0x24,~0x14,~0x0f,~0x14,~0x24,~0x44,~0x00};
//------------函数的声明-----------------
void DelayMS(uint16 dly);
//-------------主函数--------------------
void main(void)
{
uint8 i,j;
while(1)
{
//P0 = 0x00; //P0控制行 P0.0是第一行,以此类推
//P2 = 0xFF; //P2控制列 P2.0是第一列,以此类推
P0 = 0xFE;
for(j=0;j<8;j++) //实现逐行的逐个亮
{
P2 = 0x01;
for(i=0;i<8;i++) //实现某一行的逐个亮
{
DelayMS(250);
P2 = P2<<1;
}
P0 = (P0<<1)+1; //每次扫描完一行换到下一行 (比如 1111 1110→ 1111 1101 → 1111 1011)
}
/*
for(i=0;i<8;i++) //循环显示一个“大”字
{
P0 = DA_Disp[i]; //同一列中的那几个LED亮
P2 = Col_contorl[i];//控制哪一列亮
DelayMS(5);
P0 = 0xff;
}
*/
}
}
/********************************************************
** 名称 :void DelayMS(uint16 dly)
** 功能 :毫秒级延时(12M的晶振)
** 入口参数 :dly 用户的延时参数
** 出口参数 :无
*********************************************************/
void DelayMS(uint16 dly)
{
uint16 x,y;
for(x=dly;x>0;x--)
for(y=124;y>0;y--);
}
代码待补充!