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

秒錶計時器單片機

發布時間:2023-12-27 02:34:16

單片機秒錶復位程序如何寫

秒錶就是一個計時的工具,為了保證精確度,一般顯示秒後面兩位,就是10ms位,在單片機定時器中,賦初值1ms,變數不停的累加上去, 累加到10的時候,秒錶加1,就是10ms了,
復位就是對秒錶的數據進行清零重置,這時就需要一個按鍵來進行人機交互功能了,這時候就要考慮有幾個按鍵了,一般的秒錶設計的時候有兩個按鍵,一個進行啟動停止,一個進行清零;
1.啟動和停止,啟動停止的按鍵,就是按一下讓標志位取反一次,
bit flag =0;
if(Key ==0)
{
delay(); //延時10ms;這個程序比較常見,就不寫出來了

if(key == 0)

{
flag = !flag; //消抖後檢測到按鍵還是按下狀態,就把標志位取反;

while(!Key); //等待鬆手
}

}
同時在定時器中斷里, 根據標志位對 及時變數進行累加
if(flag)

{
t++;

if(t >= 10)

{
t = 0;

ms++;

}

}

就這樣 標志位就表示的秒錶啟動停止的,

2 。 復位,復位顧名思義就是 返回到初始狀態,就是0 ; 一般復位是在秒錶停止的狀態對秒錶進行清零;
先在主程序里檢測按鍵

bit clc = 0;
if(key1 == 0)
{
delay(); // 延時10ms

if(Key1 == 0)

{
clc = 1;

while(!Key1); //等待鬆手

}
}

然後在定時器中斷里進行對變數的數值進行清零
if(!flag ) //在停止狀態
{
if(clc)

{
ms = 0;

clc = 0;
}
}
到此 秒錶的啟動停止 和復位就完成了 ,

⑵ 單片機秒錶課程設計,急求!!!!

原理圖如下,

程序如下:

;=================================================

;寄存器分配定義

;=================================================

LED_BUF EQU 50H ;顯示數據首址

COUNTER_INT EQU 3BH ;中斷計數器

SECOND EQU 3DH ;秒單元

;=================================================

;常數定義

;=================================================

CN_COUNT_INT EQU 100 ;10ms * 100 = 1S

SET_MODEL EQU 0FFH ;完全解碼模式

SET_BRIGHT EQU 04H ;占空比為15/32;顯示亮度;

SET_LIMIT EQU 01H ;2位顯示方式;

SET_NORMAL EQU 01H ;測試模式

SET_START EQU 01H ;進入啟動工作方式?

;=================================================

;管腳分配定義

;=================================================

m7219_DIN BIT P3.0

m7219_LOAD BIT P3.1

m7219_CLK BIT P3.2

KEYSTART BIT P1.0

KEYRESET BIT P1.1

;============================================

;模擬主程序

;===========================================


org 0000h

ajmp main

ORG 000BH

LJMP Timer0Interrupt

org 0030h

main:

mov sp,#70h


lcall Init_M7219

lcall InitTimer0

; MOV SECOND,#95H ;TEST

Loop:

CALL disp

key_reset:

SETB KEYRESET

JB KEYRESET,key_start

; DELAY

NOP

NOP

NOP

JB KEYRESET,key_start

JNB KEYRESET,$

CLR TR0

MOV A,#0

MOV SECOND,A

MOV led_buf,A

MOV LED_BUF+1,A

JMP key_SCAN_END

key_start:

SETB KEYSTART

JB KEYSTART,key_SCAN_END

; DELAY

NOP

NOP

NOP

JB KEYSTART,key_SCAN_END

JNB KEYSTART,$

SETB TR0

key_SCAN_END:


JMP loop

;===========================================

InitTimer0:;10ms一次中斷

MOV TMOD,#01H

MOV TH0,#0D8H

MOV TL0,#0F0H

SETB EA

SETB ET0

RET

;===========================================

Timer0Interrupt:

PUSH DPH

PUSH DPL

PUSH ACC

MOV TH0,#0D8H

MOV TL0,#0F0H

;========================

INC COUNTER_INT

MOV A,COUNTER_INT ;10ms 計數值加1

CJNE A,#CN_COUNT_INT,Timer0Interrupt_EXIT

MOV COUNTER_INT,#0

MOV A,SECOND

CJNE A,#99H,Timer0Int_sec

CLR TR0;關閉計時

JMP Timer0Interrupt_EXIT

Timer0Int_sec:

ADD A,#01 ;秒加1

DA A

MOV SECOND,A

SWAP A

ANL A,#0fH

MOV led_buf,A

MOV A,SECOND

ANL A,#0FH

MOV LED_BUF+1,A

;========================

Timer0Interrupt_EXIT:

POP ACC

POP DPL

POP DPH

RETI

;====================================================

; function:Init_M7219 ;初始化max719

; input: ------------

; output: ----------

; usage: a,b

;====================================================

Init_M7219: ;初始化Max7219

MOV a,#0bh ;設置掃描界限

MOV b,#set_limit ;設置位數

lcall w_7219

MOV a,#09h ;設置解碼模式

MOV b,#set_model ;00h非解碼模式;ffh為BCD解碼模式

lcall w_7219

MOV a,#0ah ;設置亮度

MOV b,#set_bright ;15/32亮度

lcall w_7219

