導航:首頁 > 操作系統 > 單片機秒錶設計51

單片機秒錶設計51

發布時間:2022-11-04 00:12:06

A. 利用51單片機設計一個秒錶

剛做的一個現實最小是0.1秒的,給你參考吧,0.01的也做過不過已經刪除了,因為最後一位現實出來幾乎都看不清楚,變化太快了。

#include<reg51.h>

#define uchar unsigned char

uchar ledtab[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xfe,0x3e,0x9c,0x7a,0x9e,0x8e,0x00};

uchar keyval,dat,scanled,clk;

uchar disdat[4];

void ext0(void) interrupt 0

{

keyval++;

keyval%=3;

}

void t0isr(void) interrupt 1

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

clk++;

if(clk>1)

{

clk=0;

disdat[3]++;

if(disdat[3]>9)

{

disdat[3]=0;

disdat[2]++;

if(disdat[2]>9)

{

disdat[2]=0;

disdat[1]++;

if(disdat[1]>9)

{

disdat[1]=0;

disdat[0]++;

if(disdat[0]>9)disdat[0]=0;

}

}

}

}

}

void t1isr(void) interrupt 3

{

TH1=(65536-5000)/256;

TL1=(65536-5000)%256;

P2=0x01<<scanled;

dat=ledtab[disdat[scanled]];

if((scanled==0)||(scanled==2))dat|=0x01;

P0=~dat;

scanled++;

scanled%=4;

}


main()

{

uchar i;

TMOD=0x11;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

TH1=(65536-5000)/256;

TL1=(65536-5000)%256;

keyval=2;

scanled=0;

clk=0;

IT0=1;

EX0=1;

ET0=1;

TR1=1;

ET1=1;

EA=1;

while(1)

{

switch(keyval)

{

case 0:TR0=1;break;

case 1:TR0=0;break;

case 2:for(i=0;i<4;i++)disdat[i]=0;break;

default:break;

}

}

}

B. 單片機秒錶設計

用AT89C51設計一個2位的LED數碼顯示作為「秒錶」,這應該是一個模擬題,可用兩位一體的共陰數碼管,用定時器T0定時,得到1秒計時。

C. 6位數碼管的MCS51單片機秒錶設計實驗

HD7279A.
ORG0000H
lJMPWAIT0
ORG001BH
LJMPBRT
ORG0030H
WAIT0:LCALLDISP
MOVC,P1.4
JCWAIT0
LCALLREAD
MOVA,28H
CJNEA,#01H,WAIT0
MIAOBIAO:MOV79H,#00H;1鍵開始
MOV7AH,#00H;2鍵停止
MOV7BH,#00H;再按3鍵清零
MOV7CH,#00H;再按1鍵重新開始
MOV7DH,#00H
MOV7EH,#00H
MOVTMOD,#10H
MOVTH1,#0D8H
MOV1,#0F0H
MOVIE,#88H
SETBPT1;中斷優先順序
SETBTR1;開啟定時器T1
;*********************************************************************************************
MAIN:ACALLDISP
MOVC,P1.4
JCMAIN;等按鍵,按2停止
ACALLREAD
MOVA,28H
CJNEA,#02H,MAIN
CLRTR1
WAIT1:LCALLDISP
MOVC,P1.4
JCWAIT1;按3鍵清零
LCALLREAD
MOVA,28H
CLR28H
CJNEA,#03H,WAIT1
MOV79H,#00H
MOV7AH,#00H
MOV7BH,#00H
MOV7CH,#00H
MOV7DH,#00H
MOV7EH,#00H
WAIT2:LCALLDISP
MOVC,P1.4;第三次按1鍵重新開始
JCWAIT2
LCALLREAD
MOVA,28H
CLR28H
CJNEA,#01H,EXIT
LJMPMIAOBIAO
EXIT:LJMPWAIT0
;EXIT:POPPSW
;POPACC
;RET
DISP:MOVR0,#79H
MOVR1,#0C8H
MOVR2,#06H
DISP_LOOP:MOV29H,R1
ACALLSEND
MOV29H,@R0
ACALLSEND
INCR1
INCR0
DJNZR2,DISP_LOOP
RET
SEND:CLRP1.7
MOVR3,#08H
lCALLLONG
SEND_LOOP:MOVC,29H.7
MOVP1.6,C
SETBP1.5
ACALLSHORT
CLRP1.5
ACALLSHORT
MOVA,29H
RLA
MOV29H,A
DJNZR3,SEND_LOOP
CLRP1.6
RET
LONG:MOVR5,#28H
LLP:DJNZR5,LLP
SHORT:MOVR6,#08H
SLP:DJNZR6,SLP
RET
BRT:MOVTL1,#0F0H
MOVTH1,#0D8H
PUSHPSW
PUSHACC
INC79H
MOVA,79H
CJNEA,#0AH,FH
MOV79H,#00H
INC7AH
MOVA,7AH
CJNEA,#0AH,FH
MOV7AH,#00H
INC7BH
MOVA,7BH
CJNEA,#0AH,FH
MOV7BH,#00H
INC7CH
MOVA,7CH
CJNEA,#06H,FH
MOV7CH,#00H
INC7DH
MOVA,7DH
CJNEA,#0AH,FH
MOV7DH,#00H
INC7EH
MOVA,7EH
CJNEA,#06H,FH
MOV7EH,#00H
FH:POPACC
POPPSW
RETI
READ:MOV29H,#15H
ACALLSEND
LCALLRESE
RET
RESE:MOV71H,#8;=8
SETBP1.6;P1.2(DATA)
CALLLONG;
RECEIVE_LOOP:SETBP1.5;CLK
CALLSHORT;
MOVA,28H;
RLA
MOV28H,A
MOVC,P1.6;
MOV28H.0,C
CLRP1.5;CLK
CALLSHORT
DJNZ71H,RECEIVE_LOOP;8
CLRP1.6;DAT
RET

