1. c语言 倒计时程序
对硬件的啊。
P2=0;
P1=display_code[display_data[i]];
P2=k;
k=k>>1;
不懂。
不过感觉问题不大。先把main里的i的上限从250改到216.
在display()里做3个判断(可能会要做个全局变量,或者加个参数,记录当前是多少。)
判断是否是0,大于10,大于100
另外,站长团上有产品团购,便宜有保证
2. 求C语言程序:数码管60秒倒数
共阴数码管,首先通过小工具将0-9的10个数字的a-f点亮方式定义到数组中.
之后就是定义一个字节的BCD码,4位高为一个数字 0-9 左边,4位低为数字右边.这样只要对这个BYTE值取下标就可以显示出来.思路希望对你有帮助.你这个是静态方式,比较浪费IO口,另外既然P0口拉了,最好P2口也拉一下,不过stc是有强推输出,可以不拉.
3. 51单片机数码管6秒倒计时c语言
硬件不知道,主程序大致这样
uchar counter=0;uchar seond=6;
void main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
EA=1;
TR0=1;
while(second!=0)
{display(second);}
}
中断程序
void timer0 (void) interrupt 1
{ TH0=……
TL0=……
counter++;
if(counter==20)
{counter=0;second--;}
}
4. 单片机 at89c51 6位数码管24小时倒计时程序
留个邮箱发给你。
5. 用c语言编写,实用定时器实现数码管15倒计时
你是要程序吗?使用的什么型号单片机,晶振多少,数码管显示数据依次是什么,要倒计时或者计时多少时间?追问我之后我帮你写程序。
6. AT89S51单片机24.00.00到00.00.00倒计时程序 6位数码管显示 时间为可调 C语言
应该现在还没有你需要的语音模块。只能自己采用别的单片机(带有语音功能的)比如凌阳61,剩下就倒计时就不是问题
7. 使用2个数码管设计一个60秒倒计时C语言程序,要求用定时器中断定时1秒。 仿真元件数码管为7SEG-COM-CATHODE
7SEG-COM-CATHODE为共阴管
#include<reg51.h>
#defineucharunsignedchar
#defineuintunsignedint
ucharnum=60,shi,ge;
ucharcodeTAB[]={
0x3F,/*0*/
0x06,/*1*/
0x5B,/*2*/
0x4F,/*3*/
0x66,/*4*/
0x6D,/*5*/
0x7D,/*6*/
0x07,/*7*/
0x7F,/*8*/
0x6F,/*9*/
};
voidT0INTinit()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
voidmain()
{
T0INTinit();
while(1)
{
shi=num/10;
ge=num%10;
P0=TAB[shi];
P2=TAB[ge];
}
}
voidT0INT()interrupt1
{
uchari;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
i++;
if(i==20)
{
i=0;
num--;
if(num==0)
num=60;
}
}
8. 求单片机数码管倒计时程序
#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_595=P0^1; //移位时钟脉冲(输入口) ---接板卡上的SPO----串行时钟线----SHcp移位时钟信号输入端
sbit RCK_595=P0^2; //输出锁存器控制脉冲 ----接板卡上SPK STcp锁存信号输入端
uchar code an[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uchar code wei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uchar num=60;
void delay(uint z);
void aa595_in(uchar Data) {
uchar i;
for(i=0;i<8;i++)
{SCLK_595=0; Data<<=1; SDATA_595=CY;
SCLK_595=1; SCLK_595=0;
}
}
void a595_in(uchar Data) {
uchar i;
for(i=0;i<8;i++) {
SCLK_595=0; Data<<=1; SDATA_595=CY;
SCLK_595=1; SCLK_595=0;
}
}
void aa595_out(void) {
RCK_595=0;
_nop_(); _nop_();
RCK_595=1;
_nop_(); _nop_();
RCK_595=0;
}
void main() {
uchar ge,shi;
while(1) {
if(key1==0) {
delay(10);
if(key1==0)
{d1=0; num--;
if(num==0)
num=60;}
while(!key1);//松手检测
delay(10);//延时10ms
while(!key1);//再松手检测
}
else d1=1;
// aa595_in(an[num]);
// aa595_in(wei[3]);
shi=num/10;
ge=num%10;
a595_in(an[shi]);
aa595_in(wei[3]);
aa595_out();
delay(10);
aa595_in(an[ge]);
aa595_in(wei[2]);
aa595_out();
delay(10);}
}
void delay(uint z) {
uint x,y;
for(x=100;x>0;x--) for(y=z;y>0;y--);
}//延时子程序,延时Zms
9. 51单片机的程序(c语言版),用数码管进行倒计时。
数码管显示2个数字,共显示2万次。
10. 用数码管 9秒倒计时(C语言)
用中断,例如定时50ms,每次计数1,那只要记20次,就是一秒,然后把秒数减1,再刷新数码管的内容即可