MOV a,#0fh ;設置工作方式

MOV b,#set_normal ;正常工作方式

lcall w_7219

MOV a,#0ch ;進入啟動工作方式

MOV b,#set_start

lcall w_7219

RET


;===================================================

; function:disp ;顯示子程序

; input: r0

; output: -----------

; usage: r0,r3,r4,a,b

;===================================================

disp:

MOV r0,#led_buf

MOV r4,#01h

MOV r3,#set_limit

INC r3

disp1:

MOV a,@r0

MOV b,a

MOV a,r4

lcall w_7219

INC r0

INC r4

djnz r3,disp1

RET


;===================================================

; function:w_7219 ;顯示驅動程序;

; input: a ;傳送7219的地址

; b ;傳送7219的數據

; output:-------------

; usage: a,r2

;====================================================

w_7219:

CLR M7219_clk

CLR M7219_din

CLR M7219_load ;置load=0

lcall sd_7219 ;傳送7219的地址

MOV a,b

lcall sd_7219 ;傳送數據

setb M7219_load ;數據裝載

CLR M7219_din

RET

;=================================================

; function:sd_7219 ;向7219傳送數據或地址子程序

; input: a

; output: max7219

; usage: a, r2

;==================================================

sd_7219: ;向7219送地址或數據

MOV r2,#08h

c_sd:

CLR C

CLR M7219_clk

RLC a

MOV M7219_din,c ;准備數據

NOP

setb M7219_clk ;上升沿將數據傳入

NOP

NOP

CLR M7219_clk

djnz r2,c_sd

RET


⑶ 單片機設計製作9S倒計時器~

1.顯示。2.啟動/停止。3.重置30秒
中的第一個和第三個功能有的,至於第2個,程序里是一直倒計時,結束了
就再重置30,繼續倒計時。
如果你需要鍵盤按鍵的話,只需要按鍵將中斷關了或者開了,就可以。

#include <reg52.h>

code unsigned char tab[]=
{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//共陽數碼管 0-9

unsigned char Dis_Shiwei;//定義十位
unsigned char Dis_Gewei; //定義個位
void delay(unsigned int cnt)
{
while(--cnt);
}

main()
{

TMOD |=0x01;//定時器設置 10ms in 12M crystal
TH0=0xd8; // 初值55536,計數10000次,每次1us,總計10ms
TL0=0xf0;
IE= 0x82; //打開中斷
TR0=1; //啟動計數器TR0

while(1)
{
P0=Dis_Shiwei;//顯示十位
P2=0xFD; // P2=1111 1101
delay(300);//短暫延時
P0=Dis_Gewei; //顯示個位
P2=0xFE; // P2=1111 1110
delay(300);
}

}
/********************************/
/* 定時中斷 */
/********************************/
void tim(void) interrupt 1 using 1 //前1為定時中斷TR0
{
static unsigned char second=30,count; //初值30
TH0=0xd8;//重新賦值
TL0=0xf0;
count++;
if (count==100)
{
count=0;
second--;//秒減1
if(second==0)
{ //這里添加定時到0的代碼 ,可以是燈電路,繼電器吸合等,或者執行一個程序
second=30; //減到0是重新賦值99
}
Dis_Shiwei=tab[second/10];//十位顯示值處理
Dis_Gewei=tab[second%10]; //個位顯示處理

}
}

⑷ 單片機計時器原理

單片機用一個振盪器(比如晶體振盪器)作為時間基準,和石英手錶裡面的振盪器差不多,振盪器每震盪一次的時間間隔是一樣的,可以通過振盪器的參數算出來的,每次振盪會產生一個脈沖信號給單片機,單片機只要數數字就能計算時間了。

⑸ 單片機秒錶功能實現的原理

利用單 片機內定時器,一次定時50ms,定義4 個變數,分別是時、 分、秒和中斷次數,每中斷一次中斷次數變數加1,累積20次,即是1S,然後秒加1,夠60秒後秒清0,分加1,60 分後,分清0,時加1,24小時後 ,小時清0,這些都在中斷程序中完成,主程序中不斷地顯示時間,這就是一個時鍾。在此基礎上,增加按鍵控制,可以調整時間,設定鬧鍾,使功能更加完善。

閱讀全文

與秒錶計時器單片機相關的資料

熱點內容
線上租車有什麼app 瀏覽:906
php程序修改 瀏覽:682
下列能查找文件或文件夾的操作是 瀏覽:312
遙感科學與技術演算法待遇 瀏覽:134
cad標注半徑命令 瀏覽:367
打卡領購app邀請碼怎麼填 瀏覽:336
編程訪問許可權沖突 瀏覽:152
桌面運維如何轉伺服器運維 瀏覽:627
tomcat如何設置伺服器 瀏覽:679
php編譯支持mysql 瀏覽:817
mir4手游安卓版怎麼玩國際服 瀏覽:23
伺服器程序怎麼刪除 瀏覽:657
阿里年薪70萬程序員名單照片 瀏覽:575
android定製輸入法 瀏覽:758
linux下編譯android 瀏覽:311
電影重建文件夾 瀏覽:981
第五人格香香解壓 瀏覽:626
我的世界手機版推薦什麼伺服器 瀏覽:706
安卓怎麼下載空戰 瀏覽:586
程序員賣房入市 瀏覽:117