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

單片機計數器c語言

發布時間:2022-08-27 05:18:25

單片機C語言關於定時計數器程序運行時序問題

這個和你設置的定時器的工作模式有關系,你要在定時時間到後,依然想要TH0=0xfc; TL0=0x18。這兩個寄存器值存在的話,你就要設置定時器的工作模式為:自動重裝初值

㈡ 設單片機系統的晶振為12MHz,要求使用定時計數器1,用C語言 編寫程序實現

系統晶振為12MHz時,定時器的計數脈沖周期即為 1uS;
要求輸出周期為200us,占空比為50% 的方波,即方波的高電平時間=100uS,低電平時間=100uS。
所以每定時100uS便產生一次中斷,並將輸出信號狀態翻轉一次;
sbit cp=P1^7;
void timer1 interrupt 3
{ cp=~cp; }
void main()
{
TMOD=0x20; // 定時器1採用方式2 進行定時;
TH0=256-100; //定時100uS;
TL0=TH0;
EA=1;ET1=1;TR1=1;
cp=1;
while(1){}

}

㈢ 基於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單片機用T0做計數器的C語言代碼。

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

㈤ 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);
}
}

㈥ 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);
}

㈦ 用c語言編寫一個計數器(單片機為51型,數碼管為共陰)要求有三個按鍵分別控制停止、加、減

一看到你說是計數器,又看到你要求有停止功能,意思是把Timer改為計數器,然後可以通過一個鍵停止計數對吧?
如果這樣的話挺簡單的,51單片機的計數器io口記得好像是P3^0和P3^1,但不管怎麼,首先設置TMOD,將C/T位置1,這就改為計數器了,然後可以編寫函數來對一個變數進行加減;同樣利用51單片機的外部中斷也可以實現計數功能,打開外部中斷開關,在外部中斷服務函數對計數變數進行加減;最簡單的,直接利用io口高低電平變化來進行計數,編寫if函數,只要某個io口電平變化了,就對計數變數進行加減。
如果你對這個有點陌生,那麼回復我一起討論或者我可以幫你寫程序。
希望我的回答能幫助到你。

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

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

㈨ 用C語言如何開51單片機的計數器,最好編個實常式序

#include <reg51.h>
#define uchar unsigend uchar
#define uint unsigned int
unsigned char code LED7Code[] = {~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F,~0x77,~0x7C,~0x39,~0x5E,~0x79,~0x71};//數碼管段碼

void main()
{
uint k;
TMOD=0X50;//設置模式為1,計數模式
TH1=0X00;
TL1=0X00;//初始值設定
IE=0X00;//關全局中斷
TR1=1;//開定時計數器1運行
while(1)
{

if(TL1==16)//進行判斷,為16時,計數值歸零
TL1=0X00;
k=TL1;
P0=LED7Code[k];//數碼管進行顯示
}
}
此程序目的見http://..com/question/350774230.html

㈩ c51單片機用c語言如何使用計數器觸發中斷

你這樣寫當然不行了,要想使用計數器觸發中斷,必須要靠"外力"才行,也就是說要在定時器問對應IO口輸入脈沖才行,按照你的要求,10個脈沖中斷一次,執行一次清零。要實現這個,可以每計算一次人為發送一個脈沖給定時器IO。

閱讀全文

與單片機計數器c語言相關的資料

熱點內容
怎麼在京東app裡面看自己會員等級 瀏覽:41
emerson伺服器怎麼短接啟動 瀏覽:559
工控編程人員工資 瀏覽:397
速成義大利語pdf 瀏覽:250
連續加減乘除法的演算法 瀏覽:652
用mfc編程實現dda演算法 瀏覽:41
linux命令打開應用 瀏覽:146
改造後的程序員 瀏覽:270
數控編程變數 瀏覽:785
江門哪裡有plc編程系統 瀏覽:378
安卓手機如何下載外服b站 瀏覽:700
pythonetree庫 瀏覽:759
數據插值演算法 瀏覽:723
澳大利亞加密貨幣逃稅 瀏覽:484
pdf文檔如何壓縮 瀏覽:329
java單例模式線程安全 瀏覽:646
特種pdf 瀏覽:160
加油什麼app劃算 瀏覽:715
開服要什麼樣的伺服器 瀏覽:33
pdf文件太大怎麼壓縮 瀏覽:29