D. 51單片機設計簡易秒錶

你學習板的圖呢?我怎麼知道用哪些IO口!怎麼知道你數碼管用什麼驅動啊!不然怎麼寫

E. 用51單片機C語言版設計秒錶倒計時

K1 EQU P1.0
K2 EQU P1.1
K3 EQU P1.2
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#01H
MOV TH0,#HIGH(65536-10000)
MOV TL0,#LOW(65536-10000)
SETB ET0
SETB TR0
SETB EA
MOV R0,#9
MOV R1,#9
MOV R2,#0
MOV R3,#99
CLR 00H
CLR 01H
LOOP:
JB K1,LP01
JNB K1,$
CLR 01H
INC R3
CJNE R3,#100,LOOP0
MOV R3,#0
SJMP LOOP0
LP01:
JB K2,LP02
JNB K2,$
CLR 01H
CJNE R3,#0,LP011
MOV R3,#99
SJMP LOOP0
LP011:
DEC R3
SJMP LOOP0
LP02:
JB K3,LOOP
JNB K3,$
SETB 01H
SJMP LOOP
LOOP0:
MOV A,R3
MOV B,#10
DIV AB
MOV R0,B
MOV R1,A
SJMP LOOP
T0ISR:
CLR TR0
MOV TH0,#HIGH(65536-10000)
MOV TL0,#LOW(65536-10000)
SETB TR0
MOV DPTR,#TABLE
T0C:
CPL 00H
JB 00H,T001
MOV P3,#0FDH
MOV A,R1
MOVC A,@A+DPTR
MOV P2,A
SJMP T002
T001:
MOV P3,#0FEH
MOV A,R0
MOVC A,@A+DPTR
MOV P2,A
T002:
JNB 01H,T0E
INC R2
MOV A,R2
CJNE A,#100,T0E
MOV R2,#0
MOV A,R0
JZ T003
DEC R0
SJMP T0E
T003:
MOV A,R1
JZ T004
DEC R1
MOV R0,#9
T0E:
RETI
T004:
CLR 01H
MOV R4,#16
T005:
CPL P0.0
LCALL DELAY
DJNZ R4,T005
RETI
DELAY:
MOV R6,#200
DLY:
MOV R7,#250
DJNZ R7,$
DJNZ R6,DLY
RET
TABLE: ; 共陰極數碼管顯示代碼表
DB 3FH,06H,5BH,4FH,66H ;01234
DB 6DH,7DH,07H,7FH,6FH ;56789
END

F. 51單片機製作一個秒錶

//功能:0~99秒的簡易秒錶設計,兩個靜態數碼管,定時器採用中斷方式
#include"reg51.h"
#define uchar unsigned char
#define uint unsigned int

uchar count=0;//對50ms定時時間進行計數
uchar miao=0; //秒計數器

