资源简介
本程序用到了独立键盘、时钟芯片DS12C887A、LCD1602显示器LM016L、压力传感模块MPX4115、A/D模块ADC0832、温度传感模块DS18B20以及蜂鸣器和AT89C52单片机。
在该程序中,主控模块先读取时钟模块DS12C887A中的数据,然后送给LM1602中显示,该时钟的数据是可以调节的,包括年、月、日、时、分、秒以及闹钟,同时,该时钟还有测量温度与气压的功能,显示温度时是直接读取DS18B20中的数据,显示气压时则要先用ADC0832模块把MPX4115中的电压信号转换成数字信号,才能送到液晶屏中显示。
本程序可作毕业设计和项目设计的学习交流使用,希望大家喜欢,有不足之处亦望指正!!!

代码片段和文件信息
#include
#include “pressure.h“
uint adc0832() reentrant //[递归时要设为可重入函数,用reentrant定义]
{
uchar i = 0;
uint dat = 0;
uchar ndat = 0;
adcs = 0; //拉低CS端
delay(00);
adclk = 1; //拉高CLK端
addi = 1;
delay(00);
adclk = 0; //拉低CLK端形成下降沿1
delay(00);
adclk = 1; //拉高CLK端
addi = 0x00;
delay(00);
adclk = 0; //拉低CLK端形成下降沿2
delay(00);
adclk = 1; //拉高CLK端
addi = 0x01;
delay(00);
adclk = 0; //拉低CLK端形成下降沿3
delay(00);
for(i = 0;i < 8;i ++)
{
dat |= addo; //收数据
adclk = 1;
delay(00);
adclk = 0; //形成一次时钟脉冲
delay(00);
dat <<= 1;
}
for(i = 0;i < 7;i ++)
{
ndat >>= 1;
adclk = 1;
delay(00);
adclk = 0; //形成一次时钟脉冲
delay(00);
if(addo)
ndat |= 0x80;
}
adcs = 1; //拉高CS端
if(dat == ndat)
return (((10.0 / 23.0) * dat) + 9.3) * 10; //y=(115 - 15) / (243 - 13) * X + 9.3kpa,放大10倍,便于后面的计算
else
return adc0832();
}
void read_press()
{
uint temp = adc0832();
p1 = temp / 1000;
if(p1 == 0)
{
p1 = 0x20;
}
else
{
p1 += 0x30;
}
p2 = temp / 100 % 10 + 0x30;
p3 = temp % 100 /10 + 0x30;
p4 = temp % 100 %10 + 0x30;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 857 2012-05-11 16:34 Time\define.h
文件 19 2012-04-06 16:50 Time\ExtDll.iex
文件 413832 2012-05-11 16:01 Time\Last Loaded Time.DBK
文件 1374 2012-04-06 18:30 Time\pressure.c
文件 286 2012-04-06 15:08 Time\pressure.h
文件 3400 2012-05-11 16:34 Time\pressure.LST
文件 4650 2012-05-11 16:34 Time\pressure.OBJ
文件 2492 2012-04-22 15:30 Time\temperature.c
文件 128 2012-04-04 23:43 Time\temperature.h
文件 6082 2012-05-11 16:34 Time\temperature.LST
文件 6942 2012-05-11 16:34 Time\temperature.OBJ
文件 42361 2012-05-11 16:34 Time\time
文件 13633 2012-05-11 16:34 Time\time.c
文件 413832 2012-05-11 16:01 Time\Time.DSN
文件 14831 2012-05-11 16:34 Time\time.hex
文件 77 2012-05-11 16:34 Time\time.lnp
文件 41494 2012-05-11 16:34 Time\time.LST
文件 50325 2012-05-11 16:34 Time\time.M51
文件 38526 2012-05-11 16:34 Time\time.OBJ
文件 420 2012-05-11 16:36 Time\time.plg
文件 1221 2012-05-11 16:36 Time\Time.PWI
....... 279984 2012-05-11 16:36 Time\time.uvgui.Administrator
....... 279984 2012-05-11 15:57 Time\time.uvgui_Administrator.bak
....... 12150 2012-05-11 16:36 Time\time.uvopt
文件 13613 2012-04-05 17:02 Time\time.uvproj
....... 12143 2012-05-11 15:57 Time\time_uvopt.bak
文件 13443 2012-04-04 15:08 Time\time_uvproj.bak
文件 130048 2012-05-11 16:08 Time\操作说明.doc
目录 0 2012-05-11 16:36 Time
----------- --------- ---------- ----- ----
............此处省略2个文件信息
- 上一篇:如何用腾讯云登录谷歌
- 下一篇:面向模式的软件架构 卷4 分布式计算的模式语言
相关资源
- ds18b20温度传感器编程指令功能
- 温度传感器DS18B20序列号批量搜索算法
- FreeRTOS采样ADC+KEY事件信号+DMA串口收发
- 51单片机通信采样proteus仿真方波转化
- 51单片机PWM程序,占空比、周期可调整
- proteus仿真 AT89C51输出各种波形
- 00
- 单片机与温度传感器DS18B20的程序设计
- 毕业论文之温度传感器DS18B20(源码
- stm32 ds18b20 温度传感器 测试通过
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- proteus_24C08—有注释(proteus里面使用的
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- DS18B20分布式多点测温的Proteus仿真
- 单片机 DS18B20 温度控制系统
- 课程设计蔬菜大棚自动控制系统,包
- 基于proteus的单片机仿真--交通灯控制
- 带时间温度显示的室内灯光控制系统
- 51多机通信(内附Proteus及.hex文件)
- IIC proteus仿真实验
- 8086交通灯 Proteus原理图及程序
- 单片机仿真软件proteus6.7免安装绿色版
- 关于proteus仿真arm7出现错误的问题
- 基于PROTEUS的ARM7显示系统设计与仿真实
- STM32+1602液晶proteus仿真.zip
- AT89C51+ADC0808 PROTEUS仿真
- 单片机驱动4相步进电机proteus仿真
- ds18b20温度传感是什么传感器
- proteus元件库对照表 (整理清晰)
评论
共有 条评论