欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
單片機實驗 定時器的應用實驗
[打印本頁]
作者:
xuelongxl
時間:
2016-11-5 20:54
標題:
單片機實驗 定時器的應用實驗
之前做過的實驗
通過P3.4和P3.5來調節發生頻率
#include "reg52.h"
sbit BeepPin =P2^5; //定義蜂鳴器引腳
sbit IncKey =P3^4; //定義按鍵引腳
sbit DecKey =P3^5;
#define FOSC (11059200L) //Hz
#define WANTTIME (10) //ms
#define VTHX (65536-WANTTIME*FOSC/12000)/256 //計算定時初值
#define VTLX (65536-WANTTIME*FOSC/12000)%256
#define BEEPON (0) //使蜂鳴器發聲的電平
#define BEEPOFF (1) //使蜂鳴器不發聲的電平
#define INCKEY (1) //定義鍵值
#define DECKEY (2)
#define NOKEY (3)
#define TRUE (1) //定義真常量
#define FALSE (0) //定義假常量
//定義延時運行值變量和設置值變量
unsigned int DelayTime_Run,DelayTime_Set;
unsigned char TimeIsUpFlag; //定義時間到標志變量
bit BeepOutValue; //控制蜂鳴器的輸出變量,用于刷新到BeepPin
//初始化函數
void Init(void)
{
DelayTime_Set=100; //為各變量賦初值
TimeIsUpFlag=TRUE;
BeepOutValue=BEEPOFF;
IncKey=1; //關閉按鍵口線內部的鎖存器
DecKey=1;
TMOD=0x01; //初始化定時器T0
TL0=VTLX;
TH0=VTHX;
ET0=1; //使用T0中斷
EA=1;
TR0=1; //啟動T0
}
//清除時間到標志變量
void ClearTimeUpFlag(void)
{
TimeIsUpFlag=FALSE;
}
//讀取時間到標志變量的值
unsigned char GetTimeUpFlag(void)
{
return(TimeIsUpFlag);
}
//設置延時時間
//xTime為延時時間,范圍1~65535
void SetDelayTime(unsigned int xTime)
{
DelayTime_Run=xTime;
}
//按鍵函數
//返回為值為相應鍵的鍵值或NOKEY
unsigned char Key(void)
{
unsigned char RetValue=NOKEY;
if(IncKey==0) RetValue=INCKEY;
if(DecKey==0) RetValue=DECKEY;
while((IncKey==0)||(DecKey==0));
return(RetValue);
}
//主函數
void main(void)
{
unsigned char Temp; //聲明局部變量
Init(); //調用初始化函數
while(1){
Temp=Key(); //調用按鍵函數
switch(Temp){ //處理按鍵
case INCKEY:
DelayTime_Set+=10;
break;
case DECKEY:
if(DelayTime_Set>0)
DelayTime_Set-=10;
break;
default: ;
}
BeepOutValue^=1; //蜂鳴器輸出變量狀態取反
BeepPin=BeepOutValue; //刷新蜂鳴器
ClearTimeUpFlag(); //清除時間到標志
SetDelayTime(DelayTime_Set); //設置延時時間
while(GetTimeUpFlag()==FALSE); //等待時間到
//此處的循環會導致對按鍵的響應速度變慢!
//解決辦法:多按一會再放手
}
}
//T0的中斷服務函數
void T0Int(void) interrupt 1
{
TL0=VTLX; //恢復定時初值
TH0=VTHX;
if(DelayTime_Run>0) //操作延時運行值變量,其到0時時間到
{DelayTime_Run--; TimeIsUpFlag=FALSE;}
else
TimeIsUpFlag=TRUE; //時間到,設置時間到標志
}
復制代碼
03實驗三 定時器.zip
2016-11-5 20:54 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
20.82 KB, 下載次數: 3, 下載積分: 黑幣 -5
作者:
不住的MI
時間:
2017-12-11 20:11
很不錯,解決了我的難題
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1