四段共阴数码管从00到99的按键C语言程序

作者&投稿:孔金 (若有异议请与网页底部的电邮联系)
关于数码管00-99的动态循环显示的问题~

楼主圈出的部分,是中断函数。

中断函数,是由硬件来调用的,不需要软件去调用它。

每当硬件,满足了一定条件,该函数,就自动执行。

#include
int main()
{
srand(0);//随机种子
for ( int i = 1; i < 101; ++i)
{
int iRandData = rand();//随机数
float fDestData = (float)iRandData/RAND_MAX * 20;//随机数除以最大随机数(0~1),乘以20(0~20)
char acTest[6] = { 0 };
_snprintf(acTest,5,"%f",fDestData);//格式化
std::cout << acTest <<"";
if ( i%5 == 0 )
{
std::cout<< std::endl;
}
}

system("pause");
return 1;
}




也可以这样:
#include
int main()
{
srand(0);//随机种子
for ( int i = 1; i < 101; ++i)
{
int iRandData = rand();//随机数
float fDestData = (float)iRandData/RAND_MAX * 20;//随机数除以最大随机数(0~1),乘以20(0~20)

if ( fDestData < 10 )
{
printf("%.3f",fDestData);
}
else
{
printf("%.2f",fDestData);
}

if ( i%5 == 0 )
{
std::cout<< std::endl;
}
}

system("pause");
return 1;
}

不知道你要不要用按键,我编了下面一个程序,Proteus仿真通过了,循环显示从00-99

#include <reg51.h>
#define uchar unsigned char
sbit wei1=P2^0;
sbit wei2=P2^1;
sbit wei3=P2^2;
sbit wei4=P2^3;

uchar code dulatab[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f}; //数字编码0-9
uchar code welatab[]={0xf7,0xfb,0xfd,0xfe};//位控制字

void delay(uchar time)
{
uchar i,j;
for(i=0;i<time;i++)
{
for(j=0;j<110;j++)
;
}
}

void writeled(uchar num,uchar addr)
{
//关显示
P2=0xff;
//送数据
P0=dulatab[num];
//开显示
P2=welatab[addr];
delay(4);
}

void display(uchar num)
{
uchar x,y;
x=num/10;
y=num%10;
writeled(x,1);
writeled(y,0);

}
void main()
{
uchar number,i;
while(1)
{
number++;
if(number==100)
{
number=0;
}
i=80;
while(i--)
{
display(number);
}
}
}

#include<reg52.h>
sbit wei1=P3^0;
sbit wei2=P3^1;
unsigned char code DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 显示段码值0~9
unsigned char Data[8]; //存储显示值的全局变量
void Delay(unsigned int t); //函数声明
main()
{
unsigned char num=0;
unsigned int j;
while(1)
{
Data[1]=DuanMa[num/10];
Data[0]=DuanMa[num%10];
num++;
if(num==100) //用于显示0~99
num=0;
for(j=0;j<5;j++)
{ wei1=0;
wei2=1;
P2=Data[1];
Delay(5000);
wei1=1;
wei2=0;
P2=Data[0];
Delay(5000);
}
}
}
void Delay(unsigned int t)
{
while(--t);
}
用的共阴极数码管,p2口接数码管数据输入端,p3.0和p3.1接使能端

还是自己慢慢编吧,不要什么都要别人给,是给自己学知识呢

题目的要求,没有说清楚。


共阴极共阳极七段数码管 从0至F
将多只LED的阴极连在一起即为共阴式,而将多只LED的阳极连在一起即为共阳式。这类数码管可以分为共阳极与共阴极两种,共阳极就是把所有LED的阳极连接到共同接点com,而每个LED的阴极分别为a,b,c,d,e,f,g及dp(小数点)。共阴极则是把所有LED的阴极连接到共同接点com,而每个LED的阳极分别...

数码管为共阴极数码管,数码管前两位显示一个秒表,从00到59之间以1s速 ...
include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit com1=P3^7; \/\/位定义共阴极接口sbit com2=P3^6;sbit com3=P3^5;sbit com4=P3^4;sbit luck1=P2^0; \/\/位定义 按键接口sbit luck2=P2^1;sbit luck3=P2^2;sbit luck4=P2^3;void delay(uint z);void luck...

共阴极共阳极七段数码管 从0至F
0x40, \/\/"-"0x00, \/\/熄灭 0x00 \/\/自定义 };

共阴极数码管的段编码
显示时,都从段选线送入字符编码,而选中哪个位选线,那个数码管便会被点亮。数码管的8段,对应一个字节的8位,a对应最低位,dp对应最高位。所以如果想让数码管显示数字0,那么共阴数码管的字符编码为00111111,即0x3f;共阳数码管的字符编码为11000000,即0xc0。可以看出两个编码的各位正好相反。...

如何确定数码管段码表
确定数码管段码表方法如下:共阴:0、0x3f 1、 0x06 2、0x5b 3、0x4f 4、0x66 5、0x6d 6、0x7d 7、0x07 8、0x7f 9、0x6f A、0x77 B、0x7c C、0x39 D、0x5e E、0x79 F、0x71 无显示:0x00 只显示一点:0x80 共阳:只需和共阴互补即可,比如:共阳0为:0xc0 共阴0为:0x3f...

