单片机数码管显示0到999c语言程序怎么编
发布网友
发布时间:2022-04-28 12:13
我来回答
共3个回答
热心网友
时间:2023-10-31 01:06
#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> }
扩展资料:
运算器由运算部件——算术逻辑单元(Arithmetic & Logical Unit,简称ALU)、累加器和寄存器等几部分组成。
ALU的作用是把传来的数据进行算术或逻辑运算,输入来源为两个8位数据,分别来自累加器和数据寄存器。ALU能完成对这两个数据进行加、减、与、或、比较大小等操作,最后将结果存入累加器。
运算器有两个功能:
(1) 执行各种算术运算。
(2) 执行各种逻辑运算,并进行逻辑测试,如零值测试或两个值的比较。
运算器所执行全部操作都是由控制器发出的控制信号来指挥的,并且,一个算术操作产生一个运算结果,一个逻辑操作产生一个判决。
热心网友
时间:2023-10-31 01:06
#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> }
}
}
xs_hs()
{
P2=0x02;
P0=xs_d[time/100];
delay(5);
P2=0x04;
P0=xs_d[(time/10)%10];
delay(5);
P2=0x08;
P0=xs_d[time%10];
delay(5);
P2=0x08;
}main()
{
TMOD=0x01;//定时中断0
TH0=(65535-50000)/256;//设置初值
TL0=(65535-50000)%256;
EA=1;//开全局中断
ET0=1;//开定时器0中断
TR0=1;//启动定时器
IT0=1;
EX0=1;
while(1)
{
xs_hs();
}
}
热心网友
时间:2023-10-31 01:06
#include<reg52.h>
char wei[4]={0xf7,0xfb,0xfd,0xfe};
char an[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
int c=20;
void delay_1ms(int time)
{
int i;
while(time--)
for(i=0;i<125;i++)
{
;
}
} //ÑÓ³Ùº¯Êý
void display(int i)
{
int j=0;
do
{
P1=wei[j++];
P0=an[i%10];
delay_1ms(1);
P1=0xff;
P0=0xff;
i=i/10;
c--;
}while(i>0);
}
void main()
{
int s=0;
while(1)
{
while(c)/********************************/
{
display(s); /***************************************/
}
s++;
if(s==999)
{
s=0;
}
c=20;
}
}
热心网友
时间:2023-10-09 00:08
#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> }
扩展资料:
运算器由运算部件——算术逻辑单元(Arithmetic & Logical Unit,简称ALU)、累加器和寄存器等几部分组成。
ALU的作用是把传来的数据进行算术或逻辑运算,输入来源为两个8位数据,分别来自累加器和数据寄存器。ALU能完成对这两个数据进行加、减、与、或、比较大小等操作,最后将结果存入累加器。
运算器有两个功能:
(1) 执行各种算术运算。
(2) 执行各种逻辑运算,并进行逻辑测试,如零值测试或两个值的比较。
运算器所执行全部操作都是由控制器发出的控制信号来指挥的,并且,一个算术操作产生一个运算结果,一个逻辑操作产生一个判决。
热心网友
时间:2023-10-09 00:08
#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> }
}
}
xs_hs()
{
P2=0x02;
P0=xs_d[time/100];
delay(5);
P2=0x04;
P0=xs_d[(time/10)%10];
delay(5);
P2=0x08;
P0=xs_d[time%10];
delay(5);
P2=0x08;
}main()
{
TMOD=0x01;//定时中断0
TH0=(65535-50000)/256;//设置初值
TL0=(65535-50000)%256;
EA=1;//开全局中断
ET0=1;//开定时器0中断
TR0=1;//启动定时器
IT0=1;
EX0=1;
while(1)
{
xs_hs();
}
}
热心网友
时间:2023-10-09 00:09
#include<reg52.h>
char wei[4]={0xf7,0xfb,0xfd,0xfe};
char an[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
int c=20;
void delay_1ms(int time)
{
int i;
while(time--)
for(i=0;i<125;i++)
{
;
}
} //ÑÓ³Ùº¯Êý
void display(int i)
{
int j=0;
do
{
P1=wei[j++];
P0=an[i%10];
delay_1ms(1);
P1=0xff;
P0=0xff;
i=i/10;
c--;
}while(i>0);
}
void main()
{
int s=0;
while(1)
{
while(c)/********************************/
{
display(s); /***************************************/
}
s++;
if(s==999)
{
s=0;
}
c=20;
}
}
单片机数码管显示0到999c语言程序怎么编
if(INT0==0){sz++; if(sz>2){sz=0;}}} void T0_int()interrupt 1{ TH0=(65535-50000)/256;//设置初值 TL0=(65535-50000)%256;s++;if(s>20){s=0; if(sz==1)time++; if(time>999){time=0;} if(sz==0){time=0;//清零 } ...
单片机用汇编写两个数码管显示0到99循环的程序
要实现单片机用汇编语言编写的数码管循环显示0到99的程序,首先,你需要创建一个新的项目并做好初始化准备工作。接着,创建一个数码管段选表,它将决定每个数码管的显示模式。延时函数在此过程中也至关重要,以控制数码管的刷新速度。定义一个名为i的uchar变量,初始化一个名为wk的标志位,用于控制数...
用单片机AT89C51驱动两位数码管显示00--99依次循环程序代码
程序开始于0000h地址,通过计数器temp(22h)控制数码管从00到99的循环显示。计数器初始化为0,然后调用子程序display进行显示。每当计数器加1并判断是否达到100后,若未满则返回stlop继续循环,满100则清零重新开始。display子程序中,先将temp中的值转换为十进制,然后根据十位和个位数字,分别从NUMTAB...
求用单片机驱动数码二级管的C语言程序,要求二级管显示00~99_百度知 ...
void delay500ms();//延时子程序声明 void display(unsigned char X);//显示子程序声明 void main(){ while(1){ delay500ms();count++;if(count>=100)count=0;display(count);} } void delay500ms(){ unsigned char i,j,k;for(i=5;i>0;i--)for(j=200;j>0;j--)for(k=248;k...
用C语言编程 怎么用单片机使2位数码管动态显示00---99? P1口接1个二...
unsigned char j =0;void delay(int ms){ int i;while(ms--)for(i=0;i<200;i++);} handle(unsigned int n){ unsigned char i;for(i=0;i<6;i++){ buffer[i]=n%10;n=n/10;} } void jinzhi(){ if(n<100){ n++;if(n==99){ n=0;} flag=0;} } void xianshi()...
用4个动态数码管显示,实现0~9999计数功能,延时为1s,用c语言。
/***数显秒表,范围0~9999***/ /***源程序默认硬件环境:52单片机,12MHz晶振,4位共阳数码管,P0 口段选,P10~P13 高电平位选(NPN三极管驱动),P13为最高位数码管***/ include"reg52.h"//包含52头文件 define TRUE1//定义布尔量'1':真 define FALSE0//定义布尔量'0':假 define uchar ...
单片机用汇编写两个数码管显示0到99循环的程序
1、新建项目,做好准备。2、数码管段选表。3、延时函数。4、uchar i; 变量i;wk = 1;打开位选,P0 = 0xf7;1111 0111第4位数码管显示,wk = 0;关闭位选。5、while(1) //死循环效果{} 。6、dk = 1;//打开段选,P0 = leddata[i];,dk = 0;//关闭段选,delay(100);//延时...
单片机数字9到0显示程序代码?
这里给出一种基于Arduino平台的单片机数字0到9显示的程序代码,可供参考:c++ Copy code int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; //定义LED引脚 int numPins[][7] = { //定义数字0~9的LED点阵图形 {1, 1, 1, 1, 1, 1, 0}, //0 {0, 1, 1, 0,...
c51单片机数码管显示0到99
1. 编码:首先,我们需要为每个数字(0-9)创建一个唯一的段码。这是因为数码管的每个段(通常是7段或8段)可以通过不同的组合来点亮,以形成不同的数字或字符。例如,数字“0”可能需要点亮所有的段,而数字“1”可能只需要点亮其中的两个段。2. 多位显示:由于我们需要...
单片机数码管如何从1显示到9
把 数码管的 1-9 的 对应的码算出来就好了 例如:#include <AT89X51.H>//数字0-9的字形码unsigned char code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};unsigned char dispcount;void delay02s(void);void main(void){ P1_0=0;//选通第一位数码管 while(...