⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 led7.c

📁 51单片机C语言常用模块与综合系统设计实例精讲
💻 C
字号:
/***************************************************
7段数码管静态显示程序
***************************************************/
#include <reg52.h>
#include <stdio.h>
#include <stdlib.h>
#include <absacc.h>
#include <ctype.h>                   
#include <string.h>
#include <stddef.h>
#include <intrins.h>
#include <absacc.h>
#include <stdarg.h>

/*  4个7段数码管锁存器地址     */
#define LED1ADDR 0x8000
#define LED2ADDR 0x8100
#define LED3ADDR 0x8200
#define LED4ADDR 0x8300

// 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
/*  0-9 a-f 的7段数码管显示编码  */
unsigned char ledcode[16]={0xC0,0xF3,0x89,0xA1,0xB2,0xA4,0x84,0xF1,0x80,0xA0,0x90,0x86,0xCC,0x83,0x8C,0x9C};
/*  存放要显示的数字值 */
unsigned char val[4];//


/*  写锁存器的子程序  */
void wraddr(unsigned int addr,unsigned char d)
{	unsigned char xdata *pa;

	pa=(unsigned char  xdata *)addr;
	*pa=d;
}
/*  显示子程序  */
void display(void)
{	unsigned int addr[4]={LED1ADDR,LED2ADDR,LED3ADDR,LED4ADDR};
	int i;

	for(i=0;i<4;i++)
	{	if((val[i]>=0)&&(val[i]<=15))
		{	wraddr(addr[i],ledcode[val[i]]);
		}
		else
		{	wraddr(addr[i],0xff);
		}
	}
}
/*  初始化子程序  */
void init(void)
{	wraddr(LED1ADDR,0XFF);
	wraddr(LED2ADDR,0XFF);
	wraddr(LED3ADDR,0XFF);
	wraddr(LED4ADDR,0XFF);
//输入要显示的数值
	val[0]=1;
	val[1]=2;
	val[2]=3;
	val[3]=4;
}
/* 主程序入口  */
int main(void)
{	init();

	while(1)
	{	display();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -