您的当前位置:首页正文

数码管动态显示,显示从1到9,每一位显示一个数字(单片机)

2023-02-08 来源:九壹网
数码管动态显⽰,显⽰从1到9,每⼀位显⽰⼀个数字(单⽚

机)

//object: 动态显⽰数码管,从1显⽰到9//writer:mike//time: 2020,11,14#include

sbit wei = P2^7;sbit du = P2^6;

//数组的类型指的是每⼀个元素的类型, code则指定存储在代码区 ,⽽⾮code 指存户在内存中。unsigned int code data1[10] = {0x3F,//00x06,//10x5B,//20x4F,//30x66,//40x6D,//50x7D,//60x07,//70x7F,//80x6F//9};

void delay(unsigned int);void main(){

while(1) {

//⾸先打开位选 wei = 1;

P0 = 0xfe; //让第⼀位显⽰ //关闭位选 wei = 0; //打开段选 du = 1;

//显⽰数字1 P0 = data1[1]; //关闭段选 du = 0;

//点亮第⼀位之后,延时⼀段时间 delay(1);

//针对第⼆位数码管 //打开位选 wei = 1; //设置位选 P0 = 0xfd; //关闭位选 wei = 0;

//打开段选 du = 1; //设置段选 P0 = data1[2]; //关闭段选 du = 0; delay(1);

//针对第三位数码管 //打开位选 wei = 1; //设置位选 P0 = 0xfb; //关闭位选 wei = 0;

//打开段选 du = 1; //设置段选 P0 = data1[3]; //关闭段选 du = 0; delay(1);

//针对第四位数码管 //打开位选 wei = 1;

//设置位选 P0 = 0xf7; //关闭位选 wei = 0;

//打开段选 du = 1; //设置段选 P0 = data1[4]; //关闭段选 du = 0; delay(1);

//针对第五位数码管 //打开位选 wei = 1; //设置位选 P0 = 0xef; //关闭位选 wei = 0;

//打开段选 du = 1; //设置段选 P0 = data1[5]; //关闭段选 du = 0; delay(1);

//针对第六位数码管 //打开位选 wei = 1; //设置位选 P0 = 0xdf; //关闭位选 wei = 0;

//打开段选 du = 1; //设置段选 P0 = data1[6]; //关闭段选 du = 0; delay(1);

//针对第七位数码管 //打开位选 wei = 1; //设置位选 P0 = 0xbf; //关闭位选 wei = 0;

//打开段选 du = 1; //设置段选 P0 = data1[7]; //关闭段选 du = 0; delay(1);

//针对第⼋位数码管 //打开位选 wei = 1; //设置位选 P0 = 0x7f; //关闭位选 wei = 0;

//打开段选 du = 1; //设置段选 P0 = data1[8]; //关闭段选 du = 0; delay(1);

/* //针对第九位数码管 //打开位选 wei = 1; //设置位选 wei = 0xff; //关闭位选 wei = 0;

//打开段选 du = 1; //设置段选 du = data1[9]; //关闭段选 du = 0;

*/ }}

void delay(unsigned int x){

unsigned a, b; for(a=x;a>0;a--) {

for(b=120;b>0;b--); }}

因篇幅问题不能全部显示,请点此查看更多更全内容