利用微控制器STC89C52設計製作電子錶

2022-09-07 02:51:02 字數 3980 閱讀 9596

電路圖源程式

全域性思路:定時模組單獨工作, 按鍵掃瞄模組和顯示模組分時輪流執行

一、 定時模組

微控制器啟動後,首先啟動定時器

機器週期是1um,所以定時器計數500000是半秒,1000000次是一秒

將1000000分成256份,每份是3906,定時器每次計數3906。使定時器0工作在方式1,每完成一次計數產生一次中斷使r2自加1,r2初值是0,則當r2=128時是半秒,當r2=0時是一秒

計數初值:65536-3906=61630=f0beh 所以th0值為f0h,tl0值為beh

二、按鍵掃瞄模組(kt)

定時器啟動後,程式轉入按鍵掃瞄和 led顯示的迴圈,首先是按鍵掃瞄

按鍵s0按下,使標誌r5加1。r5的值代表顯示模組的顯示模式號碼,加1表示模式的切換 r5=x 對應模式x

按鍵s1按下,使標誌r6的值為1

按鍵s2按下,使標誌r7的值為1 在時調整、分調整中,s1表示加1,s2表示減1;在鬧鈴調整中,s1表示時加1,s2表示分加1

按鍵s3按下,使r5的值為0,即返回模式0

三、鬧鐘模組

在這個模組中,程式判斷dshi和shi是否相等以及dfen和fen是否相等,如果兩個判斷都相等就使p2.0清0,驅動蜂鳴器發聲;有任意乙個判斷不相等都使p2.0置1,蜂鳴器不工作

四、顯示模組

一共4個led管,採用分時掃瞄顯示

顯示分為不同的模式:模式0、模式1、模式2、模式3、模式4,對應的標誌r5的值為0、1、2、3、4

模式0,正常模式,顯示為「時:分」

模式1,正常模式,顯示為「分:秒」

模式2,時調整模式,顯示為「時:分」,並且「分」正常顯示,「時」一閃一閃

模式3,分調整模式,顯示為「時:分」,並且「時」正常顯示,「分」一閃一閃

模式4,鬧鈴調整模式,顯示為「時:分」,並且「時」、「分」全部一閃一閃

在此模組,程式根據r5的值進入對應模式。

在模式0和模式1,只顯示,不能調整;

在模式2(模式3)可以通過按鍵s1、s2對時(分)進行加減操作;

在模式4,可以通過s1、s2對鬧鈴的時、分進行加操作(沒有減的操作)

各個模式下,按鍵s0使模式號增加,按鍵s3使任何模式返回模式0

五、總結

1.本實驗選用了共陰極led顯示器,而stc89c52的高電平驅動能力很差,所以需要使用電晶體放大,段碼訊號從基極輸入。又因為選用了pnp型電晶體,所以要sn和段碼訊號都是低電平才能使led發光,致使共陰極的led需要共陽極的**來驅動。

2.由於stc89c52的高電平驅動能力很差,一般都不做為驅動,所以以後的實驗應盡量選擇共陽極led,因為這樣可以減少電晶體的數目(本實驗用了7個,如果使用共陽極led則可以只用4個)。

3.由於定時器的工作與程式的迴圈查詢時分開的,所以誤差主要**於微控制器的自身頻率和定時器初值的設定,即:理論的初值只適合於標準的12mhz,現實的微控制器頻率可能不是標準值。可以通過具體的誤差反算出正確的初值。

附:電路圖

配套源程式:

org 0000h

ajmp main

org 000bh

ajmp int10

org 0030h

main: mov sp,#53h

mov r5,#00h初始模式設定為模式0

shi equ 20h

fen equ 21h

miao equ 22h

dshi equ 27h鬧鈴時

dfen equ 28h鬧鈴分

xianshi equ 29h ;顯示標誌,當為全0時顯示,全1不顯示

mov 2ah,#00h

cpl p2.7

mov shi,#00h

mov fen,#00h

mov miao,#00h

