關鍵字: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];
}
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
發布評論請先 登錄
相關推薦
將信號引入DS99R104 ,DS99R104沒有輸出反應,為什么?
第一次使用這個轉換芯片,103端時鐘信號都輸進去了,DOUT端也可以測量到信號輸出,但是怎么判斷信號輸出的正確呢?我將信號引入DS99R104 ,DS99R104沒有輸出反應,求專家或用過的這類芯片的大神解答!!
發表于 12-20 08:31
CBM99D57BQ
CBM99D57 可在多種高端通信系統中實現I/Q 調制器和上變頻器功能。CBM99D57 內部集成了高速直接數字頻率合成器(DDS)、高速 14 位數模轉換器(DAC)、時鐘倍頻電路、數字濾波器
發表于 12-13 15:05
?0次下載
14位,3.3V CMOS直接數字合成器-CBM99D10
內部頻率、相位與振幅控制字來控制DDS輸出信號。北斗GNSS接收機是一種專業用于接收北斗衛星信號的設備,如下是北斗接收機應用框圖。CBM99D10BQ應用框圖**D
數控車床m99指令的用法
數控車床是一種高度自動化的機床,廣泛應用于機械加工領域。在數控車床的編程中,M代碼(輔助功能代碼)起著非常重要的作用。M99指令是數控車床編程中的一種輔助功能代碼,用于實現程序的循環調用。下面
基于51單片機的手動數字時鐘
具體實現功能由51單片機+8位共陰數碼管+獨立按鍵構成。具體功能:(1)利用數碼管顯示時分秒,顯示格式為“時-分-秒”;(2)利用6個按鍵控制時、分、秒,設定好后自動開始時鐘顯示;(3)設置秒
單片機的中斷機制
單片機的中斷機制是一種重要的處理方式,它允許單片機在執行主程序的過程中,能夠暫停當前任務,轉而處理外部或內部緊急事件。這種機制極大地提高了系統的響應速度和處理能力,使得單片機在各種應用領域中得到廣泛應用。以下是對
CBM24AD99Q數據手冊-中文版
CBM24AD99Q芯片是低噪聲24 位同步采樣Δ-Σ模數轉換器(ADC),具有內置可編程增益放大器(PGA)、內部電壓基準和內部振蕩器。CBM24AD99Q包含顱外腦電圖(EEG)和心電圖(ECG
發表于 10-16 13:39
?0次下載
DS99R101/DS99R102 3-40MHz DC平衡24位LVDS串行器和解串器數據表
電子發燒友網站提供《DS99R101/DS99R102 3-40MHz DC平衡24位LVDS串行器和解串器數據表.pdf》資料免費下載
發表于 07-09 09:39
?0次下載
基于51單片機24秒倒計時設計
本資源內容概要:? ? ? ?這是基于51單片機24秒倒計時設計包含了 C語言程序源代碼(keil軟件打開) 。本資源適合人群:? ? ? 單片機愛好者、電子類專業學生、電子diy愛好者。本資源能
發表于 06-25 10:03
?0次下載
數控車床m99指令的用法
數控車床是一種高度自動化的機床,廣泛應用于機械加工領域。在數控車床的編程中,M代碼(輔助功能代碼)起著非常重要的作用。M99指令是數控車床編程中的一種輔助功能代碼,用于實現程序的循環調用。下面我們將
cnc怎么編程m99循環次數
CNC(計算機數控)編程是一種用于控制機床自動加工零件的技術。M99是一個在數控程序中用于結束循環的指令。 引言 CNC編程是一種廣泛應用于制造業的技術,它允許機床按照預設的程序自動加工零件。CNC
STM8S105 TIMER4無法運行的原因?怎么解決?
STM8S105單片機進行TIMER4初始化用來計時,但是只要打開全局中斷就會進入中斷向量表TLI中斷,并且TIMER4中斷服務程序似乎并沒有執行,幫忙看看是怎么回事?
void
發表于 05-14 08:12
如何系統、科學地自學單片機?
很多初學者都會面臨這個問題,我想學習單片機、我也想學好單片機、我也想系統地學習單片機,但是單片機涉及到的學科多且雜根本不是三天兩天就能學完的,很多人都逃脫不了從入門到放棄的怪圈?那么我
干貨!89C51單片機模擬交通燈控制,原理圖,仿真程序等完整資料
和實物是一樣的。因此,實物和仿真是一一對應的!
加載“基于畢業51單片機的交通燈設計.hex”文件到單片機,點擊運行,交通燈開始工作(二極管顯示紅、黃、綠三色燈,LED顯示倒計時)。
在程序里我們設置
發表于 03-14 18:23
單片機的最小系統由什么組成 單片機的最小系統包括哪些
單片機(Microcontroller Unit,MCU)的最小系統包括以下幾個主要組成部分: 單片機芯片:單片機是整個最小系統的核心部分,它集成了中央處理器(Central Processing
評論