就是从0-9数码管显示
#include<reg51.h> //定义51寄存器头文件
#define uchar unsigned char //重新定义字符型数据
#define SEG P0
sbit dula=P2^6; //573-1锁存器控制端定义
sbit wela=P2^7; //573-2锁存器控制端定义
uchar TAB[10]={0x3f,0x66,0x5b,0x4f,0x66, //定义数字0~4
0x6d,0x3c,0x07,0x7f,0x67}; //定义数字5~9
void delay(int); //声明延迟函数delay
void display(); //声明显示函数display
main() //开始执行主函数
{
wela=0; //初始化573-2控制端
SEG=0x1f; //初始化P0端口,片选数码管
wela=1; //打开573-2控制端
wela=0; //关闭573-2控制端
while(1) //无限循环
{
display(); //执行display函数
}
}
void display() //定义display函数
{
uchar i; //初始化无符号字符型数据i
for(i=0;i<10;i++) //循环10次计数
{
dula=0; //初始化573-1控制端
SEG=TAB; //初始化P0端口,依次显示数据
dula=1; //打开573-1控制端
dula=0; //关闭573-1控制端
delay(500); //延迟500*1ms=0.5ms
}
}
void delay(int x) //定义延迟函数delay
{
uchar i,j; //初始化无符号字符型数据ij
for(i=0;i<x;i++) //计数x*1ms
for(j=0;j<120;j++); //计数120次,循环1ms
}
下面是硬件连接
C:\Users\Administrator.LBWIN7\Desktop |