导航:首页 > 操作系统 > 单片机数码管显示c程序

单片机数码管显示c程序

发布时间:2022-11-15 01:04:33

A. 求单片机0~99共阳数码数码管显示用C语言编写的程序谢谢!

#include<reg52.h>

#defineucharunsignedchar

#defineuintunsignedint

ucharnum,count,ge,shi;

voiddelayxms(uint);

voiddisplay(uchar,uchar);

ucharcodetable[]={0xc0,0xf9,0xa4,0xb0,

0x99,0x92,0x82,0xf8,

0x80,0x98};

voidmain()

{

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

EA=1;

ET0=1;

TR0=1;

while(1)

{

display(shi,ge);

}

}

voidT0_time()interrupt1

{

TH0=(65536-45872)/256;

TL0=(65536-45872)%256;

count++;

if(count==5)

{

count=0;

num++;

if(num==100)

num=0;

shi=num/10;

ge=num%10;

}

}

voiddelayxms(uintz)

{

uintx,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

voiddisplay(ucharshi,ucharge)

{

P2=0x02;

P0=table[ge];

delayxms(20);

P2=0x01;

P0=table[shi];

delayxms(20);

}

B. 51单片机的共阴数码管怎么显示数字(c语言)

要让51单片机共阴数码管显示数字,只需要将单片机的P2端口输出数字对应的段码即可。

以显示数字“0”为例,c语言程序如下:

#include<reg52.h>

#define uchar unsigned char

#define uint unsigned int

//数码管的段码编码

Uchar table[10] ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

void main(){//主函数

P0 = table[0];//显示0,大家可以修改里面的数据。

while(1);//程序不再执行其他步骤;

}

(2)单片机数码管显示c程序扩展阅读:

数字0-9的对应段码:

数字0 0x3f

数字1 0x06

数字2 0x5b

数字3 0x4f

数字4 0x66

数字5 0x6d

数字6 0x7d

数字7 0x07

数字8 0x7f

数字9 0x6f

C. 关于单片机数码管的C语言代码,高分求详解,先谢过

一、LedNumVal%10000/1000
%是模,取余数的意思,%10000,得到的数最大是四位数。
/是整除的意思不带小数,如8/3=2
一个小于10000的数,整除1000结果一定是0到9之间的一个数
二、Disp_Tab
以及LedOut,
dispbit都是数组,根据相应的数可得到对应的字符数据,达到位选的功能。

D. 运用51单片机实现4位8段LED数码管的动态数字显示,写出C语言程序

#include<reg51.h>
#define uchar unsigned char;
uchar distab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}; //0到f
uchar number,nn=0;
uchar dat[]={2,0,1,2,1,1,4,5,8,2};
void t0isr() interrupt 1
{
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
number++;
number%=4;
switch(number)
{
case 0:P2=0x08;P0=distab[nn];
break;
case 1:P2=0x04;P0=distab[nn+1];
break;
case 2:P2=0x02;P0=distab[nn+2];
break;
case 3:P2=0x01;P0=distab[nn+3];
break;
default:break;
}
nn++;
nn%=7;
}
main()
{
TMOD=0x01;
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
TR0=1;
ET0=1;
EA=1;
while(1);
}

E. 求单片机实验七段数码管显示实验程序

/* ch03-3-4.c - 七段LED数码管实验程序 */
//==声明区=================================================
#include<reg51.h> //定义8051寄存器的头文件,P2-17~19
#define SEG P0 //定义七段LED数码管接至Port 0
/*声明七段LED数码管驱动信号数组(共阳)*/
char code TAB[10]={0xc0,0xf9,0xa4,0xb0,0x99, //数字0-4
0x92,0x83,0xf8,0x80,0x98}; //数字5-9
void delay(int); //声明延迟函数
//==主程序==========================================
main() //主程序开始
{ unsigned char i; //声明无符号变量i
while(1) //无穷循环,程序一直跑
for(i=0;i<10;i++) //显示0-9,共10次
{ SEG=TAB[i]; //显示数字
delay(500); //延迟500×1m=0.5秒
} //for循环结束
} //主程序结束
//==子程序==========================================
/* 延迟函数,延迟约x×1ms */
void delay (int x) //延迟函数开始
{ int i,j; //声明整形变量i,j
for (i=0;i<x;i++) //计数x次,延迟x×1ms
for (j=0;j<160;j++); //计数120次,延迟1ms
} //延迟函数结束

