新聞中心
單片機計數(shù)器編程如何計數(shù)脈沖,用C語言
每50ms來了多少脈沖,那定時器就不能50ms中斷一次,盡量快的中斷會比較好,2個變量計數(shù),一個計算50ms,一個累加脈沖

創(chuàng)新互聯(lián)致力于互聯(lián)網(wǎng)網(wǎng)站建設與網(wǎng)站營銷,提供成都做網(wǎng)站、網(wǎng)站設計、外貿(mào)營銷網(wǎng)站建設、網(wǎng)站開發(fā)、seo優(yōu)化、網(wǎng)站排名、互聯(lián)網(wǎng)營銷、小程序定制開發(fā)、公眾號商城、等建站開發(fā),創(chuàng)新互聯(lián)網(wǎng)站建設策劃專家,為不同類型的客戶提供良好的互聯(lián)網(wǎng)應用定制解決方案,幫助客戶在新的全球化互聯(lián)網(wǎng)環(huán)境中保持優(yōu)勢。
如何寫一個單片機輸入上升沿和下降沿的脈沖輸出信號的c語言程序
如果是循環(huán)中查詢的話我一般這樣做, 定義一個變量比如keyLastStatus來記錄上一次掃描周期的狀態(tài)
sbit key=P2.0; char keyLastStatus=0;
keyLastStatus=key; //初始化
while (1)
{
if(key==1 keyLastStatus!=key) Todo(); //上升沿
if(key==0 keyLastStatus!=key) Todo(); //下降沿
keyLastStatus=key; //記錄上一次的狀態(tài)
}
51單片機使用T0和T1外部脈沖計數(shù),C語言如何編程?
1、使用T0和T1外部脈沖計數(shù),控制兩個電機,到1700個脈沖電機停止,
--統(tǒng)計脈沖個數(shù),用外部中斷更好。
--T0和T1,留著定時用。
用四個按鍵控制,按鍵1控制電機正轉,按鍵2控制電機反轉,按鍵3控制電機1正轉,按鍵4控制電機2正轉。
2、例程:
#includereg51.h?
sbit?k1?=??;?//自己定義
sbit?k2?=??
sbit?k3?=??
sbit?k4?=??
sbit?DIAN1?=??
sbit?DIAN2?=??
sbit?DIAN3?=??
sbit?DIAN4?=??
sbit?SEN1?=???
sbit?SEN2?=??
void?delay(unsigned?int?x)
{
unsigned?int?m,?n;?
for(m?=?x;?m??0;?m--)?for(n?=?115;?n??0;?n--);
}
void?main(void)
{?
TMOD?=?0x55;
IE?=?0x8a;
while(1)?{
if?(!k1)?{
delay(10);
if?(!k1)?{
while(!k1);
TH0?=?(65536?-?1700)?/?256;
TL0?=?(65536?-?1700)?%?256;
SEN1?=?0;
DIAN1?=?0;?DIAN2?=?1;
SEN1?=?1;?
TR0?=?1;
}
}
if?(!k2)?{
delay(10);
if?(!k2)?{
while(!k2);
TH0?=?(65536?-?1700)?/?256;
TL0?=?(65536?-?1700)?%?256;
SEN1?=?0;
DIAN1?=?1;?DIAN2?=?0;
SEN1?=?1;?
TR0?=?1;
}
}
if?(!k3)?{
delay(10);
if?(!k3)?{
while(!k3);
TH1?=?(65536?-?1700)?/?256;
TL1?=?(65536?-?1700)?%?256;
SEN2?=?0;
DIAN3?=?0;?DIAN4?=?1;
SEN2?=?1;?
TR1?=?1;
}
}
if?(!k4)?{
delay(10);
if?(!k4)?{
while(!k4);
TH1?=?(65536?-?1700)?/?256;
TL1?=?(65536?-?1700)?%?256;
SEN2?=?0;
DIAN3?=?1;?DIAN4?=?0;
SEN2?=?1;?
TR1?=?1;
}
}
}
}
如何編程實現(xiàn)51單片機每隔 t 時間發(fā)出一個脈沖?求C語言詳細編程。。。
給你個基本框架,根據(jù)你的具體要求再修改吧。使用定時1中斷實現(xiàn),精度比較高。
#include reg52.h
#define PERIODH (65536l-10000l)/0X100 //設10ms中斷1次TH1初值
#define PERIODL (65536l-10000l)%0X100 //設10ms中斷1次TL1初值
sbit P1_1 = 0x91; //假設從P1.1輸出脈沖
unsigned int iCount; //延時間隔時間變量
unsigned int iPulseCount; //脈沖脈寬時間變量
void timer1() interrupt 3 using 1
{//定時器每0.01秒一次中斷
TH1 = PERIODH;
TL1 = PERIODL;
if(iCount)
{//計數(shù)未到0,計數(shù)器-1
iCount--;
}
if(iPulseCount)
{//計數(shù)未到0,計數(shù)器-1
iPulseCount--;
}
}
main()
{
TMOD = 0X10;//方式1
EA = 1;//總中斷允許
ET1 = 1;//定時器1中斷允許
TR1 = 1;//啟動定時器1
P1_1 = 0; //脈沖輸出端口,假設輸出正脈沖,預置為低電平
while(1)
{
iCount = 200;//每間隔200*10ms = 2秒一個脈沖,t值變化改此處
while(iCount);//等待2秒中
P1_1 = 1; //置為高電平,輸出正脈沖
iPulseCount = 10;//每間隔10*10ms = 100ms一個脈沖,脈寬變化改此處
while(iPulseCount);//高電平保持100ms
P1_1 = 0; //置為低電平,輸出正脈沖結束
}
}
怎么用C++編程構造一個單位脈沖函數(shù)?我要輸入一個脈沖激勵來算振動響應,求高手解答!
不知道你想怎么用這個脈沖函數(shù),這個函數(shù)是莫非是傳說中的沖擊函數(shù)? 就是那個負無窮到正無窮只有0點有非零值,切負無窮到正無窮積分等于1的那個?這個函數(shù)在程序實現(xiàn)中,只有參與卷積才有用,儲存的時候頂多就是一個沖擊中心位置,既然是單位的,沖擊強度也省了,重載個卷積算符吧
C語言里用什么語句實現(xiàn)脈沖?
隨便你輸入那一天都能算星期幾
#includetime.h
#includestdio.h
#includeconio.h
#includestddef.h
#define BIG 1
#define SMALL 2
void info()
{
textcolor(RED);
gotoxy(37,11);
puts("WEEKDAY");
}
int runyear(int year) /*判斷是否為閏年*/
{
return !(year%4)year%100||!(year%400);
}
void main()
{
int year,month,day,yeardata,monthdata;
char *weekday;
time_t lt;
struct tm *ptr;
lt=time(NULL);
do
{
clrscr();
info();
gotoxy(18,15);
printf("Please Input The Year: ");
scanf("%d",year);
}while(year0||year9999);
yeardata=runyear(year);
do
{
clrscr();
info();
gotoxy(18,15);
printf("Please Input The Month:");
scanf("%d",month);
}while(month1||month12);
switch(month) /*大小月,2月*/
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: monthdata=BIG; break;
case 4:
case 6:
case 9:
case 11: monthdata=SMALL; break;
case 2: monthdata=3; break;
}
l1:
clrscr();
info();
gotoxy(18,15);
printf("Please Input The Day:");
scanf("%d",day);
if(monthdata==BIG)/*大月*/
{
if(day1||day31)
goto l1;
}
if(monthdata==SMALL)/*小月*/
{
if(day1||day30)
goto l1;
}
if(yeardata==0monthdata==3)/*平年2月*/
{
if(day1||day28)
goto l1;
}
if(yeardata==1monthdata==3)/*閏年2月*/
{
if(day1||day29)
goto l1;
}
ptr=localtime(lt);
weekday=asctime(ptr);
ptr-tm_mday=day;
ptr-tm_mon=month;
ptr-tm_year=year;
weekday=asctime(ptr);
clrscr();
gotoxy(13,30);
puts(weekday);
}
名稱欄目:脈沖函數(shù)C語言怎么編程 c語言編程技術介紹
文章起源:http://www.dlmjj.cn/article/doooede.html


咨詢
建站咨詢
