资源简介

本程序用到了独立键盘、时钟芯片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个文件信息

评论

共有 条评论