導航:首頁 > 操作系統 > 51單片機定時計數器的語句

51單片機定時計數器的語句

發布時間:2024-06-07 17:25:01

1. 51單片機代碼(定時器/計數器實驗)求詳細注釋,非常謝謝

ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0_INT
ORG 0100
MAIN:
MOV TMOD,#01H ;定時器0設為模式1
MOV TH0,#0D8H ;賦初值(65536-10000)
MOV TL0,#0F0H
MOV A,#00H ;A=0
MOV P1,A ;P1=A
MOV R0,#20 ;R2=20
SETB EA ;開中斷
SETB ET0 ;開定時器0中斷
SETB TR0 ;啟動定時器0
LOOP: NOP ;空操作
LJMP LOOP ;轉LOOP
T0_INT:
MOV TH0,#0D8H ;重賦初值
MOV TL0,#0F0H
DJNZ R0,OUT ;R0減1不為0轉OUT
MOV R0,#20H ;R0重賦初值
CPL A ;A取反
MOV P1,A ;P1=A
OUT: RETI
END
;該程序結果在P1上產生周期為400毫秒的脈沖輸出,控制LED燈的話,以400毫秒周期閃爍

2. 51單片機定時計數器

TMOD = 0X01; //設置t0為16位(01)計時模式,以TR0來啟動計時器
//計算初值
TH0 = (65536 - 50000) / 256;
TL0 = (65536 - 50000) % 256;
EA = 1; //開總中斷
ET0 = 1;//開定時器0中斷
TR0 = 1; //啟動T0
while (1);
定時器中斷服務函數;
void timer0_service(void) interrupt 1 (T1 時這里應為3)
{
TH0 = (65536 - 50000) / 256;
TL0 = (65536 - 50000) % 256; //打算繼續定時下去時,進入中斷服務函數後,重新設定一下初值。
times++; //這可以產生更大的定時
if (times == 20) {
times = 0;
led = !led;
}
}

3. C51單片機程序

TH0=0xf6;

TL0=0xff;

上兩行是定時器/計數器T0的初值,因為T0是16位的,所以用TH0表示高八位,TL0表示低八位

TH1=0xfd;

TL1=0xfd;

T1初值

TMOD=0x21;

定時器/計數器模式控制寄存器如圖

GATE=1時,由外部中斷引腳INT0、INT1來啟動定時器T0、T1

GATE=0時,僅由TR0,TR1置位分別啟動定時器T0、T1。

C/T=0時為定時功能,C/T=1時為計數功能

M0、M1——方式選擇功能

M1M0工作方式計數器模式TMOD(設置定時器模式)

00方式013位計數器TMOD=0x00

01方式116位計數器TMOD=0x01

10方式2自動重裝8位計數器TMOD=0x02

11方式3T0分為2個8位獨立計數器,T1為無中斷重裝8位計數器TMOD=0x03

PCON=0x00;

PCON主要是為CHMOS型單片機的電源控制而設置的專用寄存器

WDCON=0x00;清狗

SCON=0x50;

SCON1=0x40;

串口控制寄存器

4. 求一個51單片機用T0做計數器的C語言代碼。

//timer0設定為計數器模式1
TMOD &= 0xf0; //清除原來的設定
TMOD |= 0x05; //T0為計數器模式1
TH0 = 0;
TL0 = 0; //從0開始計數
TR0 = 1; //使能T/C0
// IE |= 0x82; //Timer0中斷使能,不需要就注釋掉該行
另外執行不了有可能是你的實驗板沒有連接T0引腳

5. 用51單片機測頻率,T0定時,T1計數,具體程序應該怎麼寫呀,跪求完整點的

數碼管還是液晶屏顯示?晶振頻率多少?
用定時器時,先設置工作方式再裝入初值開啟中斷再開啟定時器/計數器
void init()//初始化設置
{
TMOD=0x51;//定時器1作為計數器,定時器0作為定時器用
TH1=0;//計數器清0
TL1=0;
EA=1;//開總中斷
ET0=1;//允許定時器0中斷
TH0=(65535-50000)/256;// 晶振12M時 定時50ms需裝入的初值
TL0==(65535-50000)%256;
TR0=1;//啟動計數器
TR1=1;//啟動定時器
}

