资源简介
mpx4115压力和ds18b20温度LED显示,可精确0.1kpa,显示稳定,带预设值与报警电路,课切换压力与温度预设值显示。
代码片段和文件信息
#include
#include “intrins.h“
#include
#define uint unsigned int
#define uchar unsigned char
//ADC0832的引脚
sbit ADCS =P2^0; //ADC0832 chip seclect
sbit ADDI =P3^7; //ADC0832 k in
sbit ADDO =P3^7; //ADC0832 k out
sbit ADCLK =P3^6; //ADC0832 clock signal
sbit key1=P3^1;
sbit key2=P3^2;
sbit key3=P3^3;
sbit key4=P3^4;
sbit key5=P3^5;
sbit A=P2^1;
sbit B_B=P2^2;
sbit C=P2^3;
sbit D=P2^4;
sbit E=P2^5;
sbit LED_r=P2^6;
uchar dispbitcode[8]={0xf70xfb0xfd0xfe0xef0xdf0xbf0x7f}; //位扫描
uchar dispcode[]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f}; //共阳数码管字段码
uchar dispcode2[]={0xbf0x860xdb0xcf0xe60xed0xfd0x870xff0xef}; //共阳数码管字段码,带点
uchar dispbuf[8];
uint temptemp1;
uchar getdataPH_yPH_wPL_yPL_wabcdefghpqtestN;
float wendu;
void delay_1ms(void) //12mhz delay 1.01ms
{
unsigned char xy;
x=3;
while(x--)
{
y=40;
while(y--);
}
}
void delay_ms(void)
{
uchar ij;
for(i=0;i<251;i++)
{
for(j=0;j<113;j++)
{
;
}
}
}
void display(void) //数码管显示函数
{
P1=0xff;
P0=0x00;
P1=dispbitcode[0];
P0=dispcode[dispbuf[0]];
delay_1ms();
P1 = dispbitcode[1];
P0=dispcode2[dispbuf[1]];
delay_1ms();
P1 = dispbitcode[2];
P0 = dispcode[dispbuf[2]];
delay_1ms();
P1 = dispbitcode[3];
P0 = dispcode[dispbuf[3]];
delay_1ms();
P1 = dispbitcode[5];
P0 = dispcode[dispbuf[6]];
delay_1ms();
P1 = dispbitcode[6];
P0=dispcode2[dispbuf[5]];
delay_1ms();
P1 = dispbitcode[7];
P0=dispcode[dispbuf[4]];
delay_1ms();
P1= 0xff;
P0= 0x00;
}
/************
读ADC0832函数
************/
//采集并返回
unsigned int Adc0832(unsigned char channel) //AD转换,返回结果
{
uchar i=0;
uchar j;
uint dat=0;
uchar ndat=0;
if(channel==0)channel=2;
if(channel==1)channel=3;
ADDI=1;
_nop_();
_nop_();
ADCS=0;//拉低CS端
_nop_();
_nop_();
ADCLK=1;//拉高CLK端
_nop_();
_nop_();
ADCLK=0;//拉低CLK端形成下降沿1
_nop_();
_nop_();
ADCLK=1;//拉高CLK端
ADDI=channel&0x1;
_nop_();
_nop_();
ADCLK=0;//拉低CLK端形成下降沿2
_nop_();
_nop_();
ADCLK=1;//拉高CLK端
ADDI=(channel>>1)&0x1;
_nop_();
_nop_();
ADCLK=0;//拉低CLK端形成下降沿3
ADDI=1;//控制命令结束
_nop_();
_nop_();
dat=0;
for(i=0;i<8;i++)
{
dat|=ADDO;//收数据
ADCLK=1;
_nop_();
_nop_();
ADCLK=0;//形成一次时钟脉冲
_nop_();
_nop_();
dat<<=1;
if(i==7)dat|=ADDO;
}
for(i=0;i<8;i++)
{
j=0;
j=j|ADDO;//收数据
ADCLK=1;
_nop_();
_nop_();
ADCLK=0;//形成一次时钟脉冲
_nop_();
_nop_();
j=j<<7;
ndat=ndat|j;
- 上一篇:游泳馆会员管理系统课程设计
- 下一篇:数值分析试题及答案试题全
相关资源
- 单总线温度采集与显示
- 报警发生器
- 基于C51单片机计时器
- 已成功的DS18B20温度显示程序带高低限
- 温度显示报警程序 温度传感器ds18
- 18B20+1602温度报警完整
- 51单片机和1602显示18b20温度报警系统
- 89C51汽车防盗报警设计
- 温度检测控制报警程序
- 51单片机室温 体温测量
- 带报警的MPX4115气压计设计
- 基于51单片机的ds18b20温度传感器实现
- 基于AT89C51单片机的家庭防盗报警系统
- 基于51的表决器程序代码
- DS18B20的温度显示程序,序列号读取,
- 两片74HC595显示4位数码程序(C51单片机
- 基于C51单片机多功能时钟系统
- 单片机C51自动循迹小车程序
- DS18B20的时序图详解
- 1602+ds1302+18B20万年历显示温度星期完全
- at24c512 驱动程序
- eeprom at24c512 驱动函数
- STC89C51单片机RC522读卡程序,Keil文件,
- DS18b20在STC12C5A60S2上的移植
- L298控制直流电机加减速的89c51单片机
- 蜂鸣器播放音乐-小星星亮晶晶.rar
- STC90C516RD+ 5min切换点阵LED显示
- MSP430单片机通过proteus仿真DS18B20程序
- DS18B20温度传感器的proteus仿真.rar
- C51一个按键控制LED四种模式
评论
共有 条评论