久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
想用89C52做一個測風速的東西,求大神幫忙
[打印本頁]
作者:
sjxaaaa
時間:
2017-5-20 14:10
標題:
想用89C52做一個測風速的東西,求大神幫忙
怎么用89C52單片機做一個測風速的東西,有人說用一個定時器來統(tǒng)計1分鐘碼盤的轉(zhuǎn)數(shù),具體C代碼怎么寫,有高人幫忙嗎
作者:
51mcu
時間:
2017-5-20 16:35
給你個數(shù)碼管的測速程序:
#include<reg52.h>
#include<stdio.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define THC0 0xf8 //0xf9
#define TLC0 0x30 //2ms //0x0f
unsigned char code Duan[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//共陽極數(shù)碼管,0-9段碼表
unsigned char Data_Buffer[8]={0,0,0,0,0,0,0,0}; //轉(zhuǎn)速及定值顯示緩存
uchar i=0,n,Bit;
sbit led1=P2^0; //轉(zhuǎn)速千位顯數(shù)碼管位驅(qū)動端口
sbit led2=P2^2; //轉(zhuǎn)速百位顯數(shù)碼管位驅(qū)動端口
sbit led3=P2^4; //轉(zhuǎn)速個位顯數(shù)碼管位驅(qū)動端口
sbit led4=P2^6; //轉(zhuǎn)速十位顯數(shù)碼管位驅(qū)動端口
static uchar bdata ke; //可位尋址的狀態(tài)寄存器
sbit aj=ke^0; //按鍵處理標志位
sbit k1=P3^3; //功能按鍵
sbit k2=P3^4; //定值加按鍵
sbit k3=P3^5; //定值加按鍵
sbit PWM_FC=P2^7; //PWM調(diào)速輸出端
uchar T0_H = 0,T0_L = 0,T1_H=0,T1_L=0; //用來裝計算出的初值
uchar flag=1;// pwm輸出標志,0為輸出低電平,1為輸出高電平
int out=0;
uint Inpluse=0,num=0; //脈沖計數(shù)
uint PWMTime=100; //脈沖寬度
unsigned char arry[];
void SendString(uint ch);
void PIDControl();
void SystemInit();
void PWMOUT();
void SetSpeed();
void SegRefre();
void delay(i); //延時函數(shù)
/**************主函數(shù)************/
void main()
{
SystemInit(); //單片機初始化
while(1)
{
SetSpeed(); //按鍵處理程序
SegRefre(); //顯示處理
}
}
void SystemInit()
{
TMOD=0X11; //t0,t1為16位
TH0=THC0;
TL0=TLC0;
T0_H = (65535-300)/256; //PWM=1時給定高位初值
T0_L = (65535-300)%256; //PWM=1時給定低位初值
T1_H = (65535-(1000-300))/256; //PWM=0時給定高位初值
T1_L = (65535-(1000-300))%256; //PWM=0時給定低位初值
ET1=1;
ET0=1;
TR0=1;
TR1=1;
EX0=1; //中斷0用來測量轉(zhuǎn)速
IT0=1;
EA=1;
out=300; //開總中斷
// n=30;
}
void SetSpeed()
{
if (k2==0) //增加轉(zhuǎn)速定值按鍵按下時,每次增加定值100轉(zhuǎn)/分
{
while(!k2); //再次進行按鍵按下判斷
delay(40); //延時
out+=50; //增加定值100轉(zhuǎn)/分
if(out>1000) //定值最大值為9900轉(zhuǎn)/分
{
out=1000; //定值=9900轉(zhuǎn)/分
}
T0_H = (65535-out)/256; //PWM=1高位初值計算
T0_L = (65535-out)%256; //PWM=1低位初值計算
T1_H = (65535-(1000-out))/256; //PWM=0高位初值計算
T1_L = (65535-(1000-out))%256; //PWM=0低位初值計算
}
if (k3==0) //減小轉(zhuǎn)速定值按鍵按下時,每次增減定值100轉(zhuǎn)/分
{
while(!k3); //再次進行按鍵按下判斷
delay(40); //延時
out-=50; //減小定值100轉(zhuǎn)/分
if(out<100) //定值最小值為200轉(zhuǎn)/分
{
out=100; //定值=200轉(zhuǎn)/分
}
T0_H = (65535-out)/256; //PWM=1高位初值計算
T0_L = (65535-out)%256; //PWM=1低位初值計算
T1_H = (65535-(1000-out))/256; //PWM=0高位初值計算
T1_L = (65535-(1000-out))%256; //PWM=0低位初值計算
}
SegRefre(); //顯示刷新
}
void SegRefre() //顯示刷新
{
Data_Buffer[0]=num/1000; //轉(zhuǎn)速千位顯示轉(zhuǎn)換處理
Data_Buffer[1]=num%1000/100; //轉(zhuǎn)速百位顯示轉(zhuǎn)換處理
Data_Buffer[2]=num%100/10; //轉(zhuǎn)速十位顯示轉(zhuǎn)換處理
Data_Buffer[3]=num%10; //轉(zhuǎn)速個位顯示轉(zhuǎn)換處理
}
void int0() interrupt 0 //進行轉(zhuǎn)速脈沖計數(shù)外部中斷處理
{
Inpluse++; //轉(zhuǎn)速脈沖加1
}
void t0() interrupt 1 //2毫秒中斷一次
{
static unsigned int time=0;
TH0=THC0;
TL0=TLC0;
time++; //轉(zhuǎn)速測量周期
if(time>250) //0.5秒獲取一次轉(zhuǎn)速數(shù)據(jù),進行一次PID處理。
{
time=0;
num=Inpluse*2; //碼盤數(shù)n num=Inpluse*60/n
Inpluse=0;
}
led1=1; //停止顯示
led2=1; //停止顯示
led3=1; //停止顯示
led4=1; //停止顯示
Bit++;
if(Bit>4) Bit=0;
P0=Duan[Data_Buffer[Bit]]; //獲取顯示數(shù)據(jù)段碼
switch(Bit)
{
case 0:led1=0;break; //數(shù)碼管千位顯示
case 1:led2=0;break; //數(shù)碼管百位顯示
case 2:led3=0;break; //數(shù)碼管十位顯示
case 3:led4=0;break; //數(shù)碼管個位顯示
}
}
void timer_1() interrupt 3 //PWM調(diào)速中斷處理程序
{
if(flag)
{
TH1 = T0_H; //通的初值高位
TL1 = T0_L; //通的初值低位
PWM_FC= 1; //PWM輸出=1
flag= 0;
}
else
{
TH1 = T1_H; //斷的初值高位
TL1 = T1_L; //斷的初值低位
PWM_FC= 0; //PWM輸出=0
flag= 1;
}
}
void delay(i) //延時函數(shù)
{
while(--i);
}
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
久国久产久精永久网页
|
欧美精品一区二区三区在线
|
国产欧美精品区一区二区三区
|
欧美乱操
|
99久久婷婷国产综合精品电影
|
亚洲视频在线播放
|
99re热精品视频
|
精品国产鲁一鲁一区二区张丽
|
国产精品久久久久久久久久久免费看
|
久久亚洲春色中文字幕久久久
|
久久综合伊人
|
久久99久久99
|
男人av的天堂
|
美国十次成人欧美色导视频
|
青青久久
|
日韩在线免费
|
91一区二区三区
|
国产精品久久久久久一区二区三区
|
久久久国产精品视频
|
夜夜av
|
久久精品国产久精国产
|
毛片免费在线观看
|
特级黄一级播放
|
国产精品成人一区二区
|
av大全在线观看
|
999观看免费高清www
|
九九99九九精彩46
|
www.久久久久久久久
|
国产97在线视频
|
久久综合激情
|
免费在线性爱视频
|
黄色在线播放视频
|
国内精品久久精品
|
日本电影网站
|
999国产视频
|
国产精品久久久久久久一区二区
|
国产精品不卡一区
|
久久亚洲高清
|
国产精品日韩欧美一区二区
|
最新中文字幕久久
|
国产精品亚洲成在人线
|