173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

单片机共阴极数码管09程序

htxw 2023-03-16 资讯中心 22 ℃

单片机的PO口连数码管,现控制数码管循环显示0-9,循环显示间隔1s。数码管共阴极要画图,写程序。

把 数码管的 1-9 的 对应的码算出来就好了

例如:#include AT89X51.H

//数字0-9的字形码

unsigned char code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

unsigned char dispcount;

void delay02s(void);

void main(void)

{

P1_0=0;//选通第一位数码管

while(1)

{

for(dispcount=0;dispcount10;dispcount++)

{

P0=table[dispcount];

delay02s();

}

}

}

void delay02s(void)

{

unsigned char i,j,k;

for(i=20;i0;i--)

for(j=30;j0;j--)

for(k=248;k0;k--);

}

补充:单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机

51单片机控制数码管循环显示0-9程序

采用共阴极LED数码管,51单片机P1口输出数据:ORG 0000H

JMP MAIN

ORG 0100H

MAIN:MOV DPTR,#TAB

MOV R1,#00H

DISP:MOV A,R1

MOVC A,@A+DPTR

MOV P1,A

LCALL DELAY

INC R1

CJNE R1,#0AH,DISP

SJMP $

TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHDELAY: MOV R4,#2

DELAY100MS:MOV R5,#200

DELAY5MS: MOV R6,#250

LOOP: DJNZ R6,LOOP

DJNZ R5,DELAY5MS

DJNZ R4,DELAY100MS

RET

求单片机控制两个数码管显示0-9程序

/*模块低电平有效、外部中断0、1为低电平出发*/

#include "reg52.h"

void delay( char i)

{

unsigned char t;

while(i--)

{

for(t=0;t108;t++);

}

}

void INT0_ROUTING() interrupt 0//外部中断0子程序

{

P0=0xfe;//LED0点亮

while((P3|0xfb)==0xff);//等待外部中断0口(P3^2松开)

delay(10);//延时去抖动

P0=0xff;//LED0熄灭

}

void INT0_ROUTING() interrupt 2

{

P0=0xfd;//LED1点亮

while((P3|0xf7)==0xff);//等待外部中断1口(P3^3松开)

delay(10);//延时去抖动

P0=0xff;//LED1熄灭

}

void main()

{

EA=1;//中断总开关

EX0=1;//外部中断0开

EX1=1;//外部中断1开

/*默认低电平触发*/

while(1);//死循环 防止跑飞

}

51单片机在6位共阴极数码管上显示091813,用循环做。

#includereg52.h//要一个一个显示循环的就把时间调的长一点

#define uint unsigned int

#define uchar unsigned char

void delay(uint z);

uchar code table[]={0x3f,

0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,0x39,

0x5e,0x79,0x71,0x76,0x79,0x38,0x3f,0};

sbit dula=P2^6;

sbit wela=P2^7;

uchar sw,ww,qq,bai,shi,ge,aa;

unsigned long int temp;

void shuma(uchar sw,uchar ww,uchar qq,uchar bai,uchar shi,uchar ge);

void init();

void main()

{

//init();//初始化子程序

temp= 91813;

sw=temp/100000;

ww=temp%100000/10000;

qq=temp%10000/1000;

bai=temp%1000/100;

shi=temp%100/10;

ge=temp%10;

while(1)

{

shuma(sw,ww,qq,bai,shi,ge);

}

}

void delay(uint z)

{

uint x,y;

for(x=110;x0;x--)

for(y=z;y0;y--);

}

void shuma(uchar sw,uchar ww,uchar qq,uchar bai,uchar shi,uchar ge)

{

dula=1;

P0=table[sw];

dula=0;

P0=0xff;

wela=1;

P0=0xfe;

wela=0;

delay(1);//要一个一个显示循环的就把时间调的长一点 1改成 200

dula=1;

P0=table[ww];

dula=0;

P0=0xff;

wela=1;

P0=0xfd;

wela=0;

delay(1);

dula=1;

P0=table[qq];

dula=0;

P0=0xff;

wela=1;

P0=0xfb;

wela=0;

delay(1);

dula=1;

P0=table[bai];

dula=0;//送百位

P0=0xff;//消隐

wela=1;

P0=0xf7;//位选通百位数

delay(1);

dula=1;

P0=table[shi];

dula=0;

P0=0xff;

wela=1;

P0=0xef;

wela=0;

delay(1);

dula=1;

P0=table[ge];

dula=0;

P0=0xef;

wela=1;

P0=0xdf;

wela=0;

delay(1);

}

51单片机 编写4个LED数码管同时循环显示0—9的数字 的程序。

#includereg51.h

#define uchar unsigned char

uchar code ledtab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};//0-9

uchar time,scanled,tiao;

uchar disdat[6]="201803";

void delay(unsigned int x)

{

unsigned int i,j;

for(i=0;ix;i++)

for(j=0;j120;j++);

}

void t0isr() interrupt 1 //秒计时

{

TH0=0x3c;

TL0=0xb0;

time++;

if(time==20)

{

time=0;

tiao++;

tiao%=10;

}

}

void t1isr() interrupt 3 //显示

{

TH1=0xec;

TL1=0x78;

P2=1scanled;

P0=~ledtab[tiao];

scanled++;

scanled%=4;

}

main()

{

TMOD=0x11;

TH0=0x3c;

TL0=0xb0;

TH1=0xec;

TL1=0x78;

TR1=1;

TR0=1;

ET0=1;

ET1=1;

EA=1;

while(1);

}

采用共阴极接法,每隔1s在P2口显示出0~9数字,并循环。

希望可以帮到你哈,望采纳哦

//用LED数码显示器循环显示数字0~9

#includereg52.h // 包含51单片机寄存器定义的头文件

/**************************************************

函数功能:延时函数,延时一段时间

***************************************************/

void delay(void)

{

unsigned char i,j;

for(i=0;i255;i++)

for(j=0;j255;j++)

;

}

/**************************************************

函数功能:主函数

***************************************************/

void main(void)

{

unsigned char i;

unsigned char code Tab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

//数码管显示0~9的段码表,程序运行中当数组值不发生变化时,

//前面加关键字code ,可以大大节约单片机的存储空间

P2=0x7f; //P2.7引脚输出低电平,数码显示器第7位接通电源工作

while(1) //无限循环

{

for(i=0;i10;i++)

{

P0=Tab[i]; //让P0口输出数字的段码92H

delay(); //调用延时函数

}

}

}

单片机共阴极数码管09程序的介绍到此就结束了,感谢您耐心阅读,谢谢。

本文标签:单片机共阴极数码管09程序

<