導航:首頁 > 操作系統 > 單片機計數器設計

單片機計數器設計

發布時間:2022-12-07 08:23:50

單片機80c51設計一個兩位計數器,能對外部的脈沖進行計數,能進行復位。

#include<reg51.h>
#define uchar unsigned char;
uchar distab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}; //0到f
uchar number,dat;
void ext0() interrupt 0
{
dat++;
dat%=100;
}
void t0isr() interrupt 1
{
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
number++;
if(number>1)number=0;
switch(number)
{
case 0:P2=0x02;P0=distab[dat/10];
break;
case 1:P2=0x01;P0=distab[dat%10];
break;
default:break;
}
}
main()
{
TMOD=0x01;
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
TR0=1;
ET0=1;
EX0=1;
IT0=1;
PX0=1;
EA=1;
while(1);
}

❷ 51單片機按鍵計數器設計

利用紅外對管作感應器的話,只要將單片機設置為計數模式就行,然後紅外接收管接到單片機的p3^4或者p3^5口,這是51系列單片機計數功能口,然後設置好tmod寄存器和tcon寄存器選擇工作方式和觸發方式即可,計數變數定義為全局變數,然後傳遞給顯示函數。
如有不懂的地方隨時回復我。
希望我的回答能幫助到你。

❸ 基於51單片機的簡易計數器設計c程序

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code ledtab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0-9
uchar scanled;
uchar disdat[4];
uint ss,time;
sbit led=P1^0;
void dischg()
{
disdat[3]=ss%10;
disdat[2]=(ss/10)%10;
disdat[1]=(ss/100)%10;
disdat[0]=(ss/1000)%10;
}
void t0isr() interrupt 1
{
ss++;
dischg();
}
void t1isr() interrupt 3//顯示
{
TH1=(65536-5000)/256;
TL1=(65536-5000)%256;
P2=1<<scanled;
P0=~ledtab[disdat[scanled]];
scanled++;
scanled%=4;
time++;
if(time>100){time=0;led=~led;}
}
main()

{
TMOD=0x16;
TH0=0xff;
TL0=0xff;
TH1=(65536-5000)/256;
TL1=(65536-5000)%256;
TR1=1;
TR0=1;
ET0=1;
ET1=1;
EA=1;
led=0;
scanled=0;
ss=0;
dischg();
while(1);
}

❹ 基於51單片機的按鍵計數設計,4位,0到9999

數碼管有四位一體的,只用一個就行了,你這用兩個二位一體的數碼管,電路就顯得有些亂。
還有,你那數碼管的段控端少接一條導線,就是數碼管的G端也要連線哪。
更重要的是,共陽數碼管位控端用三極體驅動,當寫程序掃描時,數碼管不亮。

❺ 基於單片機的光電感測器的計數器設計

計數顯示電路可完成對上述脈沖信號的計數和顯示。圖3是由單片機構成的計數系統框圖。 計數系統以MCS-51系列單片機的8031為核心,8013單片機的外圍擴展了程序存儲器27C256和數據存儲器WM0016DRH,此外,用8255擴展了I/O口,同時具有時鍾單元、掉電保護、看門狗單元、通信單元以及LED(發光二極體)顯示器、鍵盤等。 1)8031單片機及存儲器 8031內含4kb EEPROM程序存儲器,具有功耗低、抗干擾能力強的特點,可安置於監測現場,數據存儲器WM0016DRH是一種多功能非易失性SRAM,特點如下:高速高抗干擾自保持,不怕掉電,上下電百萬次數據無丟失,斷電保護10年有效,既可高速連續讀寫,也可任意地址單位元組操作,無需拼湊頁面,隨機讀寫不需等待,立即有效,輸入輸出TTL/CMOS兼容,上電復位輸出,掉電保護,內置看門狗,電源監測,不用外加電路和電池,且引腳與標准SRAM兼容。 2)計數及顯示 多車道車流量數對應的脈沖通過光電隔離耦合並行輸入至8031單片機的P1口,通過軟體控制和鍵盤設定計數值並用LED加以顯示,可自動循環顯示或定點顯示兩種方式,且兩者相互間可任意切換[4]。 當熱釋電感測器安裝位置固定後,輸入脈沖的脈寬和占空比均取決於高速公路上車輛的車速和車距(脈寬對應車輛感測器有效監視方位內的時間,車速和車距有限定),占空比q小於50%,為了准確拾取車流量信息,通過軟體可實現單片機對每一路並行輸入數據的讀取周期小於脈寬,且將每路各自相鄰的兩讀取周期讀取的數據進行運算(暫存前一個周期讀取的數據),若兩數據為01,則自動計1,否則計0。其中0為前一個周期的讀取數據,此時脈沖為低電平,1為後一個周期的讀取數據,此時脈沖為高電平,從而避免了對脈沖的漏計和重復計數,再把4路的讀數每一周期進行一次加運算,累加後的和就是總的車流量。 將8031單片機內的定時器/計數器設定為工作方式1,構成16位二進制計數器[5],採用動態掃描方式直接驅動5位十進制計數器[5]。採用動態掃描方式直接驅動5位十進制LED顯示,最大計數值達到65536,可記錄4車輛的車流量並顯示一個月內的日流量,累計4車道一個月內的日流量總和,計數器內數據保護時間可達一個月之久。當計數器達到設定值時,聲光報警,可存儲數據,並手動復位。 3)時鍾單元 採用DS12C887實時時鍾晶元,具有顯示具體時間信息的功能,若設計調整和設置按鍵,可方便地對時間進行調整和設置,從而為車流量的統計提供准確的時間數據。 4)串列通信單元 由於單片機系統的數據存儲能力和數據處理能力有限,以及現場實時性要求較高,故單片機現場只能暫時存儲採集到的數據和對數據進行簡單處理,至於大量的數據存儲和後續復雜的數據處理可交給上位機完成,由於大型機具有RS-232標准串列口,所以通過8031單片機TTL電平全雙工串列口,附加RS-232電平轉換電路MAX3232可與上位機實現數據通信。 3 軟體設計 計數系統的程序主要包括系統自檢程序、系統初始化程序、鍵盤掃描程序、按鍵處理程序、顯示程序以及數據採集處理程序等,圖4所示為主程序流程。 4 安裝與調試