定時器中斷程序
void timer0()interrupt 1//注意:定時器0的中斷序號為1
{
TH0=(65535-50000)/256;
TL0==(65535-50000)%256;
TR1=0;//暫停計數
bb=TH1;//讀出計數器數據
cc=TL1;
TL1=0;//計數器清0
TH1=0;
TR1=1;//重新啟動
}

頻率f=(bb*256+cc)*20
然後分離出個十百千萬,送液晶屏或數碼管去顯示
主程序先初始化,然後就是不停地顯示

6. MCS_51鍗曠墖鏈虹殑瀹氭椂鍣═O鍋滄㈣℃暟鐨勮鍙ユ槸浠涔

TR0=0錛涘仠姝㈣℃暟
TR0=1錛涘紑濮嬭℃暟

7. 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跳轉到對應的中斷向量

好好學習天天向上

8. 求個 51單片機 計數器 程序 註解

#include "reg52.h"
#define u8 unsigned char
#define u16 unsigned int

sbit sw1=P3^4;
sbit sw2=P3^5;
sbit sw3=P3^6;

sbit e0=P2^0;
sbit e1=P2^1;
sbit e2=P2^2;
sbit e3=P2^3;

u8 ds[4]={0,0,0,0};
u16 num=0;
u8 code table[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0x00};//共陰數碼管

u8 ajsm() //SW3按鍵檢測和處理
{
static u16 ms;
if(sw3==0)
{
if(++ms==2)
{
return 1;
}
}
else
{
ms=0;
}
return 0;
}

void xs() //顯示
{
static u8 a;
a++;
if(a>3)a=0; //a最大為3,大於3則為0
e0=1;
e1=1;
e2=1;
e3=1;//以上4條語句關閉顯示(沒有位選)
P0=table[ds[a]];//段選碼送P0
switch(a)
{
case 0: //a=0,顯示第一位(位選e0=0其餘為1)
{
e0=0;
e1=1;
e2=1;
e3=1;
}break;
case 1: //a=1,顯示第二位(位選e1=0其餘為1)
{
e0=1;
e1=0;
e2=1;
e3=1;
}break;
case 2: //a=2,顯示第三位(位選e2=0其餘為1)
{
e0=1;
e1=1;
e2=0;
e3=1;
}break;
case 3: //a=3,顯示第四位(位選e3=0其餘為1)
{
e0=1;
e1=1;
e2=1;
e3=0;
}break;
}
}

void main()
{

TMOD=0x66;//定時器0和1均設置為自動重裝載計數器模式
TH0=0xff;//定時器0來一個脈沖中斷一次
TL0=0xff;
TH1=0xff;//定時器1來一個脈沖中斷一次
TL1=0xff;
TR1=1;//啟動計數器1
TR0=1;//啟動計數器0
ET0=1;//允許定時器0中斷
ET1=1;//允許定時器1中斷
EA=1;//開總中斷
while(1)
{
ds[0]=num/1000%10;
ds[1]=num/100%10;
ds[2]=num/10%10;
ds[3]=num%10; //以上四句將num轉換為數碼管顯示的值
xs(); //調用顯示
if(ajsm()) //檢測按鍵
{
num=0; //清零
}

}
}

void time0()interrupt 1 //SW1按鍵處理
{
if(num<9999)num++;
}

void time1()interrupt 3 //SW2按鍵處理
{
if(num>0)num--;
}

閱讀全文

與51單片機定時計數器的語句相關的資料

熱點內容
程序員到公司當領導 瀏覽:225
用演算法控制玩家的行為 瀏覽:482
androidsdk17下載 瀏覽:792
怎麼給單獨表格添加密碼 瀏覽:12
下載壓縮密碼 瀏覽:259
android系統上編程 瀏覽:469
單片機模擬i2c從機 瀏覽:237
教育年報系統伺服器如何開啟 瀏覽:840
對稱密鑰加密後的長度 瀏覽:292
微製造編程軟體下載 瀏覽:107
旋住宿酒店用哪個App最好 瀏覽:60
三菱編程中怎麼創建子程序 瀏覽:199
在單片機溫度輸入採集信號有 瀏覽:684
電腦雲伺服器同步 瀏覽:418
方舟生存進化手游版怎麼轉伺服器 瀏覽:90
哪個app可以聽小說 瀏覽:160
網路發送數據如何加密 瀏覽:201
教材完全解讀pdf 瀏覽:820
什麼是多台伺服器 瀏覽:36
菜鳥音樂編輯app哪個好 瀏覽:548