91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 400KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-09
  • 語言: 其他
  • 標簽:

資源簡介

#include #define uchar unsigned char #define uint unsigned int #define ulong unsigned long #define LED_DAT P0 sbit LED_SEG0 = P2^7; sbit LED_SEG1 = P2^6; sbit LED_SEG2 = P2^5; sbit LED_SEG3 = P2^4; #define TIME_CYLC 100 //12M晶振,定時器10ms 中斷一次 我們1秒計算一次轉速 // 1000ms/10ms = 100 #define PLUS_PER 10 //碼盤的齒數 ,這里假定碼盤上有10個齒,即傳感器檢測到10個脈沖,認為1圈 #define K 1.65 //校準系數 unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar data Disbuf[4];// 顯示緩沖區 uint Tcounter = 0; //時間計數器 bit Flag_Fresh = 0; // 刷新標志 bit Flag_clac = 0; //計算轉速標志 bit Flag_Err = 0; //超量程標志 void DisplayFresh();//在數碼管上顯示一個四位數 void ClacSpeed();//計算轉速,并把結果放入數碼管緩沖區 void init_timer();//初始化定時器T0\T1 void Delay(uint ms);//延時函數 void it_timer0() interrupt 1 /* interrupt address is 0x000b */ { TF0 = 0; //定時器 T0用于數碼管的動態刷新 TH0 = 0xC0; TL0 = 0x00; Flag_Fresh = 1; Tcounter++; if(Tcounter>TIME_CYLC) { Flag_clac = 1;//周期到,該重新計算轉速了 } } void it_timer1() interrupt 3 /* interrupt address is 0x001b */ { TF1 = 0; //定時器T1用于單位時間內收到的脈沖數 //要速度不是很快,T1永遠不會益處 Flag_Err = 1; //如果速度很高,我們應考慮另外一種測速方法:T測速法 } void main(void) { Disbuf[0] = 0; //開機時,初始化為0000 Disbuf[1] = 0; Disbuf[2] = 0; Disbuf[3] = 0; init_timer(); while(1) { if(Flag_Fresh) { Flag_Fresh = 0; DisplayFresh(); // 定時刷新數碼管顯示 } if(Flag_clac) { Flag_clac = 0; ClacSpeed(); //計算轉速,并把結果放入數碼管緩沖區 Tcounter = 0;//周期定時 清零 TH1=TL1 = 0x00;//脈沖計數清零 } if(Flag_Err) //超量程處理 { Disbuf[0] = 0x9e; //開機時,初始化為0000 Disbuf[1] = 0x9e; Disbuf[2] = 0x9e; Disbuf[3] = 0x9e; while(1) { DisplayFresh();//不再測速 等待復位i } } } } //在數碼管上顯示一個四位數 void DisplayFresh() { P2 |= 0xF0; LED_SEG0 = 0; LED_DAT = table[Disbuf[0]]; Delay(1); P2 |= 0xF0; LED_SEG1 = 0; LED_DAT = table[Disbuf[1]]; Delay(1); P2 |= 0xF0; LED_SEG2 = 0; LED_DAT = table[Disbuf[2]]; Delay(1); P2 |= 0xF0; LED_SEG3 = 0; LED_DAT = table[Disbuf[3]]; Delay(1); P2 |= 0xF0; } //計算轉速,并

資源截圖

代碼片段和文件信息

#include?
#define?uchar?unsigned?char?
#define?uint?unsigned?int?
#define?ulong?unsigned?long
#define?LED_DAT?P0
sbit?LED_SEG0?=?P2^7;
sbit?LED_SEG1?=?P2^6;
sbit?LED_SEG2?=?P2^5;
sbit?LED_SEG3?=?P2^4;
#define?TIME_CYLC?100?//12M晶振,定時器10ms?中斷一次?我們1秒計算一次轉速?//?1000ms/10ms?=?100
#define?PLUS_PER?10?//碼盤的齒數?,這里假定碼盤上有10個齒,即傳感器檢測到10個脈沖,認為1圈
#define?K???????1.65???//校準系數



unsigned?char?code??table[]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f};
uchar?data?Disbuf[4];//?顯示緩沖區?
uint?Tcounter?=?0;???//時間計數器
bit?Flag_Fresh?=?0;?//?刷新標志?
bit?Flag_clac?=?0;?//計算轉速標志?
bit?Flag_Err?=?0;?//超量程標志?

void?DisplayFresh();//在數碼管上顯示一個四位數?

void?ClacSpeed();//計算轉速,并把結果放入數碼管緩沖區?

void?init_timer();//初始化定時器T0\T1

void?Delay(uint?ms);//延時函數?

