久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
51單片機外部中斷測馬達轉(zhuǎn)速,數(shù)碼管顯示
[打印本頁]
作者:
fangbl
時間:
2021-1-21 14:31
標題:
51單片機外部中斷測馬達轉(zhuǎn)速,數(shù)碼管顯示
本帖最后由 fangbl 于 2021-1-27 09:30 編輯
#include <reg52.h>
sbit COM1 = P2^0;
sbit COM2 = P1^6;
sbit COM3 = P1^5;
sbit COM4 = P1^3;
sbit COM5 = P1^4;
sbit COM6 = P1^7;
bit flag200ms;
unsigned char T0RH;
unsigned char T0RL;
unsigned int Cnt;
unsigned char LedBuff[6] = {0x28,0x28,0x28,0x28,0x28,0x28};
unsigned char code LedChar[10] =
{
0x28, 0xEE, 0x58, 0x4A, 0x8E,
0x0B, 0x09, 0x6E, 0x08, 0x0A
};
void ConfigTimer0(unsigned int ms);
void LedScan();
void InitCPU();
void SpeedCount();
void main()
{
InitCPU();
ConfigTimer0(1);
while (1)
{
if (flag200ms) //200ms更新一次轉(zhuǎn)速
{
flag200ms = 0;
SpeedCount();
}
}
}
void InitCPU()
{
P1 = 0x03; //COM輸出低電平,數(shù)碼管不亮
COM1 = 0;
PEDGE = 0x03; // Both edge trigger
EX0 = 1; // Enable INT0 interrupt
EAL = 1; // Enable all interrupt
}
void SpeedCount()
{
float rmp;
unsigned int RMP;
unsigned int Temp;
EX0 = 0; //關(guān)閉外部中斷0
Temp = Cnt; //讀取200ms外部中斷信號數(shù)量
rmp = (float)Temp; //轉(zhuǎn)為浮點運算
rmp = rmp / 12; //馬達轉(zhuǎn)一圈有12個外部中斷信號(6對磁環(huán))
rmp = (rmp + 0.05) * 100; //四舍五入保留2位小數(shù)
RMP = (unsigned int)rmp; //轉(zhuǎn)回整型數(shù)
RMP = RMP * 3; //200ms * (5 * 60) = 每分鐘轉(zhuǎn)速,再除以100以抵消前面保留的2位小數(shù)
if (RMP <= 15) //無轉(zhuǎn)速時清零
{
RMP = 0;
}
LedBuff[0] = LedChar[RMP%10]; //數(shù)碼管第6位
LedBuff[1] = LedChar[RMP/10%10]; //數(shù)碼管第5位
LedBuff[2] = LedChar[RMP/100%10]; //數(shù)碼管第4位
LedBuff[3] = LedChar[RMP/1000%10]; //數(shù)碼管第3位
LedBuff[4] = LedChar[RMP/10000%10]; //數(shù)碼管第2位
LedBuff[5] = LedChar[RMP/100000%10]; //數(shù)碼管第1位
Cnt = 0; //中斷信號數(shù)量清零
EX0 = 1; //重新打開外部中斷0
}
void LedScan() //數(shù)碼管掃描
{
static unsigned char i;
P0 = 0xFF; //清SEG
switch (i) //6位數(shù)碼管掃描
{
case 0:COM6=0; COM1=1; P0 = LedBuff[5]; i++;break;
case 1:COM1=0; COM2=1; P0 = LedBuff[4]; i++;break;
case 2:COM2=0; COM3=1; P0 = LedBuff[3]; i++;break;
case 3:COM3=0; COM4=1; P0 = LedBuff[2]; i++;break;
case 4:COM4=0; COM5=1; P0 = LedBuff[1]; i++;break;
case 5:COM5=0; COM6=1; P0 = LedBuff[0]; i=0;break;
default: break;
}
}
void ConfigTimer0(unsigned int ms) //配置定時器0
{
unsigned long tmp;
tmp = 12000000/12;
tmp = (tmp * ms)/1000;
tmp = 65536 - tmp;
tmp = tmp + 12;
T0RH = (unsigned char)(tmp >> 8);
T0RL = (unsigned char)tmp;
TMOD &= 0xF0;
TMOD |= 0x01; //工作方式1
TH0 = T0RH;
TL0 = T0RL;
ET0 = 1;
TR0 = 1;
}
void InterruptTimer0() interrupt ISRTimer0 //定時器0中斷
{
static unsigned char i;
static unsigned char j;
TH0 = T0RH;
TL0 = T0RL;
i++;
if (i >= 200)
{
i = 0;
flag200ms = 1;
}
LedScan(); //數(shù)碼管掃描
}
void InterruptInt0() interrupt ISRInt0 //外部中斷2
{
Cnt++; //中斷信號數(shù)量累加
}
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
婷婷综合久久
|
亚洲视频在线看
|
日韩av在线一区
|
久久精品亚洲国产奇米99
|
福利一区视频
|
一级大片免费
|
久久久青草婷婷精品综合日韩
|
国产日韩欧美中文字幕
|
日本一区二区三区四区
|
伊人网站视频
|
国产精品123区
|
超碰成人免费
|
97视频人人澡人人爽
|
亚洲综合视频
|
亚洲最新在线
|
99热这里都是精品
|
国产做a爱片久久毛片
|
亚洲欧美日韩精品久久亚洲区
|
嫩草视频入口
|
天天操伊人
|
色秀网站
|
久久国产婷婷国产香蕉
|
颜色网站在线观看
|
亚洲精品久久久久久久久久久久久
|
涩涩操
|
在线观看黄视频
|
久久精品综合
|
久久精品国产一区二区电影
|
日韩在线中文字幕
|
高清黄色
|
国产精品美女www爽爽爽
|
成人在线视频网址
|
天天操天天舔
|
精品一区二区三区在线观看
|
成人午夜高清
|
国产性网
|
精品九九
|
亚洲人成人一区二区在线观看
|
色片在线观看
|
中文字幕一区二区三区在线乱码
|
欧美综合国产精品久久丁香
|