本文目录一览:
- 1、用单片机c语言 用七个独立式按键控制共阴极的数码管静态显示0~7七个数字
- 2、51单片机,8位共阴极数码管动态显示12位学号,按键调整走动速度,C语言的
- 3、单片机数码管共阴极程序
- 4、51单片机的共阴数码管怎么显示数字(c语言)知道
用单片机c语言 用七个独立式按键控制共阴极的数码管静态显示0~7七个数字
今天早上刚写的,这是共阳极数码管的,数组里的结合自己的接口对应更改,希望对大家有用
#include at89x51.h
unsigned char code table[]={0x82,0xe7,0x4a,0x46,0x27,0x16,0x12,0xc7,0x02,0x06};
sbit R1=P1^0;
void main()
{
R1=0;
while(1)
{
switch(P2)
{
case 0xfe:P0=table[0];break;
case 0xfd:P0=table[1];break;
case 0xfb:P0=table[2];break;
case 0xf7:P0=table[3];break;
case 0xef:P0=table[4];break;
case 0xdf:P0=table[5];break;
case 0xbf:P0=table[6];break;
case 0x7f:P0=table[7];break;
default:break;
}
}
}
51单片机,8位共阴极数码管动态显示12位学号,按键调整走动速度,C语言的
#include reg52.h
#include intrins.h
sbit k_add = P3^1;
sbit k_sub = P3^4;
unsigned char code SEG7[] = {
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0xff};
unsigned char DISP_BUFF[] = {
10, 10, 10, 10, 10, 10, 10, 10,
1, 3, 9, 2, 5, 8, 0, 7, 4, 6, 3, 2,
10, 10, 10, 10, 10, 10, 10, 10};
unsigned char j = 0, k = 1;
void DelayMS(unsigned int x)
{
unsigned char i;
while(x--) for(i = 200; i 0; i--);
}
void display(unsigned char x)
{
unsigned char i, w = 128;
for(i = 0; i 8; i++) {
P0 = SEG7[DISP_BUFF[i + k]];
P2 = w; DelayMS(1); P2 = 0;
w = _cror_(w, 1);
}
j++;
if (j x) {
j = 0;
k++; if (k == 20) k = 0;
}
}
void main()
{
unsigned char d = 30;
while(1) {
if (!k_add) {
display(d);
if (!k_add) {
d += 2; if (d 50) d = 50;
while (!k_add) display(d);
}
}
if (!k_sub) {
display(d);
if (!k_sub) {
d -= 2; if (d 10) d = 10;
while (!k_sub) display(d);
}
}
display(d);
P1 = d;
}
}
单片机数码管共阴极程序
首先你要告诉别人是什么单片机 89C51 PIC?是C语音的还是汇编的?
51单片机的共阴数码管怎么显示数字(c语言)知道
共阴极数码管也就是说,当控制信号为1时该段LED点亮,8段数码管的数字0~9定义为:
3FH,06H,5BH,4FH,66H
;01234
6DH,7DH,07H,7FH,6fh
;56789
以下为简易8路抢答器的例程:
#includereg51.h
#define
uchar
unsigned
char
uchar
table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};
sbit
rstkey=P2^2;
sbit
speaker=P2^0;
void
delay()//延时约400毫秒
{
uchar
i,j;
for(i=0;i200;i++)
for(j=0;j250;j++);
}
main()
{
uchar
i,key;
P2=0xff;
while(1)
{
i=0;
P1=table[i];
while(1)
{
key=P3;
if(key!=0)break;
}
switch(key)
{
case
0x01:i=1;break;
case
0x02:i=2;break;
case
0x04:i=3;break;
case
0x08:i=4;break;
case
0x10:i=5;break;
case
0x20:i=6;break;
case
0x40:i=7;break;
case
0x80:i=8;break;
default:break;
}
P1=table[i];//显示按下抢答器的号
P0=key;//显示按下键号的LED
while(1)
{
if(rstkey==0)break;//主持人按下复位键则重新开始
speaker=~speaker;//否则蜂鸣器报警
delay();
}
}
}