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,再刷新數碼管的內容即可