当前位置:首页 » 编程语言 » c语言数码管程序

c语言数码管程序

发布时间: 2023-05-07 16:19:36

‘壹’ 51单片机,8个数码管循环显示1-9的c语言程序。

假设8个历氏镇数码核郑管肢粗公共端均接地,同时显示1-9x0dx0a#includex0dx0a#includex0dx0a#defineucharunsignedcharx0dx0a#_CODE[]=x0dx0a{x0dx0a0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0x82,0xf8,0x80,0x90,0xffx0dx0a};x0dx0avoidDelayMS(uintx)x0dx0a{x0dx0auchart;x0dx0awhile(x--)x0dx0afor(t=120;t>0;t--);x0dx0a}x0dx0avoidmain()x0dx0a{x0dx0auchari=0;x0dx0aP0=0x00;x0dx0awhile(1)x0dx0a{x0dx0aP0=~DSY_CODE[i];x0dx0ai=(i+1)%10;/*显示0-9*/x0dx0aDelayMS(200);x0dx0a}x0dx0a}x0dx0a下面程序从左到右显示x0dx0a#includex0dx0a#includex0dx0a#defineucharunsignedcharx0dx0a#_CODE[]=x0dx0a{x0dx0a0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90x0dx0a};x0dx0ax0dx0avoidDelayMS(uintx)x0dx0a{x0dx0auchari;x0dx0awhile(x--)x0dx0a{x0dx0afor(i=200;i>0;i--);x0dx0a}x0dx0a}x0dx0ax0dx0avoidmain()x0dx0a{x0dx0auchari,k=0x80;x0dx0awhile(1)x0dx0a{x0dx0afor(i=8;i>0;i--)x0dx0a{x0dx0aP2=0xff;x0dx0ak=_crol_(k,1);x0dx0aP0=DSY_CODE[8-i];x0dx0aP2=k;x0dx0aDelayMS(3);x0dx0a}x0dx0a}x0dx0a}

‘贰’ 求用c语言写的八位数码管动态显示程序,P0控制段,P2控制位。

#include"reg51.h"
#include "intrins.h" //_nop_();延老拿时函数用
#define uchar unsigned char
#define uint unsigned int
#define SEG_OUT P0 //段码输出口
#define BIT_OUT P2 //扫描口
sbit dot=P2^7; //LED小数点控制
uchar code tab[12]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff,0xbf};
/* 共阳LED段码表 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "不亮" "-" */
uchar data dis_buff[8]={1,2,0,0,0,0}; //待显示单元数据,共6个数据
unsigned long temp;
/*************1毫秒延时程序**************/
delay1ms(int t)
{
int i,j;
for(i=0;i<t;i++)
for(j=0;j<侍亏搭120;j++)
;
}
//
/***********LED显空友示动态扫描函数**********/
display()
{
char k;
char m=0xfe;
for(k=0;k<8;k++) //8位LED扫描控制
{ BIT_OUT=0xff;
SEG_OUT=tab[dis_buff[k]];
BIT_OUT=m;
delay1ms(3);
m=(m<<1)|0x01;

}
dis_buff[0]=temp/10000000;

dis_buff[1]=(temp%10000000)/1000000;
dis_buff[2]=(temp%1000000)/100000;
dis_buff[3]=(temp%100000)/10000;
dis_buff[4]=(temp%10000)/1000;
dis_buff[5]=(temp%1000)/100;
dis_buff[6]=(temp%100)/10;
dis_buff[7]=temp%10;
}
/**************初始化程序****************/
void initiation()
{
TMOD=0x01;
TH0=-10000/256;
TL0=-10000%256; //10MS定时初值(T0计时用)
ET0=1;
TR0=1;
EA=1;
}

/****************定时器0中断服务程序*****/
void init_timer0(void) interrupt 1
{
TH0=-10000/256;
TL0=-10000%256; //10MS定时初值(T0计时用)
t10ms++;
if(t10ms==100)
{
t10ms=0;
ts++;
if(ts==60)
{
temp++;
ts=0;
}
}
}
/****************主程序******************/
main()
{
initiation();
while(1)
{
display();
}
}
一秒加1

‘叁’ C语言数码管计数程序

#include<咐昌扮reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]=
{
0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,
};
sbit key1=P3^4;

uchar num=0;
void delay(uint z);
void main()
{
while(1)
{
P2=0xfe;
P0=table[num];
delay(50);

if(key1==0)
{
while(!key1);
num++;
};

if(num==10)
{
num=0;
};
}
}