F. 单片机led显示c程序

电路图如下:

#include<reg52.h>

#defineuintunsignedint

#defineucharunsignedchar

sbitan=P2^6;

sbitwei=P2^7;

ucharcodedigit[6]={0xf9,0xa4,0xb0,0x99,0x92,0X82};

voiddelay(xms)

{

uinti,j;

for(i=xms;i>0;i--)

for(j=110;j>0;j--);

}

voidmain()

{

while(1)

{

wei=1;

P0=0x01;

wei=0;

an=1;

P0=digit[0];

an=0;

delay(500);

wei=1;

P0=0x02;

wei=0;

an=1;

P0=digit[1];

an=0;

delay(500);

wei=1;

P0=0x04;

wei=0;

an=1;

P0=digit[2];

an=0;

delay(500);

wei=1;

P0=0x08;

wei=0;

an=1;

P0=digit[3];

an=0;

delay(500);

wei=1;

P0=0x10;

wei=0;

an=1;

P0=digit[4];

an=0;

delay(500);

wei=1;

P0=0x20;

wei=0;

an=1;

P0=digit[5];

an=0;

delay(500);

}

}

G. 运用51单片机实现4位8段LED数码管的动态数字显示,写出C语言程序

动态显示的是有固定格式的,赋值,开显示,延时,关显示,假设p0口接数据显示位,p2口低4位接片选,
p2=tab[1];
//赋值
p3_0=0;
//开第一位显示
for(i=0;i<200:i++);//延时
p3_0=1;
//关第一位显示
p2=tab[2];
p3_1=0;
//开第二位显示
for(i=0;i<200:i++);
p3_1=1;
这个程序就是让两个数码管分别显示1和2,注意程序开头包含头文件regx52.h,如果是包含reg52.h编译不了的

H. 51单片机 让数码管自动显示0至9的C程序。有没有比这个更简单的

可以通过代码优化的方式来简化代码。

一、设置延时函数

延时函数在单片机中有着让现实延时的能力,本程序中可以通过采用for循环方式进行延时,具体代码如下:

void delay()

uinti,j;

for(i=100;i>0;i--)

for(j=1000;j>0;j--);

二、设置数码管显示数组

数组定义简单,而且访问很方便。所有元素类型相同,在数码管显示程序中可以让程序代码减少。数组代码如下:

chara[10]={0xff,0x3,0x9f,0x25,0xd,0x99,0x49,0x41,0x1f,0x1,0x9};

三、设置数码管显示循环

数码管显示循环可以不用编写一次又一次的数码管显示代码,既方便又简洁。具体代码如下:

for(inti=0;i<10;i++)

P0=a[i];

delay();

(8)单片机数码管显示c程序扩展阅读

单片机程序进行简化可以查看是否有反复出现的代码序列,整合成循环进行更改。同一类型且用法相同的变量可以整合成数组,方便对各个内容进行访问。有特定功能的代码段可以定义一个函数进行访问。

注意:用C51语言编辑的单片机程序与普通C语言不同,C51语言中的数据类型和标准c中的数据类型不同。

I. 51单片机显示八位数码管的C语言程序

1、最开始,我们先打开keil。

阅读全文

与单片机数码管显示c程序相关的资料

热点内容
dvd光盘存储汉子算法 浏览:758
苹果邮件无法连接服务器地址 浏览:963
phpffmpeg转码 浏览:672
长沙好玩的解压项目 浏览:145
专属学情分析报告是什么app 浏览:564
php工程部署 浏览:833
android全屏透明 浏览:737
阿里云服务器已开通怎么办 浏览:803
光遇为什么登录时服务器已满 浏览:302
PDF分析 浏览:486
h3c光纤全工半全工设置命令 浏览:143
公司法pdf下载 浏览:383
linuxmarkdown 浏览:350
华为手机怎么多选文件夹 浏览:683
如何取消命令方块指令 浏览:350
风翼app为什么进不去了 浏览:779
im4java压缩图片 浏览:362
数据查询网站源码 浏览:151
伊克塞尔文档怎么进行加密 浏览:893
app转账是什么 浏览:163