當前位置:首頁 » 課程大全 » 51單片機秒錶計時器課程設計

51單片機秒錶計時器課程設計

發布時間: 2021-02-09 02:33:57

1. 基於51單片機的秒錶設計

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

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

原理圖如下,

程序如下:

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

;寄存器分配定義

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

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


3. 單片機 秒錶課程設計 要求:利用51單片機設計一秒錶計時電路,能夠顯示分、秒

很簡單的,在網路上搜下就能搜到了

4. 51單片機的秒錶計時器設計,求大神幫忙設計電路圖和C語言程序!!

這個程序可以實現秒的計時,按鍵控制開始、暫停、清零功能,更多功能自己在看清程序的基礎上進行改進。

#include <reg51.H>
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;
unsigned char keycnt;
unsigned int tcnt;

void main(void)
{
unsigned char i,j;

TMOD=0x02;
ET0=1;
EA=1;
second=0;
P1=dispcode[second/10];
P2=dispcode[second%10];
while(1)
{
if(P3_5==0)
{
for(i=20;i>0;i--)
for(j=248;j>0;j--);
if(P3_5==0)
{
keycnt++;
switch(keycnt)
{
case 1:
TH0=0x06;
TL0=0x06;
TR0=1;
break;
case 2:
TR0=0;
break;
case 3:
keycnt=0;
second=0;
P1=dispcode[second/10];
P2=dispcode[second%10];
break;
}
while(P3_5==0);
}
}
}
}

void t0(void) interrupt 1 using 0
{
tcnt++;
if(tcnt==4000)
{
tcnt=0;
second++;
if(second==100)
{
second=0;
}
P1=dispcode[second/10];
P2=dispcode[second%10];
}
}

5. 單片機電子秒錶課程設計

高估我啦,你上csdn上找找把

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

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

7. 51單片機秒錶課程設計

你好,我空間裡面來有源的正好可以使用

強調一下,此文實為轉載,原因就是東西搞的不錯,放心使用

http://hi..com/lyzhangxiang/blog/item/c37397ef363abd2e2df53431.html

熱點內容
武漢大學學生會輔導員寄語 發布:2021-03-16 21:44:16 瀏覽:612
七年級學生作文輔導學案 發布:2021-03-16 21:42:09 瀏覽:1
不屑弟高考成績 發布:2021-03-16 21:40:59 瀏覽:754
大學畢業證會有成績單 發布:2021-03-16 21:40:07 瀏覽:756
2017信陽學院輔導員招聘名單 發布:2021-03-16 21:40:02 瀏覽:800
查詢重慶2018中考成績查詢 發布:2021-03-16 21:39:58 瀏覽:21
結業考試成績怎麼查詢 發布:2021-03-16 21:28:40 瀏覽:679
14中醫醫師資格筆試考試成績查分 發布:2021-03-16 21:28:39 瀏覽:655
名著賞析課程標准 發布:2021-03-16 21:27:57 瀏覽:881
北京大學商業領袖高端培訓課程 發布:2021-03-16 21:27:41 瀏覽:919