欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
使用NST1001數字脈沖輸出型溫度傳感器實驗
[打印本頁]
作者:
太陽雨ZW
時間:
2026-3-30 13:40
標題:
使用NST1001數字脈沖輸出型溫度傳感器實驗
在一定周期內對傳感器輸出的脈沖計數,計算成溫度值。通過0.91寸的12832
IMG_20260330_132415.jpg
(2.75 MB, 下載次數: 0)
下載附件
2026-3-30 13:39 上傳
OLED顯示并用串口發送。非常好用
作者:
太陽雨ZW
時間:
2026-3-30 13:47
#include "STC8H.H"
#define uint8_t unsigned char
#define uint16_t unsigned int
unsigned int count=0;
unsiged int dat=0;
unsigned char sendBuf[5];
uint8_t code zk[]=
{
/* "0" Gulim12 8x16 -0-*/
0x00,0xF0,0x08,0x04,0x04,0x04,0x08,0xF0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,
/* "1" Gulim12 8x16 -15-*/
0x00,0x00,0x08,0x08,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,
/* "2" Gulim12 8x16 -31-*/
0x00,0x30,0x08,0x04,0x04,0x04,0x88,0x70,0x00,0x30,0x28,0x24,0x22,0x21,0x20,0x20,
/* "3" Gulim12 8x16 -47-*/
0x00,0x10,0x08,0x84,0x84,0x84,0x48,0x30,0x00,0x08,0x10,0x20,0x20,0x20,0x11,0x0E,
/* "4" Gulim12 8x16 -63-*/
0x00,0x80,0x60,0x18,0x04,0xFC,0x00,0x00,0x06,0x05,0x04,0x04,0x04,0x3F,0x04,0x04,
/* "5" Gulim12 8x16 -79-*/
0x00,0xFC,0x84,0x44,0x44,0x44,0x84,0x04,0x00,0x09,0x10,0x20,0x20,0x20,0x10,0x0F,
/* "6" Gulim12 8x16 -95-*/
0x00,0xF0,0x88,0x44,0x44,0x44,0x88,0x10,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,
/* "7" Gulim12 8x16 -111-*/
0x00,0x04,0x04,0x04,0x84,0x64,0x14,0x0C,0x00,0x00,0x00,0x3C,0x03,0x00,0x00,0x00,
/* "8" Gulim12 8x16 -127-*/
0x00,0x30,0x48,0x84,0x84,0x84,0x48,0x30,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x0E,
/* "9" Gulim12 8x16 -143-*/
0x00,0xF0,0x08,0x04,0x04,0x04,0x08,0xF0,0x00,0x08,0x11,0x22,0x22,0x22,0x11,0x0F,
/* "." Gulim12 8x16 -159-*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x00,0x00,0x00,
/* ":" Gulim12 8x16 -175-*/
0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x00,0x00,0x00,
/* "%" Gulim12 8x16 -191-*/
0x00,0x18,0x24,0x24,0x98,0x40,0x20,0x00,0x00,0x04,0x02,0x19,0x24,0x24,0x18,0x00,
/* "A" Gulim12 8x16 -207-*/
0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,//A 33
/* "B" Gulim12 8x16 -223-*/
0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00,//B 34
/* "C" Gulim12 8x16 -239-*/
0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,//C 35
/* "D" Gulim12 8x16 -255-*/
0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00,//D 36
/* "E" Gulim12 8x16 -271-*/
0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,//E 37
/* "F" Gulim12 8x16 -287-*/
0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00,//F 38
/* "G" Gulim12 8x16 -303-*/
0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00,//G 39
/* "H" Gulim12 8x16 -319-*/
0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20,//H 40
/* "I" Gulim12 8x16 -335-*/
0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//I 41
/* "J" Gulim12 8x16 -351-*/
0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00,//J 42
/* "K" Gulim12 8x16 -367-*/
0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00,//K 43
/* "L" Gulim12 8x16 -383-*/
0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00,//L 44
/* "M" Gulim12 8x16 -399-*/
0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00,//M 45
/* "N" Gulim12 8x16 -415-*/
0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00,//N 46
/* "O" Gulim12 8x16 -431-*/
0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,//O 47
/* "P" Gulim12 8x16 -447-*/
0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00,//P 48
/* "Q" Gulim12 8x16 -463-*/
0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00,//Q 49
/* "R" Gulim12 8x16 -479-*/
0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,//R 50
/* "S" Gulim12 8x16 -495-*/
0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,//S 51
/* "T" Gulim12 8x16 -511-*/
0x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//T 52
/* "U" Gulim12 8x16 -527-*/
0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//U 53
/* "V" Gulim12 8x16 -543-*/
0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00,//V 54
/* "W" Gulim12 8x16 -559-*/
0xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00,//W 55
/* "X" Gulim12 8x16 -575-*/
0x08,0x18,0x68,0x80,0x80,0x68,0x18,0x08,0x20,0x30,0x2C,0x03,0x03,0x2C,0x30,0x20,//X 56
/* "Y" Gulim12 8x16 -591-*/
0x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//Y 57
/* "Z" Gulim12 8x16 -607-*/
0x10,0x08,0x08,0x08,0xC8,0x38,0x08,0x00,0x20,0x38,0x26,0x21,0x20,0x20,0x18,0x00,//Z 58
/* "sui" song12 16x16 623--*/
0x00,0xFE,0x22,0x5A,0x86,0x08,0x10,0x44,0x24,0xF4,0x2C,0x27,0x24,0xE4,0x04,0x00,
0x00,0xFF,0x04,0x08,0x87,0x41,0x3F,0x40,0x80,0xBF,0x85,0x95,0xA5,0x9F,0x80,0x00,
/* "yuan" song12 16x16 -655-*/
0x20,0x30,0xAC,0x63,0x30,0x00,0x20,0x2C,0xAB,0x6A,0xAA,0x2A,0x3A,0x26,0xA0,0x00,
0x22,0x67,0x22,0x12,0x12,0x00,0x49,0x49,0x24,0x52,0x89,0x7F,0x02,0x0D,0x10,0x00,
/* "zhai" song12 16x16 -687-*/
0x80,0x84,0x84,0x44,0x4C,0x54,0x25,0x26,0x24,0x54,0x4C,0x44,0x84,0x84,0x80,0x00,
0x00,0x00,0xF8,0x09,0x09,0x7D,0x0B,0x09,0x79,0x09,0x49,0x89,0x78,0x00,0x00,0x00,
/* "ju" song12 16x16 -719-*/
0x00,0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0xF2,0x92,0x92,0x92,0x9E,0x80,0x80,0x00,
0x40,0x30,0x0F,0x00,0xFC,0x44,0x44,0x44,0x47,0x44,0x44,0x44,0xFC,0x00,0x00,0x00,
/* "shi" song12 16x16 -751-*/
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xFF,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,
0x00,0x00,0x40,0x40,0x40,0x40,0x40,0x7F,0x40,0x40,0x40,0x40,0x40,0x00,0x00,0x00,
/* "℃" 16X16 -783-*/
0x00,0x0C,0x12,0x12,0x0C,0xC0,0x20,0x10,0x10,0x10,0x10,0x10,0x20,0x40,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x0F,0x10,0x20,0x20,0x20,0x20,0x20,0x10,0x08,0x00,0x00,
/* "%" 16X16 -815-*/
0x00,0x00,0x38,0x44,0x44,0x44,0x38,0x00,0x80,0x40,0x20,0x10,0x08,0x00,0x00,0x00,
0x00,0x00,0x00,0x10,0x08,0x04,0x02,0x01,0x00,0x1C,0x22,0x22,0x22,0x1C,0x00,0x00,
/* " " 8x16 -847-*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
sbit DQ=P3^2;
sbit SDA=P1^0;
sbit SCL=P1^1;
//**********函數聲明********//
void chushihua();
void Delay1000ms(void);
void delay1us();
void i2c_Start();
void i2c_Stop();
void Write_i2c_Byte(uint8_t i2c_Byte);
void Write_i2c_Cmd(uint8_t i2c_Cmd);
void Write_i2c_Data(uint8_t i2c_Data);
void Init_ssd1306_32();
void Clear_top();
void Clear_buttom();
void Write_8X16(uint8_t c0,uint8_t aa,uint16_t add);
void Write_16X16(uint8_t c0,uint8_t aa,uint16_t add);
//**************************//
void chushihua()
{
AUXR &= 0x7F; //定時器時鐘12T模式
TMOD &= 0xF0; //設置定時器模式
TL0 = 0x00; //設置定時初始值//35毫秒@11.0592MHz
TH0 = 0x82; //設置定時初始值
TF0 = 0; //清除TF0標志
TR0 = 0; //定時器0開始計時
ET0 = 1; //使能定時器0中斷
IT1=1;
EX0=1;
EA=1;
SCON = 0x50; //8位數據,可變波特率/9600@11.0592MHz
AUXR &= 0xBF; //定時器時鐘12T模式
AUXR &= 0xFE; //串口1選擇定時器1為波特率發生器
TMOD &= 0x0F; //設置定時器模式
TL1 = 0xE8; //設置定時初始值
TH1 = 0xFF; //設置定時初始值
ET1 = 0; //禁止定時器中斷
TR1 = 1; //定時器1開始計時
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
}
void Timer0_Isr(void) interrupt 1 //35ms采集周期
{
EX0=0; //關閉外中斷0
TR0=0; //關閉定時器0
dat=count;//轉存計數值
count=0;
EX0=1; //開外中斷0
}
void int0_isr()interrupt 0
{
if(DQ==0)
{
count++;
TR0=1;
}
}
void Delay1000ms(void) //@11.0592MHz
{
unsigned char data i, j, k;
i = 57;
j = 27;
k = 112;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void delay1us()//1us@11.0592MHz
{
unsigned char i;
_nop_();
_nop_();
i = 1;
while (--i);
}
void i2c_Start()
{
SCL=1;
delay1us();
SDA=1;
delay1us();
SDA=0;
delay1us();
SCL=0;
}
void i2c_Stop()
{
SCL=0;
delay1us();
SDA=0;
delay1us();
SCL=1;
delay1us();
SDA=1;
}
void Write_i2c_Byte(uint8_t i2c_Byte)
{
uint8_t i;
for(i=0;i<8;i++)
{
if(i2c_Byte & 0x80)
SDA=1;
else
SDA=0;
delay1us();
SCL=1;
delay1us();
SCL=0;
delay1us();
i2c_Byte<<=1;
}
SDA=1;
delay1us();
SCL=1;
delay1us();
SCL=0;
}
void Write_i2c_Cmd(uint8_t i2c_Cmd)
{
i2c_Start();
Write_i2c_Byte(0x78);
Write_i2c_Byte(0x00);
Write_i2c_Byte(i2c_Cmd);
i2c_Stop();
}
void Write_i2c_Data(uint8_t i2c_Data)
{
i2c_Start();
Write_i2c_Byte(0x78);
Write_i2c_Byte(0x40);
Write_i2c_Byte(i2c_Data);
i2c_Stop();
}
void Init_ssd1306_32()
{
Write_i2c_Cmd(0xAE);
Write_i2c_Cmd(0x20);
Write_i2c_Cmd(0x00);
Write_i2c_Cmd(0xb0);
Write_i2c_Cmd(0xc8);
Write_i2c_Cmd(0x00);
Write_i2c_Cmd(0x10);
Write_i2c_Cmd(0x40);
Write_i2c_Cmd(0x81);
Write_i2c_Cmd(0xdf);
Write_i2c_Cmd(0xa1);
Write_i2c_Cmd(0xa6);
Write_i2c_Cmd(0xa8);
Write_i2c_Cmd(0x1F);
Write_i2c_Cmd(0xa4);
Write_i2c_Cmd(0xd3);
Write_i2c_Cmd(0x00);
Write_i2c_Cmd(0xd5);
Write_i2c_Cmd(0xf0);
Write_i2c_Cmd(0xd9);
Write_i2c_Cmd(0x22);
Write_i2c_Cmd(0xda);
Write_i2c_Cmd(0x12);
Write_i2c_Cmd(0xdb);
Write_i2c_Cmd(0x20);
Write_i2c_Cmd(0x8d);
Write_i2c_Cmd(0x14);
Write_i2c_Cmd(0xDA);
Write_i2c_Cmd(0x02);
Write_i2c_Cmd(0xaf);
}
void Clear_top()
{
uint16_t i;
Write_i2c_Cmd(0x22);
Write_i2c_Cmd(0xb0);
Write_i2c_Cmd(0xb1);
Write_i2c_Cmd(0x21);
Write_i2c_Cmd(0);
Write_i2c_Cmd(127);
for(i=0;i<512;i++) Write_i2c_Data(0x00);
}
void Clear_buttom()
{
uint16_t i;
Write_i2c_Cmd(0x22);
Write_i2c_Cmd(0xb2);
Write_i2c_Cmd(0xb3);
Write_i2c_Cmd(0x21);
Write_i2c_Cmd(0);
Write_i2c_Cmd(127);
for(i=0;i<512;i++) Write_i2c_Data(0x00);
}
void Write_8X16(uint8_t c0,uint8_t aa,uint16_t add)
{
uint8_t m;
Write_i2c_Cmd(0x22);
Write_i2c_Cmd(c0);
Write_i2c_Cmd(c0+1);
Write_i2c_Cmd(0x21);
Write_i2c_Cmd(aa);
Write_i2c_Cmd(aa+7);
for(m=0;m<16;m++) Write_i2c_Data(zk[add++]);
}
void Write_16X16(uint8_t c0,uint8_t aa,uint16_t add)
{
uint8_t m;
Write_i2c_Cmd(0x22);
Write_i2c_Cmd(c0);
Write_i2c_Cmd(c0+1);
Write_i2c_Cmd(0x21);
Write_i2c_Cmd(aa);
Write_i2c_Cmd(aa+15);
for(m=0;m<32;m++) Write_i2c_Data(zk[add++]);
}
//*******************************//
void main()
{
float wendu;
unsigned int temp;
unsigned char i;
chushihua();
Init_ssd1306_32();
Clear_top();
Clear_buttom();
Write_8X16(0xb0,8,511);//T溫度
Write_8X16(0xb0,16,271);//E
Write_8X16(0xb0,24,399);//M
Write_8X16(0xb0,32,447);//P
Write_8X16(0xb0,40,175);//:
while(1)
{
if(dat>=801)//正溫度/801對應0度
{
wendu=(dat-801)*0.0625;
}
else //負溫度/801對應0度
{
wendu=(801-dat)*0.0625;
}
temp=wendu*100;//擴大100倍
sendBuf[0]=temp/10000%10;
sendBuf[1]=temp/1000%10;
sendBuf[2]=temp/100%10;
sendBuf[3]=temp/10%10;
sendBuf[4]=temp%10;
Delay1000ms();
P35=~P35;
for(i=0;i<5;i++)
{
SBUF=sendBuf[i];//串口發送
while(TI==0);
TI=0;
}
if(sendBuf[0]>0)
{
Write_8X16(0xb2,0*8,sendBuf[0]*16);
}
else
{
Write_8X16(0xb2,0*8,847);//顯示" "消零
}
Write_8X16(0xb2,1*8,sendBuf[1]*16);
Write_8X16(0xb2,2*8,sendBuf[2]*16);
Write_8X16(0xb2,3*8,10*16);//"."
Write_8X16(0xb2,4*8,sendBuf[3]*16);
Write_8X16(0xb2,5*8,sendBuf[4]*16);
Write_16X16(0xb2,6*8,783);//℃
}
}
復制代碼
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1