求两位数码管显示一个倒数时间的单片机程序,比如显示从99到0
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);//延时效果。
7、选择效果,限制i值的循环范围。
大致步骤为先确定数码管显示数字需要单片机如何驱动(一般单片机一个I/O口控制一个小灯管正负中的一级),然后一个循环递减应该能实现
//两位数码管显示倒计数99~00,51单片机。#include<reg52.h> // 倒计数
#define uint unsigned int
#define uchar unsigned char
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uchar bai,shi;
uint a1,a2;
sbit D1=P3^0; // 位选1 P1口段码输出
sbit D2=P3^1; // 位选2
sbit key=P3^7; // 启动/停止
bit y ;
void main()
{
TMOD=0x01;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
EA=1;
ET0=1;
TR0=1;
bai=0;
shi=0;
while(1)
{
if(key==0)
{
}
}
}
void timer0()interrupt 1
{
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
a1++;
y = ~y;
if(a1==100)
{
a1=0;
if(key==1) a2--;
if(a2>=100) a2=99;
}
D1 = 1; D2 = 1;
if(y==1)
{
P1=table[a2/10];
D1=0;
}
else
{
P1=table[a2%10];
D2=0;
}
}
从60秒到30秒再到90秒并循环倒计时显示。
求两位数码管显示程序。STC11F02E单片机。在线等
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;void t0isr() interrupt 1 { TH0=(65536-5000)\/256;TL0=(65536-5000)%256;number++;if(...
什么是数码管的消影?单片机是如何做的?
因为人有视觉暂留,当显示完1后,再显示2,如果间隔时间过短,那就会感觉1、2两个数字是叠加在一起显示的:如果你在两位数码管上显示,那就会两位同时显示出叠加字--重影了。那就要消影:单片机要做的是,当第一位显示完1后,给出信号,关闭数码管,然后再第二位显示2,就不会重影了。
单片机两位数码管显示数字
uchar number,dat=29;void t0isr() interrupt 1 case 0:P2=0x02;P0=distab[dat\/10];break;case 1:P2=0x01;P0=distab[dat%10];TMOD=0x01;TH0=(65536-5000)\/256;TL0=(65536-5000)%256;TR0=1;ET0=1;EA=1;while(1);} 分类 数码管也称LED数码管,不同行业人士对数码管的称呼不一样...
单片机 两位数码管显示,使用两位数码管显示器,循环显示两位数0-99
;共阴动态显示 P0接段控,P1接位控,P3接按键输入 ;P0口接键盘扫描接口,P1口接数码管接口段控,P2口低四位接位控 ;DIR :MOV R0,#00H MOV DPTR,#TAB MOV R4,#100 DIR4:MOV R3,#0feH MOV R2,,02H DIR1:CJNE R2,#01,DIR2 MOV A,R0 MOV B,#0AH DIV AB SJMP DIR3 DIR2...
51单片机用4个按键,每个按键被按下都会使数码管显示一个数值
5. [问答题] [技能题画10配线图写出程序]按下按钮S1,数码管显示1;按下按钮S2,数码管显示2;按下按钮S3,数码管显示3;按下按钮S4,数码管显示4;能互相直接切换。按下停止按钮后,数码管熄灭。。
怎么实现一个两位数码管动态显示0到59,后又归0,一秒改变一个数字,我用...
如果想要把延时做的准一些,就要用定时器中断,系统速度知道,再把定时器的TH和TL放好初值,你可以计算出多长时间溢出一次,在定时器中断函数里,设个变量累加,这时候你就可以很准确的,起码是比用延时函数准确的多了。
求C51两位数码管显示程序,只要显示就好,要C语言的,如显示23
void display(uint num){ uint i;uint shi,ge;shi=num\/10;ge=num%10;gewei=0;P0=table[ge];for(i=0;i<200;i++);P0=0xff; \/\/去除光影 gewei=1;shiwei=0;P0=table[shi];for(i=0;i<200;i++);P0=0xff;shiwei=1;} gewei和shiwei是数码管的两个位选,P0口段选。调用的时候...
利用单片机实现两位数码管显示功能。
FSDATEQU 33H ORG 0000H LJMP MAIN ORG 000BH LJMP T0ISR ORG 0030H MAIN:MOV SP,#5FH MOV TMOD,#01H MOV TH0,#0F4H MOV TL0,#048H MOV P2,#00H MOV SCANLED,#0 MOV 30H,#5 MOV 31H,#0 MOV FSDAT,#50 SETB EA SETB ET0 SETB TR0 LOOP:JB P3.0,LOOP1 JNB P3.0,I...
西门子或者松下PLC两位数码管显示程序plc的接线图和梯形图
很简单。如果是8421管,对应接好8,4,2,1各位对应的PLC输出点。然后,在程序里做 +1和-1;在程序里写数值对应的输出关系就可以了。
共阳数码管显示一个1的程序跟共阴的有什么区别,位选和段选是怎样的...
共阳极显示1是共阳图中B、C(即6、4)口输出低电平,3,8口输出高电平,其余端口输出高电平(注:发光二极管正向导通才会发光)共阴极显示1是共阴图中B、C(即6、4)口输出高电平,3,8口输出低电平,其余端口输出低电平 位选与段选嘛 !如第三图所示为两位共阳极数码管,位选即是在10口与5口间...
禹爬尤尼: 没有具体的原理图,所以就从原理上说明一下吧,首先应该先根据原理图推出每个数码管每个数字对应的8位驱动信号类型,既然是共阴极,那么如果给数码管对应的引脚置1,就会让该位发光,这样就可以推出从0到9的数码管驱动序列,如果是...
徽州区13594968395: 我想用51单片机编个倒计时的c程序,要求用两位数码管显示分钟的,并用一个按键 - ?
禹爬尤尼: 你这数码管的1、2口就这么悬着或者接dp一起了真的没问题吗…… 全局变量2个用于表示个位和十位,显示的时候可以省点力不用每次计算个位十位.然后一个全局变量代表秒 编程的话,首先是按键响应中断,控制某个全局变量flag的值,三种...
徽州区13594968395: 利用AT89C51单片机实现两个共阳数码管倒数计时99秒,求程序!!要求是C语言的 - ?
禹爬尤尼: 这是正时,改动一下 #include unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71,0x00}; unsigned char second; unsigned char keycnt; unsigned int tcnt; void main(void) { unsigned...
徽州区13594968395: 求单片机数码管倒计时程序 - ?
禹爬尤尼: #include<reg52.h> #include <intrins.h> //内部包含延时函数 _nop_(); #define uchar unsigned char #define uint unsigned int sbit d1=P2^0; sbit key1=P0^4; sbit SDATA_595=P0^0; //串行数据输入 ----接板卡上的SPI 数据信号输入端 sbit SCLK_...
徽州区13594968395: 用ne555做一个99秒的倒计时的计时器,用两个数码管显示出来 - ?
禹爬尤尼: NE555不用编程 提示:用555及电容电阻构成多谐振荡器 振荡周期是1s 计数器可以选择74ls90或者74ls192 ,译码器是cd4511 然后选择相应的数码管的就可以了 计数器都有清零端 用个开关控制清零端就可以了 报警电路可以用三极管控制蜂鸣器
徽州区13594968395: 求编程实现倒计时的秒表,2位LED数码管显示,延时采用硬件延时的方法 - ?
禹爬尤尼: 用单片机的定时器T0定时,计时1秒,实现倒计时的秒表的功能. 程序如下 #include<reg51.h> unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳数码管段码表 unsigned char second;//秒倒计时变量 ...
徽州区13594968395: 利用AT89C51单片机实现两个共阳数码管倒数计时120秒,求程序!!要求是C语言的 - ?
禹爬尤尼: 只利用两个数码管显示,那么肯定是显示16进制的数值,用到定时器,用静态显示或动态显示都行的.
徽州区13594968395: 用单片机的定时/计数器实现60s倒计时,并用两位数码管静态显示倒计时秒值; - ?
禹爬尤尼: 这个设计的关键有两个地方:1.配置好单片机定时器2.控制数码管显示.我这里有相关资料,加QQ1594863321
徽州区13594968395: 用单片机设计一个两位LED显示的秒表,按下计时键时,进行60s倒计时显示 - ?
禹爬尤尼: #include sbit P3_5 =P3^5; unsigned char code dispcode[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0x00}; unsigned char second=60; unsigned char keycnt; unsigned int tcnt; void main(void) { ...
徽州区13594968395: 设计一个单片机编程,两位的简易秒表,记时单位60 - 50s,用两位的数码管 - ?
禹爬尤尼: #include unsigend char sec = 0; unsigend char code ledchar[] = {0xC0,x0F9, 0xA4, 0xB0 ,0x99, 0x92, 0x82, 0xF8, 0x80 ,0x90}; void ConfigTimer0() {TMOD = 0x01;TH0 = 0xFC; TL0 = 0x18; ET0 = 1; TR0= 1; EA = 1;} void main() ...