资源简介
这是我们课程的一个大作业,基于网络上的气压计设计完成,将网络版的AD转换器替换成了ADC0808,并加入了简单的过压报警功能,调试成功~
代码片段和文件信息
#include
#include “intrins.h“
#define uint unsigned int
#define uchar unsigned char
#define OUTPORT P2
sbit EOC=P3^0;
sbit START=P3^1;
sbit pd =P1^7;
unsigned char dispbitcode[8]={0xf70xfb0xfd0xfe0xef0xdf0xbf0x7f}; //位扫描
unsigned char dispcode[11]={0xC00xF90xA40xB00x990x920x820xF80x800x900xff}; //共阳数码管字段码
unsigned char dispbuf[4];
uint temp;
uchar getdata; //获取ADC转换回来的值
void delay_1ms(void) //12mhz delay 1.01ms
{
unsigned char xy;
x=3;
while(x--)
{
y=40;
while(y--);
}
}
void delayms(int z)
{
int xy;
for(x=z;z>0;z--)
{
for(y=114;y>0;y--);
}
}
void display(void) //数码管显示函数
{
char k;
for(k=0;k<4;k++)
{
P1 = dispbitcode[k];
P0 = dispcode[dispbuf[k]];
if(k==1) //加上数码管的dp小数点
P0&=0x7f;
delay_1ms();
}
}
unsigned int Adc0808()//unsigned char channel)
{
unsigned int uiResult;
//if(channel==0);
START=1; //启动AD转换。
START=0;
while(EOC==0); //等待转换结束。
uiResult=OUTPORT; //出入转换结果。
//uiResult=(uiResult*200)/51; //处理运算结果。
return uiResult;
}
void main(void)
{
while(1)
{ unsigned int temp;
float press;
getdata=Adc0808();
if(14 {
int vary=getdata; //y=(115-15)/(243-13)*X+15kpa
press=((10.0/23.0)*vary)+9.3; //测试时补偿值为9.3
temp=(int)(press*10); //放大10倍,便于后面的计算
dispbuf[3]=temp/1000; //取压力值百位
dispbuf[2]=(temp%1000)/100; //取压力值十位
dispbuf[1]=((temp%1000)%100)/10; //取压力值个位
dispbuf[0]=((temp%1000)%100)%10; //取压力值十分位
display();
}
if(press>100)
{
pd=0;
delayms(90);
display();
delayms(90);
display();
delayms(90);
display();
delayms(90);
display();
delayms(90);
display();
delayms(90);
display();
pd=1;
delayms(90);
display();
delayms(90);
display();
delayms(90);
display();
delayms(90);
display();
delayms(100);
display();
delayms(90);
display();
}
if(press<=100)
{
pd=1;
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7993 2013-11-03 15:35 气压计设计\000
文件 4376 2013-11-03 15:35 气压计设计\000.hex
文件 40 2013-11-03 15:35 气压计设计\000.lnp
文件 11442 2013-11-03 15:35 气压计设计\000.M51
文件 1074 2013-11-03 15:35 气压计设计\000.opt.bak
文件 4129 2013-11-03 15:35 气压计设计\000.plg
文件 2171 2013-11-03 15:35 气压计设计\000.Uv2.bak
文件 56359 2013-11-03 15:35 气压计设计\000.uvopt
文件 13417 2013-11-03 15:35 气压计设计\000.uvproj
文件 1072 2013-11-03 15:35 气压计设计\000_Opt.Bak
文件 2171 2013-11-03 15:35 气压计设计\000_Uv2.Bak
文件 56538 2013-11-03 15:35 气压计设计\000_uvopt.bak
文件 2635 2013-11-03 15:35 气压计设计\MAIN.c
文件 6433 2013-11-03 15:35 气压计设计\MAIN.LST
文件 7047 2013-11-03 15:35 气压计设计\MAIN.OBJ
文件 6376 2013-11-03 15:35 气压计设计\STARTUP.A51
文件 14064 2013-11-03 15:35 气压计设计\STARTUP.LST
文件 758 2013-11-03 15:35 气压计设计\STARTUP.OBJ
文件 132221 2013-11-03 15:35 气压计设计\气压计\Last Loaded 气压计.DBK
文件 131472 2013-11-03 15:42 气压计设计\气压计\气压计.DSN
文件 743 2013-11-13 18:40 气压计设计\气压计\气压计.PWI
目录 0 2013-11-13 18:40 气压计设计\气压计
目录 0 2013-11-03 15:35 气压计设计
----------- --------- ---------- ----- ----
462531 23
相关资源
- 基于51单片机的ds18b20温度传感器实现
- 51单片机Protues,仿真PT100温度传感器,
- 基于51单片机的温度报警
- DS1621温度传感器实验仿真图和程序
- 温湿度传感器DHT11 +烟雾报警 8位数码
- 指纹传感器_电容式_SPI接口__GF66x8系列
- 基于单片机的便携式电子称的设计
- DS18B20温度传感器的proteus仿真.rar
- 基于Arduino的温湿度传感器DHT11库
- 基于MRAS的永磁同步电机无位置传感器
- 基于rfid和磁导航传感器的agv的实现
- MQ传感器接法
- STM32-DS18B20.zip
- zigbe浊度传感器
- 激光传感器夹具图
- 土壤湿度传感器的文档资料和程序
- sht31 温湿度传感器stm32 实现
- TI公司关于滑模观测器测量转子位置说
- 论文研究-基于无线传感器网络的山体
- 论文研究-无线传感器网络路由算法综
- 维客亲源—极低心率监测芯片VC9S.do
- 雨滴传感器的详细介绍
- LEM 50A霍尔电流传感器产品手册.pdf
- 基于四线制PT100的矿用温度传感器设计
- 金属电阻应变片扭矩传感器的测量原
- 湿度传感器原理图及程序
- HI226HI229 6轴姿态传感器在STM32下的串口
- 一种基于遗传算法的无线传感器网络
- 一种基于红外光电探测器的雨量传感
- 单总线两个DS18B20温度传感器程序及其
评论
共有 条评论