導航:首頁 > 操作系統 > 單片機行程開關計數器的程序

單片機行程開關計數器的程序

發布時間:2022-10-29 17:15:56

㈠ 急!51單片機定時計數器實驗編程(匯編語言)

將計數值按二進制數在P1口驅動發光二極體顯示出來,到15秒後,計數值清零再從0開始計。
--這些發光二極體,是低電平發光,還是高電平發光?
下面的程序,適合於低電平發光:
ORG
0000H
LJMP
START
ORG
000BH
DEC
A
MOV
P1,
A
RETI
ORG
0030H
START:
MOV
TMOD,
#16H
MOV
TH0,
#255
MOV
TL0,
#255
SETB
TR0
SETB
TR1
MOV
IE,
#82H
LOOP:
MOV
A,
#255
MOV
P1,
A
MOV
R2,
#240
WAIT:
MOV
TH1,
#HIGH(65536-62500)
MOV
TL1,
#LOW(65536-62500)
JNB
TF1,
$
CLR
TF1
DJNZ
R2,
WAIT
SJMP
LOOP
END
如果是高電平發光,可以使用下面的程序:
ORG
0000H
LJMP
START
ORG
000BH
INC
A
MOV
P1,
A
RETI
ORG
0030H
START:
MOV
TMOD,
#16H
MOV
TH0,
#255
MOV
TL0,
#255
SETB
TR0
SETB
TR1
MOV
IE,
#82H
LOOP:
CLR
A
MOV
P1,
A
MOV
R2,
#240
WAIT:
MOV
TH1,
#HIGH(65536-62500)
MOV
TL1,
#LOW(65536-62500)
JNB
TF1,
$
CLR
TF1
DJNZ
R2,
WAIT
SJMP
LOOP
END

㈡ 單片機定時器/計數器程序如何掌握,我不會寫

單片機定時器/計數器程序如何掌握,我不會寫。
這很正常,萬事開頭難。
為便於理解,我用打比方的形式說明。
1、為什麼叫定時器/計數器?因為可以對內部時鍾計數(定時器)也可以對外部脈沖計數(計數器)。
2、好比你有一個水桶(相當於定時器/計數器),這個桶是有一定容量的(定時器/計數器使用兩個位元組計時/計數),現在拿一個碗從水池向桶內裝水(一碗水相當於一個計時/計數脈沖),裝水滿了會怎麼樣?外溢(相當於定時器/計數器溢出)。一般我們利用的就是這個溢出功能(也有例外),因為這時候他會通知你(有溢出標志)。
3、51單片機定時器/計數器是加計數,兩位元組計數寄存器計數最大數65535,再多一個計數單位就回零了,同時置位溢出標志(開了中斷還會引起中斷)。
4、因為是加計數,你期望的計數值不一定從零開始,那就要「墊底」(賦初值)。
理順消化一下,看是不是明白了。
編寫單片機定時器/計數器程序就是設置與單片機定時器/計數器有關的寄存器,理解上邊的就好辦了。

㈢ 51單片機定時/計數器的問題 (代碼)

TH0 = THC0; // 向TH0寄存器寫入THC0常數,也就是0xEE

TL0 = TLC0; // 向TL0寄存器寫入TLC0常數,也就是0x00

// 以上完成定時器0在16位模式下的初值載入,也就是0xEE00
TR0 = 1; // 開啟定時器0的運行。此語句之後Timer0計數器才開始累加

ET0 = 1; // 開啟定時器0的中斷。此語句之後,Timer0計數器溢出才會產生中斷標志

EA = 1; // 開啟總中斷開關。此語句之後,中斷標志置位才會觸發PC跳轉到對應的中斷向量

好好學習天天向上

㈣ 51單片機按鍵計數器C語言編程

#include<reg51.h>
#defineucharunsignedchar;
uchardistab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};//0到f
ucharnumber,dat,dis[4];
voidt0isr()interrupt1
{
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
number++;
number%=3;
switch(number)
P1=0x20<<number;
P0=distab[dis[number]];
}
voidint0isr()interrupt0
{
dat++;
dat%=1000;
dis[0]=dat%10;
dis[1]=dat%100/10;
dis[2]=dat/100;
}
main()
{
TMOD=0x01;
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
TR1=1;
ET1=1;
EX0=1;
IT0=1;
EA=1;
while(1);
}

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

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

㈥ 單片機定時器/計數器程序,如果想讓定時器T1工作在方式0 那麼應該是TMOD=;如果讓T1工作在方式1,那

TMOD高四位是負責定時器1的操作,低4位負責定時器0的操作。

而每個四位中的M1和M0負責控制定時器工作方式,其中

M1M0 = 00, 定時器工作在方式0

M1M0 = 01,方式1

M1M0 = 10,方式2

M1M0 = 11,這種設置只對定時器0有效,表示定時器0工作方式

因此,T1工作在方式0,TMOD = 00000000;

T1工作在方式1,TMOD = 00010000;

㈦ 單片機定時器/計數器程序,如果想讓定時器T0工作在方式1 那麼應該是TMOD=0x01;如果讓T0工作在方式0,那

TMOD =0x00;

定時模式0:TMOD=0X00;定時模式1:TMOD=0x01,;定時模式2:TMOD=0x02,:定時模式3:TMOD=0x03;
定時器的設置可以參考:http://wenku..com/link?url=ck___tBbK

㈧ 單片機計數器編程如何計數脈沖,用C語言

每50ms來了多少脈沖,那定時器就不能50ms中斷一次,盡量快的中斷會比較好,2個變數計數,一個計算50ms,一個累加脈沖

㈨ 單片機計數器0到999的編程怎麼寫

估計你說的是匯編語言。我以51為標准假設晶振為6Mhz.
計算計數初值是0CEH。計數器工作方式2。
程序:mov ie, #00h 關中斷
mov tmod,#02h 置計數器工作方式2
mov th0,#0ceh 保存計數初值
mov tl0,#0ceh 值計數初值
mov r0,#0ah 置循環次數
setb tr 啟動計數器
loop:jbc tf0,loop1 判斷溢出標志位
ajmp loop
loop1:cjnz r0,loop xunhuan
reti 返回主程序

㈩ 簡述8051單片機定時計數器編程的基本步驟

  1. 設置定時計數器的工作方式。

  2. 給定時器賦初始值:THx 和TLx;

  3. 允許定時器中斷;

  4. 允許全局中斷;

  5. 啟動定製器;

  6. 中斷函數編寫(這個是目的,定時計數最終要干什麼?)

閱讀全文

與單片機行程開關計數器的程序相關的資料

熱點內容
pboc長度加數據加密 瀏覽:187
英雄聯盟國際服手游怎麼下安卓 瀏覽:297
程序員的思路 瀏覽:234
只能用命令獲得的四種方塊 瀏覽:358
怎麼用命令方塊防止開創造 瀏覽:807
掃描版的pdf 瀏覽:790
編程貓怎樣做3d游戲 瀏覽:207
怎麼查找雲伺服器上的ftp 瀏覽:156
我的世界伺服器如何注冊賬號 瀏覽:934
統計英文字元python 瀏覽:423
linux信息安全 瀏覽:908
壓縮機接線柱爆 瀏覽:999
程序員自主創業 瀏覽:584
匯編程序員待遇 瀏覽:359
怎麼批量有順序的命名文件夾 瀏覽:211
杭州程序員健身 瀏覽:21
dvd光碟存儲漢子演算法 瀏覽:758
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:672
長沙好玩的解壓項目 瀏覽:145