微控制器程式設計,設計電子秒錶,用共陽數碼管,60秒清零

時間 2021-09-10 12:12:59

1樓:匿名使用者

; p0段選 ,p2.0個位位選,p2.1十位位選 。共陽數碼管 16m晶振。

strt equ p2.5

stp equ p2.6

clrr equ p2.7

org 00h

ajmp main

org 0bh

ajmp t0int

org 30h

main: mov r0,#20

mov tmod,#01h

mov th0,#3ch

mov tl0,#0b0h

mov dptr,#table

setb ea

setb et0

k1: lcall disp

jb strt,k2

lcall disp

jnb strt,$-3

ajmp start

k2: jb stp,k3

lcall disp

jnb stp,stop

k3: jb clrr,k1

lcall disp

jnb clrr,clear

ajmp k3

start: setb tr0

ajmp k1

stop: clr tr0

ajmp k2

clear: clr tr0

mov 40h,#0

ajmp k1

t0int: mov th0,#3chmov tl0,#0b0h

djnz r0,rti

mov r0,#20

mov a,40h

cjne a,#99,add1

mov 40h,#00h

clr tr0

ajmp rti

add1: add a,#01h

mov 40h,a

rti: reti

disp: mov a,40h

mov b,#10

div ab ;//當前值除以10mov 20h,a ;//得出的商送給十位mov 21h,b ;//得出的餘數送給個位clr p2.0

setb p2.1

mov a,20h ;//十位顯示movc a,@a+dptr

mov p0,a

lcall delay

clr p2.1

setb p2.0

mov a,21h ; //個位顯示movc a,@a+dptr

mov p0,a

retdelay: ;誤差 0us

mov r6,#01h

dl0:

mov r5,#61h

djnz r5,$

djnz r6,dl0

rettable: db 0c0h,0f9h,0a4h,0b0h,99h ;//共陽極0-9顯示**

db 92h,82h,0f8h,80h,90hend

2樓:匿名使用者

只需要改一句**即可:

if(i==100) i=0; 改為 if(i==60) i=0;

我之前做的是0--100

用51微控制器C語言版設計秒錶倒計時

要分析乙個微控制器 c 語言程式設計的秒錶程式,需要考慮以下幾個方面 硬體平台 需要了解秒錶程式所執行的微控制器型別,以及硬體平台上可用的硬體資源,如定時器 顯示器等。時間計數方式 需要確定秒錶程式使用的時間計數方式,是通過定時器實現週期性計時,還是通過程式每隔一段時間手動計時。顯示方式 需要確定秒...

怎樣用微控制器設計多路數字電壓表,微控制器8路數字電壓表設計,急急急

微控制器設計多路數字電壓表,主要是設計採集,將輸入的電壓量 模擬訊號 轉換成數字量 二進位制 通常老的方案都是用51微控制器 ad轉換晶元。ad轉換晶元的位數就決定了你的解析度,你的是5v 0.019 263,轉換成為二進位制數8位ad晶元可能精度不夠,要選用10位ad晶元,最小解析度可以達到0.0...

用51微控制器和C語言程式設計 利用矩陣鍵盤依次顯示1,2,3,4,512的平方,顯示在數碼管上

這是我以前寫的 你對照一下吧 字型太小累眼睛 我的這個 絕對可用 沒有錯誤 只是i 0口不 一樣 主要是你矩陣鍵盤那塊有問題 你對照我的 很快就找出來了 include define uchar unsigned char define uint unsigned int sbit dula p2 ...