资源简介

8个温度检测+报警+可按键设置报警值 51单片机 proteus仿真

资源截图

代码片段和文件信息

#include

/*
* 1、检测8路温度,0到100,分辨率0.5c,0到5v的信号模拟,(每隔1s采集一次)
  2、循环显示每一路温度值,也可手动固定某一路(开关开闭选择位)
  3、参数设置,16个参数,开关选择
  4、报警指示 高于上限  低于下限

  操作说明:
    上机即是实时温度间隔1s显示,
  按下按键1,是暂停轮转键,按下后,数码管只显示这个通道的温度值,不再轮转,再次按下,恢复状态
按下按键2,是模式设定按键,按下后进入设定上限值的模式,分别有0 到 16 这17档,
   0代表回到普通模式,1到8代表设置8个通道的上限,9到16代表设置8个通道的下限
在1到16模式下,按按键3表示加,按键4表示减少
在任意模式下,按下MIAN_KEY,回到模式0下。 

*/

sbit duan_sc = P2 ^ 4;    //段锁存
sbit wei_sc = P2 ^ 5;     //位锁存

sbit ST = P3 ^ 0;
sbit EOC = P3 ^ 1;
sbit OE = P3 ^ 2;
sbit ADDA = P3 ^ 3;
sbit ADDB = P3 ^ 4;
sbit ADDC = P3 ^ 5;

sbit HIGH_W_LED = P3 ^ 6;
sbit LOW_W_LED = P3 ^ 7;

sbit GUDING_KEY = P2 ^ 0;  //固定显示 即是显示一个通道的
sbit MOD_KEY = P2 ^ 1;  //模式切换 0 代表正常显示模式  1 到 16 表示设置 通道1到通道8的上下限的值
sbit ADD_KEY = P2 ^ 2;
sbit DEC_KEY = P2 ^ 3;

sbit MIAN_KEY = P2 ^ 7; //按下这个键  立刻回到主显示界面

/*  **************************************  */
/*  ********变量                 *******  */
/*  **************************************  */
unsigned char DATA;

unsigned char mode=0;
unsigned char pause=0;

float adc[8] = { 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 };   //adc读取后存在数组里
unsigned char count = 0;      //定时器中断计数
unsigned char display_CH = 0;     //选择哪一个转化通道的值来显示  定时器里面去改变

int LOW__com[9]={250250250250250250250250250}; //低比较 
int HIGH_com[9]={750750750750750750750750750}; //高比较

unsigned char code duanma[]=
{   0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f};     // 显示段码值01234567
unsigned char code weima[]=
{   0xfe0xfd0xfb0xf70xef0xdf0xbf0x7f};   //分别对应相应的数码管点亮即位码

void delay(unsigned int t)
{
    unsigned char i;
    while (t--)
    {
        for (i = 125; i > 0; i--)
            ;
    }
}

/*  **************************************  */
/*  ********刷新数码管显示  传入的一个是显示哪一个通道的AD
 另一个是显示数值为多少                *******  */
/*  **************************************  */
void display(unsigned char which float adcc)
{
    int adc_temp;
    unsigned char d1 d2 d3 d4;

    adc_temp = (int) (adcc * 1);




    d1 = adc_temp / 1000;
    d2 = (adc_temp % 1000) / 100;
    d3 = (adc_temp % 100) / 10;
    d4 = (adc_temp % 10) / 1;
    ///////////////////////////////////////////////
    P0 = weima[0];
    wei_sc = 1;
    wei_sc = 0;
    P0 = 0x00;

    P0 = duanma[which];
    duan_sc = 1;
    duan_sc = 0;
    P0 = 0x00;

    delay(2);
    ///////////////////////////////////////////////
    P0 = weima[1];
    wei_sc = 1;
    wei_sc = 0;
    P0 = 0x00;

    P0 = 0x40;
    duan_sc = 1;
    duan_sc = 0;
    P0 = 0x00;

    delay(2);
    ///////////////////////////////////////////////
    P0 = weima[2];
    wei_sc = 1;
    wei_sc = 0;
    P0 = 0x00;

    P0 = duanma[d1];
    duan_sc = 1;
    duan_sc = 0;
    P0 = 0x00;

    delay(2);
    ///////////////////////////////////////////////
    P0 = weima[3];
    wei_sc = 1;
    wei_sc = 0;
    P0 = 0x00;

    P0 = duanma[d2] ;
    duan_sc = 1;
    

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-04-24 14:14  3 8个温度检测+报警+可按键设置报警值\
     文件       33961  2018-06-28 17:47  3 8个温度检测+报警+可按键设置报警值\Backup Of 温度检测.pdsbak
     文件       34016  2018-07-13 17:34  3 8个温度检测+报警+可按键设置报警值\Last Loaded 温度检测.pdsbak
     文件       12315  2018-07-13 17:08  3 8个温度检测+报警+可按键设置报警值\main.c
     文件       26185  2018-07-13 17:35  3 8个温度检测+报警+可按键设置报警值\main.LST
     文件       18511  2018-07-13 17:35  3 8个温度检测+报警+可按键设置报警值\main.OBJ
     文件       16038  2018-07-13 17:35  3 8个温度检测+报警+可按键设置报警值\PWM_MOTOS
     文件        7559  2018-07-13 17:35  3 8个温度检测+报警+可按键设置报警值\PWM_MOTOS.hex
     文件          45  2018-07-13 17:35  3 8个温度检测+报警+可按键设置报警值\PWM_MOTOS.lnp
     文件       22994  2018-07-13 17:35  3 8个温度检测+报警+可按键设置报警值\PWM_MOTOS.M51
     文件         354  2018-07-13 17:35  3 8个温度检测+报警+可按键设置报警值\PWM_MOTOS.plg
     文件       55208  2018-07-13 17:34  3 8个温度检测+报警+可按键设置报警值\PWM_MOTOS.uvopt
     文件       13231  2018-05-13 17:17  3 8个温度检测+报警+可按键设置报警值\PWM_MOTOS.uvproj
     文件       55210  2018-07-13 15:13  3 8个温度检测+报警+可按键设置报警值\PWM_MOTOS_uvopt.bak
     文件           0  2018-05-13 17:17  3 8个温度检测+报警+可按键设置报警值\PWM_MOTOS_uvproj.bak
     文件       44032  2018-07-13 15:42  3 8个温度检测+报警+可按键设置报警值\微机与单片机应用课程设计指导书20180708 (1).doc
     文件       34536  2018-12-17 13:48  3 8个温度检测+报警+可按键设置报警值\温度检测.pdsprj
     文件        2198  2019-04-24 14:14  3 8个温度检测+报警+可按键设置报警值\温度检测.pdsprj.ANOOP.PC1.workspace
     文件         740  2019-04-24 14:09  说明书.txt

评论

共有 条评论