欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
利用單片機(jī)定時器中斷頻率計實(shí)現(xiàn)代碼
[打印本頁]
作者:
2635580848
時間:
2019-4-25 21:16
標(biāo)題:
利用單片機(jī)定時器中斷頻率計實(shí)現(xiàn)代碼
電路原理圖如下:
捕獲.PNG
(128.73 KB, 下載次數(shù): 40)
下載附件
2019-4-25 21:16 上傳
單片機(jī)源程序如下:
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char //數(shù)據(jù)類型宏定義
#define uint unsigned int
#define out P0 //IO端口定義
sbit RS=P2^0;
sbit RW=P2^1;
sbit EN=P2^2;
uint i = 0; //全局變量
uint j;
uint cnt=0;
uchar display[]={'0','1','2','3','4','5','6','7','8','9'};
void Delay4us()
{
_nop_();_nop_();_nop_();_nop_();
}
//延時
void delay (int ms)
{
uchar i;
while(--ms)
for(i=0;i<250;i++)
Delay4us();
}
//LCD忙檢測,返回1則忙
bit LCD_Busy_Check()
{
bit result;
RS=0;
RW=1;
EN=1;
Delay4us();
result=(bit)(P0&0x80);
EN=0;
return result;
}
//寫指令給P0
void LCD_Write_Command(uchar cmd)
{
while (LCD_Busy_Check());
RS=0;
RW=0;
EN=0;
_nop_();
_nop_();
P0=cmd;
Delay4us();
EN=1;
Delay4us();
EN=0;
}
//寫數(shù)據(jù)給P0
void LCD_Write_Data(uchar dat)
{
while(LCD_Busy_Check());
RS=1;
RW=0;
EN=0;
P0=dat;
Delay4us();
EN=1;
Delay4us();
EN=0;
}
//LCD初始化
void LCD_Initialise()
{
LCD_Write_Command(0x38);//顯示初始化
delay(5);
LCD_Write_Command(0x0c); //開顯示
delay(5);
LCD_Write_Command(0x06);//讀寫后指針加一
delay(5);
LCD_Write_Command(0x01); //清屏
delay(5);
}
/***********主函數(shù)*******************************************************/
void main(void)
{
uchar ge=0;
uchar shi=0;
uchar bai=0;
uchar qian=0;
TMOD=0x15; // 定時器0工作于計數(shù)方式,工作方式1,16位計數(shù)
// 定時器1工作于定時方式,工作方式1,16位定時
TH0=0; // 清零計數(shù)器
TL0=0;
TH1=0x4C; // 12M晶振工作下,定時50ms
TL1=0x00;
TR0=1; // 啟動定時器0
TR1=1; // 啟動定時器1
IE=0x88; // 打開定時中斷1和總中斷
LCD_Initialise();
while(1)
{
qian=cnt/1000;
bai=cnt%1000/100;
shi=cnt%100/10;
ge=cnt%10;
LCD_Write_Command(0x80);
LCD_Write_Data(display[qian]);
LCD_Write_Command(0x81);
LCD_Write_Data(display[bai]);
LCD_Write_Command(0x82);
LCD_Write_Data(display[shi]);
LCD_Write_Command(0x83);
LCD_Write_Data(display[ge]);
LCD_Write_Data('h');
LCD_Write_Data('z');
}
}
/***********計數(shù)器T0中斷處理函數(shù)******************************************/
void Timer1_ISR() interrupt 3
{
static char j = 0;
i++;
TH1=0x4C; // 重設(shè)定時器值,50ms @ 12MHz XTAL
TL1=0x00;
if(++j == 20) // 50ms * 20 = 1S
{
j = 0;
i = (TH0 << 8) | TL0; // 1S內(nèi)的計數(shù)值
cnt=i;
i=0;
TH0 = 0; // 清零計數(shù)
TL0 = 0;
}
}
復(fù)制代碼
作者:
物業(yè)tuan
時間:
2019-12-19 14:18
怎么使用呢
作者:
@@;
時間:
2020-1-3 17:22
范圍多少
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1