资源简介
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;
- 上一篇:游泳馆会员管理系统课程设计
- 下一篇:数值分析试题及答案试题全
相关资源
- STC8951系列单片机中方指南
- proteus仿真 AT89C51输出各种波形
- 单片机与温度传感器DS18B20的程序设计
- 毕业论文之温度传感器DS18B20(源码
- stm32 ds18b20 温度传感器 测试通过
- 51单片机读取温度数据存储到SD卡中并
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- DS18B20分布式多点测温的Proteus仿真
- 单片机 DS18B20 温度控制系统
- 课程设计蔬菜大棚自动控制系统,包
- 基于AT89C51的数据采集系统设计新方法
- C51单片机汇编指令查询、学习工具集
- 基于89c51的数字钟
- 基于单片机交通灯设计
- 基于89C51计算机锁定加密键盘设计
- 基于51单片机的计算器(C51编写,有
- STM32+TMC5160代码电路图.rar
- AT89C51+ADC0808 PROTEUS仿真
- ds18b20温度传感是什么传感器
- 单片机原理及接口技术C51编程张毅刚
- 基于AT89C51的十字路口交通灯设计pro
- 单片机原理及接口技术C51编程
- at89c51单片机外文翻译
- 单片机原理及接口技术C51编程高清P
- 基于C51的电子琴设计
- STC89C52+LCD12864+18B20+1302万年历
- keilc51源代码
- 在C51中变量的空间分配几个方法
- 初学C51的一些误区
- 单片机初学者学习C51时的一些误区和
评论
共有 条评论