我不吃青菜哒吧 关注:5贴子:427
  • 1回复贴,共1

爱学习的好孩子

只看楼主收藏回复

/程序:ex4_8.c
//功能:采用二维数组实现在8×8 LED点阵式电子广告牌上循环显示数字0~9
#include "reg51.h" //包含头文件reg51.h,定义了51单片机的专用寄存器
void delay(unsigned int i); //延时函数声明
void main() //主函数
{
unsigned char code led[10][8]={{0x18,0x24,0x24,0x24,0x24,0x24,0x24,0x18},//0
{0x00,0x18,0x1c,0x18,0x18,0x18,0x18,0x18},//1
{0x00,0x1e,0x30,0x30,0x1c,0x06,0x06,0x3e},//2
{0x00,0x1e,0x30,0x30,0x1c,0x30,0x30,0x1e},//3
{0x00,0x30,0x38,0x34,0x32,0x3e,0x30,0x30},//4
{0x00,0x1e,0x02,0x1e,0x30,0x30,0x30,0x1e},//5
{0x00,0x1c,0x06,0x1e,0x36,0x36,0x36,0x1c},//6
{0x00,0x3f,0x30,0x18,0x18,0x0c,0x0c,0x0c},//7
{0x00,0x1c,0x36,0x36,0x1c,0x36,0x36,0x1c}, //8
{0x00,0x1c,0x36,0x36,0x36,0x3c,0x30,0x1c}};//9
//定义二维数组
unsigned char w;
unsigned int j,k,m;
while(1)
{
for(k=0;k<10;k++) //第一维下标取值范围为0~9
{
for(m=0;m<200;m++){ //每个字符扫描显示200次,控制每个字符显示时间
w=0x01;
for(j=0;j<8;j++){ //第二维下标取值范围为0~7
P1=w;//行控制
P0=~led[k][j]; //将指定数组元素赋值给P0口,显示码
delay(100);
w<<=1;
}
}
}
}
}
//函数名:delay
//函数功能:实现软件延时
//形式参数:无符号整型变量i,控制空循环的循环次数
//返回值:无
void delay(unsigned int i) //延时函数
{
unsigned int k;


IP属地:广东来自Android客户端1楼2018-04-13 11:15回复
    IP属地:广东来自Android客户端2楼2018-04-13 11:17
    回复