资源简介
本程序用到了独立键盘、时钟芯片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 分布式计算的模式语言
相关资源
- 51单片机制作的气体报警二次仪表(带
- 最全proteus元件库
- Proteus仿真
- 毕业设计,温度控制,基于DS18B20
- Proteus元件库合集(常用元件都有)
- 基于Proteus和Keil C[林立]教材与源代码
- 基于单片机控制的寻迹小车设计 含设
- PROTEUS.zip
- Proteus教程——电子线路设计、制版与
- Proteus集锦(包括电路图.仿真程序各种
- 基于单片机的数字气压计MPX4250气压传
- STM32_ds18b20_oled显示
- 基于STM32的电压和温度采集DS18B20
- DS18b20温度传感器协调器终端zigbee程序
- 基于STM32的proteus仿真——电子时钟设
- proteus元件库
- 基于51单片机的温度火灾烟雾报警器
- setup_proteus_v75sp3.part2.rar
- Proteus教程电子版
- proteus元件库最新版
- OLED显示温度和时间-STM32F103C8T6完整程
- 51单片机超声波测距 含源程序视频P
- 《基于PROTEUS的电路及单片机设计与仿
- 微机原理与接口技术——基于8086和
- 常用传感器技术及应用.pdf
- 51单片机学uCosII--跟我一起看书和实践
- proteus仿真stm32测距.zip
- 80C51单片机实验实训100例 基于Keil C和
- 最新proteus元件库
- proteus下的PIC18F452八个例程,原创!
评论
共有 条评论