#include 'reg52.h'
#include 'digital_pile.h'
void main(){
//P0 = 0x00;
//P2 = 0xff;
static_pile(6);//静态显示函数,主函数调用子函数
//digital_pile();// 动态显示函数
}
/*
数码管的显示输出
电路:一代版黄盒子,开发板中内置P0口接共阴数码管的段选端
,P1口的0123分别接数码管的位选端
*/
#include
#include 'sys.h'
#include 'digital_pile.h'
int duan[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//定义数字数组0~9
//分别显示的数字是 0 1 2 3 4 5 6 7 8 9
int wei[]={0x01,0x02,0x04,0x08};
//分别选择亮的数码管 1 2 3 4 共阴则取反
//静态数码管显示
void static_pile(unsigned char number)//含参数定义
{
if(number <= 9)
P0 = ~duan[number];//~是取反的意思,此代码合适共阴数码管,如用共阳数码管则要取反
P3 = duan[number];//P3端口要接共阴数码管
}
//动态数码管显示
void digital_pile()
{
int i;
while(1) //循环嵌套
{
for(i=0;i<4;i++)
{
P1 = wei[i]; //选择某个数码管
P2 = duan[i]; //选择的数码管显示
delays(50);
}
}
}
//-----------------------------------------------------------------------------------
#ifndef _DIGITAL_H_
#define _DIGITAL_H_
void static_pile(unsigned char number);//静态显示函数
void digital_pile(); //动态显示函数
#endif
相关文章