1.
實驗任務
如下圖所示,在
at89s51
微控制器的p0和
p2埠分別接有兩個共陰數碼管,
p0口驅動顯示秒時間的十位,而
p2口驅動顯示秒時間的個位。
2.
電路原理圖
圖4.11.1
3.
系統板上硬體連線
(1.把「微控制器系統」區域中的
p0.0/ad0
-p0.7/ad7
埠用8芯排線連線到「四路靜態數碼顯示模組」區域中的任乙個a-
h埠上;要求:
p0.0/ad0
對應著a
,p0.1/ad1
對應著b,……
,p0.7/ad7
對應著h。
(2.把「微控制器系統」區域中的
p2.0/a8
-p2.7/a15
埠用8芯排線連線到「四路靜態數碼顯示模組」區域中的任乙個a-
h埠上;要求:
p2.0/a8
對應著a
,p2.1/a9
對應著b,……
,p2.7/a15
對應著h。
4.
程式設計內容
(1.在設計過程中我們用乙個儲存單元作為秒計數單元,當一秒鐘到來時,就讓秒計數單元加
1,當秒計數達到
60時,就自動返回到
0,從新秒計數。
(2.對於秒計數單元中的資料要把它十位數和個數分開,方法仍採用對
10整除和對
10求餘。
(3.在數碼上顯示,仍通過查表的方式完成。
(4.一秒時間的產生在這裡我們採用軟體精確延時的方法來完成,經過精確計算得到
1秒時間為
1.002秒。
程式框圖
圖4.11.2
6.
彙編源程式
secondequ 30h
org 0
start:mov second,#00h
next:mov a,second
mov b,#10
div ab
mov dptr,#table
movc a,@a+dptr
mov p0,a
mov a,b
movc a,@a+dptr
mov p2,a
lcall dely1s
inc second
mov a,second
cjne a,#60,next
ljmp start
dely1s:mov r5,#100
d2:mov r6,#20
d1:mov r7,#248
djnz r7,$
djnz r6,d1
djnz r5,d2
rettable:db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
end7.
c語言源程式
#include
unsigned char code table=;
unsigned char second;
void delay1s(void)
void main(void)
p0=table[second/10];
p2=table[second%10];}}
高精度納秒計時器
ktimer.h windows graphics programming win32 gdi and directdraw?feng yuan publisher prentice hall ptr first edition december 01,2000 高精度納秒計時器,最後修改 2008...
c納秒級計時器 C 11 計時器!真香
在我們寫程式過程中,有時候需要測試我們的程式語句執行時間的耗時,當前也是有很多的庫提供我們去使用,一直沒有良好的跨平台的庫可以提供出來 而且一般這種 也是由我們程式設計師自己呼叫系統的庫來進行,但是往往會出現精度不足和不支援跨平台等問題 他來了。他來了。他踩著七彩祥雲來了 他 就是c 11中引進bo...
用SysTick做的延時計時器
這個實驗是使用systick中斷方式做延時定時器。主要目的是熟悉下systick的使用。首先,定義個延時函式,目的是計數 void delay io uint32 t ntime void timingdelay decrement void 其中timingdelay decrement是供sys...