關鍵字:AT89S51,馬表電路
1.實驗任務
(1.開始時,顯示“00”,第1次按下SP1后就開始計時。
(2.第2次按SP1后,計時停止。
(3.第3次按SP1后,計時歸零。
2.電路原理圖

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。
(3.把“單片機系統“區域中的P3.5/T1用導線連接到”獨立式鍵盤“區域中的SP1端口上;
4.程序框圖
T0中斷服務程序框圖

5.匯編源程序
TCNTAEQU 30H
TCNTBEQU 31H
SECEQU 32H
KEYCNTEQU 33H
SP1BIT P3.5
ORG 00H
LJMP START
ORG 0BH
LJMP INT_T0
START:MOV KEYCNT,#00H
MOV SEC,#00H
MOV A,SEC
MOV B,#10
DIV AB
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV A,B
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P2,A
MOV TMOD,#02H
SETB ET0
SETB EA
WT:JB SP1,WT
LCALL DELY10MS
JB SP1,WT
INC KEYCNT
MOV A,KEYCNT
CJNE A,#01H,KN1
SETB TR0
MOV TH0,#06H
MOV TL0,#06H
MOV TCNTA,#00H
MOV TCNTB,#00H
LJMP DKN
KN1:CJNE A,#02H,KN2
CLR TR0
LJMP DKN
KN2:CJNE A,#03H,DKN
MOV SEC,#00H
MOV A,SEC
MOV B,#10
DIV AB
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV A,B
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P2,A
MOV KEYCNT,#00H
DKN:JNB SP1,$
LJMP WT
DELY10MS:
MOV R6,#20
D1:MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET
INT_T0:
INC TCNTA
MOV A,TCNTA
CJNE A,#100,NEXT
MOV TCNTA,#00H
INC TCNTB
MOV A,TCNTB
CJNE A,#4,NEXT
MOV TCNTB,#00H
INC SEC
MOV A,SEC
CJNE A,#100,DONE
MOV SEC,#00H
DONE:MOV A,SEC
MOV B,#10
DIV AB
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV A,B
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P2,A
NEXT:RETI
TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
6.C語言源程序
#include
unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,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;
P0=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;
P0=dispcode[second/10];
P2=dispcode[second%10];
break;
}
while(P3_5==0);
}
}
}
}
void t0(void) interrupt 1 using 0
{
tcnt++;
if(tcnt==400)
{
tcnt=0;
second++;
if(second==100)
{
second=0;
}
P0=dispcode[second/10];
P2=dispcode[second%10];
}
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
發布評論請先 登錄
相關推薦
熱點推薦
【ESP32-C2系列】WT99C202-AI-S2開發板上手指南
1開發板介紹WT99C202-AI-S2開發板是深圳市啟明云端有限公司推出的一款基于WT01C202-AI-S1模組的多媒體開發板。WT01C202-AI-S1模組基于樂鑫ESP32-C2系列芯片
探索DS99R124Q:汽車顯示應用的高效FPD-Link轉換器
探索DS99R124Q:汽車顯示應用的高效FPD-Link轉換器 在汽車電子領域,顯示系統的性能和穩定性至關重要。DS99R124Q作為一款5 - 43 MHz 18位彩色FPD - Link II
Amphenol ExtremePort? Swift Connectors – G99 Series:高速低輪廓連接新選擇
下載: Amphenol Commercial ExtremePort? G99 Swift連接器.pdf 產品概述 Amphenol開發的ExtremePort? Swift連接器,主要應用于PCIe? Gen5信號NRZ 32GT/s、UPI 2.0 24GT/
STMicroelectronics L99H02QF評估板技術解析與應用指南
STMicroelectronics L99H02QF評估板設計用于汽車應用中的直流電機控制。L99H02QF由主板和子板組成,子板上預裝有L99H02QF。主板基于STM8A微控制器,提供邏輯部分
L99LDLH32:面向汽車OLED照明的32通道高精度LED驅動器
STMicroelectronics L99LDLH32 32通道LED驅動器是一款單片線性電流調節器,優化用于汽車外部OLED后照明應用。L99LDLH32驅動器輸出通道的高側配置使得該器件能夠
?基于L99VR01STR的汽車級LDO評估板技術解析與應用指南
STMicroelectronics AEK-POW-LDOV01S評估板配置用于評估L99VR01STR的運行情況。L99VR01 LDO線性穩壓器可提供高達200mA負載電流,在穩壓器禁用時消耗
?STMicroelectronics L99VR03汽車級LDO穩壓器深度解析與技術應用指南
STMicroelectronics L99VR03線性穩壓器專為待機微處理器控制單元系統而設計,特別適用于汽車應用。當穩壓器被禁用時,LDO提供高達300mA的負載電流,靜態電流低至800nA,無
EQ -99XLDLS?緊湊,經濟,高亮度寬帶光源介紹
照亮納米級區域 EQ-99X LDLS 是一種超高亮度、高穩定性的寬帶光源,非常適合小型光展量光學器件。 EQ-99X 專為要求苛刻的成像和光譜應用而設計,具有出色的空間和功率穩定性,可在寬光譜
怎么測單片機系統頻率
單片機系統頻率是指單片機工作時的時鐘頻率,它直接影響單片機的運行速度和處理能力,準確測量系統頻率對單片機應用開發、程序調試和性能優化具有重要意義。測量
單片機怎么驅動電機?
在各類自動化設備和智能裝置中,電機是重要的執行部件,而單片機作為控制核心,需要通過特定的方式驅動電機運轉。單片機驅動電機并非直接連接即可,而是要根據電機類型和功率,搭配合適的驅動電路,才能實現穩定
單片機怎么燒程序
單片機燒程序是將編寫好的程序代碼寫入單片機內部存儲單元,讓單片機按照預設邏輯工作的過程,是單片機應用開發中不可或缺的環節。無論是簡單的燈光控制程序,還是復雜的工業控制算法,都需要通過燒
protel 99 se的設計管理器找不到
求哪位高手指點一下,我打開protel 99 se時,窗口上不顯示設計管理器,點擊Design Manager和圖標都不行,重新從網上下載protel 99 se也是打不開。
發表于 07-11 10:25
Texas Instruments SN74AC3G99/SN74AC3G99-Q1多功能門特性/應用/框圖
Texas Instruments SN74AC3G99/SN74AC3G99-Q1超級可配置多功能門包含三個具有三態輸出的獨立可配置邏輯門。每個門具有四個輸入,可執行布爾函數Y =(A?C+B?C
AD2S99可編程振蕩器技術手冊
AD2S99是一款可編程正弦振蕩器,能夠為旋變器和各種交流變換器提供正弦波激勵。
AD2S99還提供一個相位鎖定至其SIN和COS輸入的同步參考輸出信號(3 V p-p方波)。在應用中,SIN
99秒單片機馬表設計,99s Timer
評論