共阴极数码管0到99汇编语言程序怎么编
ORG 000BH LJMP T0ISR ORG 0030H MAIN:MOV TMOD,#01H MOV TH0,#HIGH(65536-10000)MOV TL0,#LOW(65536-10000)SETB ET0 SETB EA MOV R0,#9 MOV R1,#9 MOV R2,#0 MOV R3,#9 CLR 00H CLR 01H LOOP:JB P1.0,LP01 JNB P1.0,SETB TR0 CLR 01H SJMP LOOP0 LP01:JB P1.1,...

"数码管00~99的循环显示,显示间隔100ms"
网友可以看到,共阴数码管的硬件更简单,所以在批量生产时,硬件开销小,节省PCB面积,减少焊接工作量,降低综合成本,所以采用共阴数码管更有利于批量生产,现在销售的试验板都是采用共阴数码管了。以下是用AT89C51实验板的两位数码管显示00~99依次循环的汇编语言程序:a_bit equ 20h ;数码管个位数存放...

8位共阳数码管显示0的代码是
共阴数码管的字符编码为00111111。想让数码管显示数字0,那么共阴数码管的字符编码为00111111 , 即Ox3f;共阳数码管的字符编码为11000000,即Oxco。

用单片机AT89C51驱动两位数码管显示00--99依次循环程序代码
以下是用单片机AT89C51驱动两位数码管显示00--99循环的程序代码片段:程序开始于0000h地址,通过计数器temp(22h)控制数码管从00到99的循环显示。计数器初始化为0,然后调用子程序display进行显示。每当计数器加1并判断是否达到100后,若未满则返回stlop继续循环,满100则清零重新开始。display子程序中,先...

七段数码管00到60显示输出程序汇编语言
ORG 0000H JMP BEGIN ORG 000BH LJMP T0INT ORG 001BH LJMP T1INTLEDD EQU 30HLEDC EQU 36HSECC EQU 37HTCNT EQU 3AH ORG 0030H;---TABLE: ; 共阴极数码管显示代码表 DB 0FCH ;"0" 00H DB 60H ;"1" 01H DB 0DAH ;"2" 02H DB 0F2H ;"3" 03H ...

龙南县13158565623: 51单片机c语言设计,按键控制数码管,依次按下显示0到9循环 -
晏蓉开瑞: #include<reg51.h> sbit k1=P1^0; #define uint16 unsigned int #define uchar unsigned char uchar code shuzu[ ]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void delay() { uint16 i=1000;while(i--); } void main() { uchar n ; P2=0xfe; P1=0xff; ...

龙南县13158565623: 就是按钮按一下,数码管从0开始加1,加到9,用c语言单片机编写并且要用计数器的方法编写. -
晏蓉开瑞: #include<reg52.h> #define uchar unsigned char sbit P32=P3^2; uchar num[10]={0xc0,0x5b}; /* 具体值记不得了,可以百度,就是0-9,这里就写了俩还不一定是对的,就那意思 */void delay50us(void) {uchar i,j; for(i=0;i<100;i++){for(j=0;j<19;...

龙南县13158565623: C51单片机,一组共阴极数码管,带按钮开关的,按开关开始启动,从00开始数,数到99归零再重来 -
晏蓉开瑞: 用中断函数,选择电平触发模式,按下键盘为低电平执行中断子程序(num=0);其他你只要用定时计数器可以轻松实现

龙南县13158565623: 用单片机c语言写一个数码管从00到99的数字显示,要用到锁存器!!!求大神指教 -
晏蓉开瑞: /*******************************************************************************************************//*******************************************************************************************************/#include //通用89C52头文件 sbit AA=P3^4;//数码管显示用IO端...

龙南县13158565623: 用C语言51单片机编写数码管从00到99的循环程序 -
晏蓉开瑞: {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;} }

龙南县13158565623: 两位一体数码管0到99的c语言编程 -
晏蓉开瑞: #includesbit wei1=P3^0; sbit wei2=P3^1; unsigned char code DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 显示段码值0~9 unsigned char Data[8]; //存储显示值的全局变量 void Delay(unsigned int t); //函数声明 main() ...

龙南县13158565623: 怎么用C语言程序设计按键控制数码管变成不同的亮度,且用上中断 -
晏蓉开瑞: 你这个需要 两位的数码管 因为到99 首先判断按键 是否 有键按下 然后 数值 +1 按一下加一次同理设置另一个按键 -1 例如 if(按键1 == 0) { 延时;if(按键1 == 0) { 数值++;if(数值 == 99) 数值 =0 } }

龙南县13158565623: 求两个按键控制数码管数字加减C语言程序 -
晏蓉开瑞: void main (void) { unsigned char num=0; KEY_ADD=1; //按键输入端口电平置高 KEY_DEC=1; while (1) //主循环{ if(!KEY_ADD) //如果检测到低电平,说明按键按下{ DelayMs(10); //延时去抖,一般10-20msif(!KEY_ADD) //再次确认按键...

龙南县13158565623: 要实现两位数码管自加到99代码怎么写 -
晏蓉开瑞: //用两个数码管显示0到99.十位数为0的时候,显示为空白.//用两个按键控制数值的加减,按一次K1数字加1,按一次K2数字减1,数值的范围是从0到99.//再用一个接近开关控制数字的减小,接近开关感应一次数字减1,减到0停止.// C语言...

龙南县13158565623: 跪求 共阳数码管4位8段动态显示.0 - 9999 从0加到9999.每秒加1. 用c写程序.单片机加数码管 给50分 -
晏蓉开瑞: /这是定时器方式写的,0~9999每秒加1#include unsigned char g,s,b,q,;unsigned char code duan[...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网