void delay(uint z)
{
while(z--);
}

看衡灶看吧,一迅销个道理。

‘肆’ 用C语言编制一个在8个数码管上轮流显示1~8的程序(单片机8051)

#include
<搭没reg51.h>
#define
uint
unsigned
int
/坦枝启/
宏定义
可以不用
#define
uchar
unsigned
char
sbit
//位申明
具体看你的数码管是共阴还是共阳的
还有要用到的I/O口
char
tab[]={}
//显示1--8的数码管编码;
voide
delay(uint
a)
//延迟a
ms
晶让如振伟11.0592
{
uint
i,
j;
for(i=a;i>0;i--);
for(j=110;j>0;j--);
}
main()
{
while(1)
{
//在循环语句里执行显示函数
}
}
说明:由于这个得看你的电路图具体情况,上面只是一个框框,你可以自己该就可以!

‘伍’ 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);//程序不再执行其他步骤;

}

扩展迹返资料:

数字0-9的对应段码:

数字0 0x3f

数字1 0x06

数字2 0x5b

数字3 0x4f

数字4 0x66

数字5 0x6d

数字6姿慧饥 0x7d

数字7 0x07

数字8 0x7f

数字9 0x6f

‘陆’ 单片机数码管显示0到999c语言程序怎么编

#include<reg51.h>

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

unsigned int time=0,s,sz;delay(unsigned int k)
{

unsigned int i,j;

for(i=0;i<k;i++)

for(j=0;j<125;j++);

}INT_0()interrupt 0

{ delay(10);

if(INT0==0){sz++;<br> if(sz>2){sz=0;}

}
}

void T0_int()interrupt 1
{

TH0=(65535-50000)/256;//设置初值

TL0=(65535-50000)%256;

s++;
if(s>首喊20){s=0;<br> if(sz==1)time++;<br> if(time>999){time=0;}

if(sz==0){time=0;//清零<br>伏卜 }



(6)c语言数码管程序扩展阅读:

运算器由运算部件——算术逻辑单元(Arithmetic & Logical Unit,简称ALU)、累加器和寄存缺芹穗器等几部分组成。

ALU的作用是把传来的数据进行算术或逻辑运算,输入来源为两个8位数据,分别来自累加器和数据寄存器。ALU能完成对这两个数据进行加、减、与、或、比较大小等操作,最后将结果存入累加器。

运算器有两个功能:

(1) 执行各种算术运算。

(2) 执行各种逻辑运算,并进行逻辑测试,如零值测试或两个值的比较。

运算器所执行全部操作都是由控制器发出的控制信号来指挥的,并且,一个算术操作产生一个运算结果,一个逻辑操作产生一个判决。



‘柒’ c语言程序怎么让数码管循环显示0123-9012再到0123然后数码管熄灭

1.首先你要有几个函数可以显示每个数码管数字

voidled1Show(chardat);
voidled2Show(chardat);
voidled3Show(chardat);
voidled4Show(chardat);
dat为你要显示此世的字符,函数是不是能复用,看你代码

2.再写一个统一显示的函数

voidledShow(intdat)//dat为你要显示的数字
{
led1Show(dat/1000);
led2Show(dat%1000/100);
led3Show(dat%100/10);
led4Show(dat%10);
}

3.在你的主函数中调用

intdat=123;
while(1)
{

ledShow(dat);
并蚂dat++;
if(dat>9012)
绝扒埋dat=123;
delay_ms(500);//加个延时,要不然会刷新太快。
}

‘捌’ 51单片机显示八位数码管的C语言程序

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

热点内容
党员e家账号密码是什么 发布:2024-11-02 00:37:30 浏览:709
安卓微信后台怎么关闭 发布:2024-11-02 00:36:49 浏览:719
s21更新了安卓12怎么降级 发布:2024-11-02 00:35:11 浏览:99
编程要软件吗 发布:2024-11-02 00:34:59 浏览:235
androidcursor遍历 发布:2024-11-02 00:27:40 浏览:767
网易我的世界地皮服务器大全 发布:2024-11-02 00:24:20 浏览:964
光宇国际服怎么安卓转ios 发布:2024-11-02 00:14:23 浏览:170
魔兽世界单机数据库 发布:2024-11-01 23:37:11 浏览:698
配置vlan后如何配置电脑ip 发布:2024-11-01 23:21:16 浏览:546
中铁盾构机密码是多少 发布:2024-11-01 23:07:21 浏览:708