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单片机 8x8LED点阵屏循环显示数字0~9 -> 正文阅读

[嵌入式]51单片机 8x8LED点阵屏循环显示数字0~9

在8x8点阵屏上循环显示数字0~9

使用的是普中科技的开发板,一个点阵显示模块是由8x8共64个LED按照共阴或共阳的连接方式组成。

每行的8个LED的负极连接一起,构成8根行线,每列的8个LED的正极连接一起,构成8根列线,就是共阴极接法。

每行的8个LED的正极连接一起,构成8根行线,每列的8个LED的负极连接一起,构成8根列线,就是共阳极接法。

若要点亮8x8点阵屏给每个LED连接到IO口是不够的,所以要使用到74Hc595芯片,只需要连接到AT89C52芯片上3个IO口即可点亮8x8LED点阵屏。

代码

循环数字0~9

#include <reg51.h>
#include <intrins.h>

typedef unsigned char u8;
typedef unsigned int u16;

sbit SRCLK=P3^6;
sbit RCLK=P3^5;
sbit SER=P3^4;

u8 code ledduan[][8]={{0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00},     //0
                      {0x00,0x00,0x00,0x21,0x7f,0x01,0x00,0x00},     //1
                      {0x00,0x00,0x27,0x45,0x45,0x45,0x39,0x00},     //2
	                  {0x00,0x00,0x2a,0x49,0x49,0x49,0x36,0x00},     //3
                      {0x00,0x00,0x0c,0x14,0x24,0x7f,0x04,0x00},     //4
                      {0x00,0x00,0x72,0x51,0x51,0x51,0x4e,0x00},     //5
                      {0x00,0x00,0x3e,0x49,0x49,0x49,0x26,0x00},     //6
                      {0x00,0x00,0x40,0x40,0x4f,0x50,0x60,0x00},     //7
                      {0x00,0x00,0x36,0x49,0x49,0x49,0x36,0x00},     //8
                      {0x00,0x00,0x32,0x49,0x49,0x49,0x3e,0x00},};   //9
 
u8 ledwei[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; 


void delay(u16 i)
{
	while(i--);
}

void Hc595SendByte(u8 dat)
{
   u8 i;
   SRCLK=0;
	 RCLK=0;
   for(i=0;i<8;i++)
   {
		SER=dat>>7;
		dat<<=1;
		 
		SRCLK=1;
    _nop_();
		_nop_();
		SRCLK=0;
   }
	 RCLK=1;
	 _nop_();
	 _nop_();
	 RCLK=0; 
}

int main()
{
	u16 i,j,k;
	while(1)
	{                                                
		for(j=0;j<80;j++)                           //控制数字到下一个数字的速度
		{
			for(i=0;i<8;i++)
			{
				P0=ledwei[i];
				Hc595SendByte(ledduan[k][i]);
				delay(50);				
				Hc595SendByte(0x00);
			}
		}
		k++;                                       //ldeduan的数组++
	  if(k>=10)                                    //当k>=10,
		{
			k=0;                                   //k=0
		}
	}
}

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-08-10 13:34:55  更:2021-08-10 13:37:06 
 
开发: 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年5日历 -2024/5/13 21:40:35-

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