数码管应用digital_pile


#include "reg52.h"
#include "digital_pile.h"

void main(){
    //P0 = 0x00;
    //P2 = 0xff;
    static_pile(6);//静态显示函数,主函数调用子函数
    //digital_pile();// 动态显示函数
}                                                                                  







/*
数码管的显示输出 电路:一代版黄盒子,开发板中内置P0口接共阴数码管的段选端 ,P1口的0123分别接数码管的位选端 */ #include <reg52.h> #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

 

原文地址:https://www.cnblogs.com/kinson/p/6841662.html