計數器編程
Ⅰ 介紹計數器 /定時器 程序 的編寫步驟 (c語言的)
假設你用的晶振為12m,用p1.0口輸出周期為2ms的方波。使用定時器工作方式1.
至於計數初值的計算,授之以魚不如授之以漁!
在定時器模式下,計數器的計數脈沖來自於晶振脈沖的12分頻信號,即對機器周期進行計數。若選擇12m晶振,則定時器的計數頻率為1mhz。假設定時時間為t,機器周期為t1,即12/晶振頻率。x為定時器初值。則
x=2^n-t/t1。方式0,n=13,方式1時,n=16,方式2和方式3,n=8
自己算去吧!
#include
void
inittimer0(void)//
{
tmod
=
0x01;
th0
=
0x0fc;
//計數器初值
tl0
=
0x18;
ea
=
1;
et0
=
1;
tr0
=
1;//開啟定時器t0
}
void
main(void)
{
inittimer0();
}
void
timer0interrupt(void)
interrupt
1
{
th0
=
0x0fc;//重新賦初值
tl0
=
0x18;
p1.0=~p1.0;
//輸出方波
}
Ⅱ 求三菱PLC計數器怎麼編寫和復位清零法
1、X0導通C0 K5。
2、C0導通Y0。
3、C是計數器,K是常數,5是相應的數據(這里是5次)。
4、用傳送指令mov把常數0傳送給c0。
5、用復位指令RST直接復位c0。
6、建議看下李金成老師的三菱plc的入門課程。
(2)計數器編程擴展閱讀:
plc它採用一類可編程的存儲器,用於其內部存儲程序,執行邏輯運算、順序控制、定時、計數與算術操作等面向用戶的指令,並通過數字或模擬式輸入/輸出控制各種類型的機械或生產過程。
當從編程器輸入的程序存入到用戶程序存儲器中,然後CPU根據系統所賦予的功能(系統程序存儲器的解釋編譯程序),把用戶程序翻譯成PLC內部所認可的用戶編譯程序。
系統程序存儲器用以存放系統程序,包括管理程序,監控程序以及對用戶程序做編譯處理的解釋編譯程序。由只讀存儲器組成。廠家使用的,內容不可更改,斷電不消失。
內部電路輸出數字信號1,有電流流過,繼電器線圈有電流,然後常開觸點閉合,提供負載導通的電流和電壓。
內部電路輸出數字信號0,則沒有電流流過,繼電器線圈沒有電流,然後常開觸點斷開,斷開負載的電流或電壓。也就是通過輸出介面電路把內部的數字電路化成一種信號使負載動作或不動作。
參考資料:網路-三菱PLC
Ⅲ 科學計算器怎麼編程
如果你說的是電腦系統中自帶的科學計數器的話,那東西沒有編程功能,只有對不同進制的數進行輔助計算的功能,如果是其他的計算器可以查看產品說明書或網路相關資料。
Ⅳ 三菱PLC 兩個高速計數器計數分別設置計數值, 兩數達到總數就停止, 怎麼編程
如圖所示,當M0為ON,常開觸點導通,C251和C254兩個高速計數器就開始計數,兩個計數器的設定值都是32位的最大值,為了讓兩個計數器都能無限制的計數,C251+C254=D0,這樣D0就是兩個計數器的總數了,然後用比較指令,D0大於9 999 999時,復位M0,常開觸點斷開,C251和C254就停止計數了。
望採納。。。。。。
Ⅳ 用計數器編程,最好是匯編,c語言也可以
#include<reg51.h>
sbit key=P3^4;
sbit LED1=P1^0;
sbit LED2=P1^1;
sbit LED3=P1^2;
void main()
{
EA=1;
TMOD=0x04; //定時器0工作於計數方式
ET0=1;
TR0=1;
while(1);
}
void timer0()interrupt 1
{
TR0=0;
switch(TL0)
{
case 1: LED1=0; break;
case 2: LED2=0; break;
case 3: LED3=0; break;
default: P1=0xff; TL0=0; // 計數值清零
}
Ⅵ 高速計數器的編程方法有幾種,分別是什麼
使用PRV(062)指令,需要對數據邏輯存儲器DM6642進行設置,方法如下即用手持編程器改變PLC設置: PLC的開關放到PROGRAM狀態下 → 按DM鍵 → 分別按6642數字鍵 → 按MONTR鍵 → 按CHG鍵 → 分別按0100數字鍵 → 按WRITE鍵→ 按DM鍵 → 分別按6642數字鍵
Ⅶ 如何用C語言編寫這個計數程序
按照題目要求編寫的C語言計數程序如下
#include<stdio.h>
int main(){
int i,start,end,step;
printf("從哪個數字開始計數:");
scanf("%d",&start);
printf("在哪個數字停止計數:");
scanf("%d",&end);
printf("每次增加的數字:");
scanf("%d",&step);
for(i=start;i<=end;i=i+step){
printf("%d ",i);
}
return 0;
}