❻ 單片機設計計數器,為什麼計數鍵和定時器T0(P3.4)連接而不和其它普通的I0口連接

在51單片機中P3.4是T0作為計數器模式的脈沖輸入口,P3.5是T1作為計數器模式的脈沖輸入口,這是單片機內部結構設計定死了的,不能更改,所以計數鍵只能接P3.4或者P3.5,這取決於採用T0或者T1,不能接其他IO。

❼ 求解:怎麼在單片機中實現計數器

用74HC161設計一個四進制計數器,使用同步置數功能。當計數到最大數3時,用一個與非門74LS00,產生一個置數信號加到置數端LD即可。下圖是邏輯圖,也是模擬圖,是計數到最大數3時的截圖。你畫邏輯圖時,要省掉 那個數碼管,那是為了顯示模擬效果的。

❽ 單片機課程設計傳送帶產品計數器的設計

弄好了么可否參考一下

❾ 51單片機設計兩位計數器C語言

#include "reg52.h"
#define uchar unsigned char

#define uint unsigned int
#define dataport P1
sbit s1=P2^0;
sbit s2=P2^1;
sbit s3=P2^2;
sbit wei1=P2^4;

sbit wei2=P2^5;
signed char a=0;

uchar TABLE[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

//延時子程序
void delay1ms(uint t)
{
uint i;
uint j;
for(i=0;i<t;i++)
for(j=0;j<116;j++);
}
//顯示子程序
void display(uchar n)
{
wei1=1;

dataport=TABLE[n/10];
delay1ms(1);
wei1=0;

wei2=1;
dataport=TABLE[n%10];
delay1ms(1);
wei2=0;
}

void main(void)//主程序
{
while(1)
{
if(s1==0)
{
delay1ms(20);
if(s1==0)
{
a++;
}
}
if(a=100)a=0;
if(s2==0)
{
delay1ms(20);
if(s2==0)
{
a--;
}
}
if(a<0)a=99;
if(s3==0)
{
delay1ms(20);
if(s3==0)
{
a=0;
}
}
display(a);
}
}

❿ MCS-51單片機,利用定時計數器設計一個程序,匯編語言,最好有注釋,很簡單的就可以

ORG
0000H
JMP
BEGIN
ORG
0030H
TABLE:
;
共陰極數碼管顯示代碼表
DB
3FH,06H,5BH,4FH,66H
;01234
DB
6DH,7DH,07H,7FH,6fh
;56789
DELAY:
MOV
R5,#20
LOOP4:
MOV
R6,#50H
;延時20X20ms
LOOP5:
MOV
R7,#100
DJNZ
R7,$
DJNZ
R6,LOOP5
DJNZ
R5,LOOP4
RET
;---------------------------------------
BEGIN:
MOV
P2,#0FFH
;P2口置高電平,准備接收信號
MOV
R4,#0
MOV
A,R4
;R4位標志值送A寄存器
AGAIN:
MOV
DPTR,#TABLE
MOVC
A,@A+DPTR
MOV
P1,A
LOOP1:
MOV
A,P3
;
接收p3口的搶答信號
CPL
A
JZ
LOOP1
LOOP2:
RRC
A
;有人搶答信號則逐次移動判斷哪一位搶答
INC
R4
JNC
LOOP2
;********************
MOV
A,R4
MOVC
A,@A+DPTR
;找到相應位顯示代碼
MOV
P1,A
LEDDIS:
MOV
A,#0FFH
CLR
C
LEDDIS1:
RLC
A
DJNZ
R4,LEDDIS1
MOV
P0,A
LOOP3:
JNB
P2.2,BEGIN
;若主持人按下復位信號鍵,則轉向主程序
CPL
P2.0
;若沒按復位信號鍵,則通過p2.2口給出高低信號驅動蜂鳴器
LCALL
DELAY
;調用延時子程序
SJMP
LOOP3
;p2.2口反復間隔0.4s變化,驅動蜂鳴器
END

閱讀全文

與單片機計數器設計相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:962
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:142
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:732
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:141
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163