//函數名:timer_1()
//函數功能:定時器T1的中斷函數,T1在工作方式1下每50秒產生中斷,執行該中斷函數
//形式參數:無
//返回值:無
void timer_1() interrupt 3 //T1的中斷類型號為3
{
TH1=(65536-50000)/256; //重新設置T1計數初值高8位
TL1=(65536-50000)%256; //重新設置T1計數初值低8位
count++; //50ms計數器加1
if(count==20) //1s時間到
{
count=0; //50ms計數器清0
miao++; //秒計數器加1
if(miao==100)miao=0; //miao計數到100,則從0開始計數
}
}

bit b=0;
void int_0() interrupt 0
{
if(b == 0){TR1 = 0;b = 1;}
else
{
b = 0;
TR1 = 1;
}
}

void int_1() interrupt 2
{
miao=0;
count = 0;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
TR1=1;
}

//函數名:disp
//函數功能:將i的值顯示在兩個靜態連接的數碼管上
//形式參數:i,取值范圍0~99
//返回值:無
void disp(uchar i)
{
uchar led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//定義0~9顯示碼,共陽極數碼管
P1=led[i/10]; //顯示i高位
P2=led[i%10]; //顯示i地位
}
void main()
{
TMOD=0x10;//設置T1在工作方式1
TH1=(65536-50000)/256;//設置T1計數初值高8位,定時時間50ms
TL1=(65536-50000)%256;//設置T1計數初值低8位
ET1=1;//開放T1中斷允許
EX0 = 1;
IT0 = 1;
EX1 = 1;
IT1=1;
EA=1;//開放總中斷允許
TR1=1;//啟動T1開始計時
while(1)
{
disp(miao);//顯示秒計數器值
}
}

G. 用51單片機做秒錶設計

遇到懶學生了,這個不就是一個定時器加顯示嗎,有什麼難的,自己翻翻微機原理書就可以做 了,也就四五十行匯編語言就行了,用C就更加簡單,具體的方法:用定時器定時0.2ms,定時到了就給固定的一個變數加1,然後判斷這個變數是不是到了500,到了就清零然後把秒的變數加1,就是1s了,(分和時也是如此,秒為60,秒清零,分加1);主程序就只管顯示和按鍵,按鍵隨便用中斷還是查詢,我建議你查詢,因為程序簡單,顯示程序就是查個表,自己把數碼顯示的斷碼表編好就可以了,把秒的數值查表對應顯示,完了就查詢按鍵,按鍵累加,值為0是沒按,1是按1次,2是按2次,3是按3次,同時清零,很簡單的

H. 51單片機完成簡易秒錶的設計

硬體電路簡單,我說下軟體部分
用一個定時器定時中斷做鍵盤掃描,數碼管用動態掃描的方法,數碼管顯示和按鍵處理都放在主程序中進行

I. c語言設計51單片機設計簡易秒錶

1. 兩位數碼管,計時60秒可以么
2. 有空可以你幫寫和模擬,但是不知道具體時間,用定時器,12M晶振,AT89單片機

J. 51單片機 秒錶設計

// 51單片機 秒錶,顯示時間為0000—9999秒,啟動、停止,(停止後再次啟動復位)

#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 ,shi;

uint a1,a2;

sbit D1=P3^0;

sbit D2=P3^1;

sbit D3=P3^2;

sbit D4=P3^3;

sbit key=P3^5;

sbit key1=P3^7;

bit j ;

uint y ;

void main()

{

TMOD=0x01;

TH0=(65536-10000)/256;

TL0=(65536-10000)%256;

EA=1;

ET0=1;

TR0=1;

=0;

shi=0;

while(1)

{

if(key==0)

{

j=0;

}

if(key1==0)

{

j=1; a2=0;

}

}

}

void timer0()interrupt 1

{

TH0=(65536-10000)/256;

TL0=(65536-10000)%256;

a1++;

y++;

if(a1==100)

{

a1=0;

if(j==1) a2++;

if(a2>=10000) a2=0;

}

D1 = 1; D2 = 1; D3 = 1; D4 = 1;

if(y==1)

{

P1=table[a2%10000/1000];

D4=0;

}

if(y==2)

{

P1=table[a2%1000/100];

D3=0;

}

if(y==3)

{

P1=table[a2%100/10];

D2=0;

}

if(y==4)

{

P1=table[a2%10];

D1=0;

y=0;

}

}

閱讀全文

與單片機秒錶設計51相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:758
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:672
長沙好玩的解壓項目 瀏覽:145
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:486
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:383
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:350
風翼app為什麼進不去了 瀏覽:779
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:151
伊克塞爾文檔怎麼進行加密 瀏覽:893
app轉賬是什麼 瀏覽:163