void?it_timer0()?interrupt?1?/*?interrupt?address?is?0x000b?*/
{
TF0?=?0;???????//定時器?T0用于數碼管的動態刷新?
TH0?=?0xC0;????
TL0?=?0x00;?
Flag_Fresh?=?1;?
Tcounter++;?
if(Tcounter>TIME_CYLC)
{?Flag_clac?=?1;//周期到,該重新計算轉速了?
}
}
void?it_timer1()?interrupt?3?/*?interrupt?address?is?0x001b?*/
{
TF1?=?0;???//定時器T1用于單位時間內收到的脈沖數?
???????????//要速度不是很快,T1永遠不會益處
Flag_Err?=?1;???//如果速度很高,我們應考慮另外一種測速方法:T測速法
?????
}
void?main(void)
{
Disbuf[0]?=?0;?//開機時,初始化為0000
Disbuf[1]?=?0;?
Disbuf[2]?=?0;
Disbuf[3]?=?0;
init_timer();
while(1)
{??
if(Flag_Fresh)
???{?Flag_Fresh?=?0;
????DisplayFresh();????//?定時刷新數碼管顯示?
???}
???if(Flag_clac)
???{?Flag_clac?=?0;
????ClacSpeed();?//計算轉速,并把結果放入數碼管緩沖區??
????Tcounter?=?0;//周期定時?清零
????TH1=TL1?=?0x00;//脈沖計數清零?
????
???}
??if(Flag_Err)????????//超量程處理?
??{
????Disbuf[0]?=?0x9e;?//開機時,初始化為0000
????Disbuf[1]?=?0x9e;?
????Disbuf[2]?=?0x9e;
????Disbuf[3]?=?0x9e;
???while(1)
????{?DisplayFresh();//不再測速?等待復位i
????}
??}

}?
}

//在數碼管上顯示一個四位數
void?DisplayFresh()
{
P2?|=?0xF0;
LED_SEG0?=?0;
LED_DAT?=?table[Disbuf[0]];
Delay(1);
P2?|=?0xF0;
LED_SEG1?=?0;
LED_DAT?=?table[Disbuf[1]];
Delay(1);
P2?|=?0xF0;
LED_SEG2?=?0;
LED_DAT?=?table[Disbuf[2]];
Delay(1);
P2?|=?0xF0;
LED_SEG3?=?0;
LED_DAT?=?table[Disbuf[3]];
Delay(1);
P2?|=?0xF0;

}
//計算轉速,并把結果放入數碼管緩沖區
void?ClacSpeed()
{
uint?speed?;?
uint?PlusCounter;

PlusCounter?=?TH1*256?+?TL1;
speed?=6*PlusCounter/K;??????//K是校準系數,如速度不準,調節K的大小
Disbuf[3]?=?(speed/1000)%10;??
Disbuf[2]?=?(speed/100)%10;?
Disbuf[1]?=?(speed/10)%10;
Disbuf[0]?=?speed%10;
}
??????????
void?init_timer()//初始化定時器T0\T1
{
TMOD=0x51;?//定時器0工作于定時方式1定時器1工作于計數方式
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;?//TO定時時間為10000個周期即10毫秒
TH1=0x00;
TL1=0x00;
ET0=1;?????????????????????/*?enable?timer0?interrupt?*/
EA=1;????????????????/*?enable?interrupts?*/
TR0=1;???????????????/*?timer0?run?*/
ET1=1;?????????????????????/*?enable?timer1?interrupt?*/
EA=1;????????????????/*?enable?interrupts?*/
TR1=1;???

}
//延時函數?
void?Delay(uint?ms)
{
uchar?i;
while(ms--)
???for(i=0;i<100;i++);
}


?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????1500??2010-07-09?14:03??測速\123

?????文件???????4149??2010-07-09?14:03??測速\123.ASM

?????文件???????4284??2010-07-09?13:30??測速\123.C

?????文件????????807??2010-07-09?14:03??測速\123.hex

?????文件?????????38??2010-07-09?14:03??測速\123.lnp

?????文件??????11269??2010-07-09?14:03??測速\123.LST

?????文件???????7484??2010-07-09?14:03??測速\123.M51

?????文件???????1455??2010-07-09?14:03??測速\123.OBJ

?????文件????????958??2010-07-09?14:04??測速\123.Opt

?????文件???????2154??2010-07-09?14:03??測速\123.plg

?????文件???????1646??2010-07-09?14:04??測速\123.Uv2

????.......???????959??2010-07-09?13:52??測速\123_Opt.Bak

????.......?????????0??2010-07-09?13:52??測速\123_Uv2.Bak

?????文件??????84780??2010-07-10?17:05??測速\Backup?of?PCB1.PCB

?????文件???????9849??2010-07-11?02:37??測速\Backup?of?直流電機測速原理圖.Sch

?????文件??????84780??2010-07-10?17:05??測速\Previous?Backup?of?PCB1.PCB

?????文件???????9849??2010-07-10?17:05??測速\Previous?Backup?of?直流電機測速原理圖.Sch

?????文件???????3250??2010-07-12?15:24??測速\Text1.c

?????文件???????6188??2010-07-12?14:31??測速\Text1.LST

?????文件???????3735??2010-07-12?14:31??測速\Text1.OBJ

?????文件???????3501??2010-07-12?14:31??測速\測速

?????文件???????2887??2010-07-12?14:31??測速\測速.hex

?????文件?????????41??2010-07-12?14:31??測速\測速.lnp

?????文件??????12218??2010-07-12?14:31??測速\測速.M51

?????文件????????859??2010-07-12?15:24??測速\測速.Opt

?????文件????????916??2010-07-12?14:31??測速\測速.plg

?????文件???????1647??2010-07-08?02:00??測速\測速.Uv2

????.......???????859??2010-07-12?01:25??測速\測速_Opt.Bak

?????文件????1191936??2010-07-12?17:18??測速\電機測速.Bkp

?????文件?????464896??2010-07-12?17:18??測速\電機測速.ddb

............此處省略26個文件信息

評論

共有 條評論

相關資源