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 ...