mov dshi,#10 ;預設10:30鬧鈴

mov dfen,#30

mov xianshi,#00h ;預設為顯示

mov r2,#00h

mov r6,#00h ;按鍵1(加)標誌

mov r7,#00h ;按鍵2(減)標誌

mov tmod,#01h

mov tl0,#0beh

mov th0,#0f0h

setb ea

setb et0

setb tr0

loop: ajmp aa3鍵盤掃瞄及 led顯示入口

int10: mov tl0,#0beh

mov th0,#0f0h

inc r2

cjne r2,#128,int11

acall aa1半秒中斷入口

int11: cjne r2,#0,int2

acall aa2一秒中斷入口

int2: reti

aa1: cpl p2.7半秒中斷服務 p2.7取反,使兩點閃動

mov 2ah,#0ffh

retaa2: cpl p2.7一秒中斷服務 p2.7取反,使兩點閃動

mov 2ah,#00h

inc miao

mov r0,#22h

cjne @r0,#60,aa22

mov miao,#00h

inc fen

dec r0

cjne @r0,#60,aa22

mov fen,#00h

inc shi

dec r0

cjne @r0,#24,aa22

mov shi,#00h

aa22: ret

aa3: acall kt呼叫鍵盤掃瞄程式

返回:k0閉合則模式號加1

k1閉合則r6=#01h

k2閉合則r7=#01h

k3閉合則模式號置1,即返回模式0

aa5: push acc

mov a,shi鬧鐘

cjne a,dshi,aa55

mov a,fen

cjne a,dfen,aa55

clr p2.0

pop acc

ajmp aa4

aa55: setb p2.0

pop acc

aa4: mov a,r5led顯示 ,模式標誌位r5

rl a

mov dptr,#modtab

jmp @a+dptr

modtab: ajmp mod0 ;時分式

ajmp mod1 ;分秒式

ajmp mod2時調整

ajmp mod3分調整

ajmp mod4 ;鬧鈴設定模式

ajmp mod5預留擴充套件模式(未定義)

ajmp mod6預留擴充套件模式(未定義)

mod0: mov xianshi,#00h ;開顯示

mov r3,#3 ;模式0(正常模式) 時分式 ,標誌 r5=0

mov a,fen ;顯示s3

mov b,#10

div ab

swap a

add a,b

mov 24h,a

anl 24h,#0fh

mov r4,24h

push acc

acall prt

dec r3顯示s2

pop acc

swap a

anl a,#0fh

mov r4,a

acall prt

dec r3顯示s1

mov a,shi

mov b,#10

div ab

swap a

add a,b

mov 24h,a

anl 24h,#0fh

mov r4,24h

push acc

acall prt

dec r3顯示s0

pop acc

swap a

anl a,#0fh

89C52微控制器

3.2 stc89c52系列微控制器系統結構特點 stc89c52是一種低功耗 高效能cmos8位微控制器,具有8k 在系統可程式設計flash 儲存器。使用高密度非易失性儲存器技術製造,與工業80c51 產品指令和引腳完全相容。片上flash允許程式儲存器在系統可程式設計,亦適於常規程式設計器。在...

基於STC89C51微控制器定時插座的設計與實現報告

摘要隨著家用電器的越來越普及和人們生活節奏的加快,人們對電器的依賴性進一步提高,對電器的定時需求也進一步增大。定時開關插座可用於電飯煲 飲水機 電視機 電腦 電動車電池的充電 定時開關電熱毯等需要定時供電的場合。定時開關插座的使用能夠做到節能 安全 方便等。本文介紹了一種基於stc89c51微控制器...

AT89C51微控制器的基本結構

at89c51微控制器的主要工作特性 內含4kb的flash儲存器,擦寫次數1000次 內含28位元組的ram 具有32根可程式設計i o線 具有2個16位可程式設計定時器 具有6個中斷源 5個中斷向量 2級優先權的中斷結構 具有1個全雙工的可程式設計序列通訊介面 具有乙個資料指標dptr 兩種低功...