關鍵字: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];
}
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
發布評論請先 登錄
相關推薦
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
16位單片機S1C17153
16位單片機單片機.16KB ROM / 2KB內存* S1C17653對于程序開發很有用。.產生具有內置振蕩器的操作時鐘。- OSC3B振蕩器電路:2MHz/1MHz/500kHz(類型)內部
發表于 01-15 15:36
?0次下載
51單片機定時器定時1秒程序流水燈結果分析
51單片機是一種廣泛應用的嵌入式微控制器,具有高性能、低功耗、易擴展等優勢。在實際應用中,定時器常用于定時操作,如控制程序運行時間、生成精確的時間延時等。本文將詳細介紹51單片機定時器定時1秒的程序
AvR單片機1us延時函數數怎么寫
是單片機中的一個特殊寄存器,它可以以特定的頻率進行計數,并在計數達到一定值時觸發中斷。 對于AvR單片機來說,我們可以利用定時器的計數器來實現微秒級的延時。AvR單片機常見的定時器有Timer
評論