51单片机数码管动态显示
程序员文章站
2022-06-08 20:59:29
...
1、设计要求
在一个8位8段数码管上动态显示“01234567”、P2口用于数码管的位选通控制,P1用于段码输出
2、硬件设计
用proteus Isis 仿真,选择元器件,AT89C51、7SEG-MPX8-CC-BLUE,连接好电路图
3、程序设计
源程序:
/********************必要变量定义********************/
#include <reg52.h>
#include <intrins.h>
typedef unsigned char u8;
typedef unsigned int u16;
u8 code table[16] = {0xfc,0x60 ,0xda ,0xf2 ,0x66 ,0xb6 ,0xbe ,0xe0 ,
0xfe ,0xf6 ,0xee ,0x3e ,0x9c ,0x7a ,0x9e ,0x8e }; //共阴数码管编码表
u8 code address[] = {0xfe ,0xfd ,0xfb ,0xf7 ,0xef ,0xdf,0xbf ,0x7f};//数码管位选择编码表
/***********************延时函数***********************/
void delay(u16 i)
{
while(i--);
}
/**********************主程序************************/
void main()
{
u8 m = 0;
while(1)
{
if(m == 8) m = 0;
P2 = address[m];
P1 = table[m++];
delay(500);
}
}
上一篇: 【51单片机】数码管的静态显示和动态显示
下一篇: python实现石头剪刀布程序