单片机中二位数码管的显示,怎样用c语言写一段从0到99的程序啊?
2013-08-01
展开全部
公阳,P0.2,P0.3 分别通过PNP管接个位,十位数码管公共端,P1口输出数据,都是低电平有效
#include <reg51.h>
sbit shi=P0^3; //十位公共极
sbit ge=P0^2; //个位公共极
#define Out P1 //数据输出端
unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //共阳
// 实际显示 0 1 2 3 4 5 6 7 8 9
//延时----------------------------
Delay(unsigned int t)
{
while(t--);
}
//主程序--------------------------
main()
{
unsigned char i=j=0;
while(1) //循环显示
{
for(i=0;i<200;i++)
{
Out=tab[j%10];
ge=0;
Delay(1000);
ge=1;
Out=tab[j/10];
shi=0;
Delay(1000);
shi=1;
}
j++;
}
}
#include <reg51.h>
sbit shi=P0^3; //十位公共极
sbit ge=P0^2; //个位公共极
#define Out P1 //数据输出端
unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //共阳
// 实际显示 0 1 2 3 4 5 6 7 8 9
//延时----------------------------
Delay(unsigned int t)
{
while(t--);
}
//主程序--------------------------
main()
{
unsigned char i=j=0;
while(1) //循环显示
{
for(i=0;i<200;i++)
{
Out=tab[j%10];
ge=0;
Delay(1000);
ge=1;
Out=tab[j/10];
shi=0;
Delay(1000);
shi=1;
}
j++;
}
}
推荐于2017-06-21
展开全部
对于单片机中数码管的显示问题。每位数码管由七个小的晶体管控制。你首先得确定该数码管的段码表。之后,根据段码表来确定。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
大致步骤为先确定数码管显示数字需要单片机如何驱动(一般单片机一个I/O口控制一个小灯管正负中的一级),然后一个循环递减应该能实现
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-01
展开全部
有的是七段,有的是八段,然后看是要共阴还是共阳,再根据码表写程序。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-01
展开全部
#include<regx51.h>
int i,j;
void zhongduanini(void)
{
TMOD=0x01;
ET0=1;
EA=1;
TR0=1;
TH0=0x3c;
TL0=0xaf;
}
void time_1s (void) interrupt 1
{
int ncount;
TH0=0x3c;
TL0=0xaf;
ncount++;
if(ncount<20) return;
{
ncount=0;
i++;
if(i==100) i=0;
}
}
char table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void main(void)
{
zhongduanini();
for(;;)
{
P2=table[i%10];
P3_1=0;
for(j=0;j<1200;j++);
P3_1=1;
P2=table[i/10];
P3_0=0;
for(j=0;j<1200;j++);
P3_0=1;
}
}
int i,j;
void zhongduanini(void)
{
TMOD=0x01;
ET0=1;
EA=1;
TR0=1;
TH0=0x3c;
TL0=0xaf;
}
void time_1s (void) interrupt 1
{
int ncount;
TH0=0x3c;
TL0=0xaf;
ncount++;
if(ncount<20) return;
{
ncount=0;
i++;
if(i==100) i=0;
}
}
char table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void main(void)
{
zhongduanini();
for(;;)
{
P2=table[i%10];
P3_1=0;
for(j=0;j<1200;j++);
P3_1=1;
P2=table[i/10];
P3_0=0;
for(j=0;j<1200;j++);
P3_0=1;
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询