久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2217|回復: 1
打印 上一主題 下一主題
收起左側

AD轉換器得到的數據隨著變阻器阻值的變化,在某個范圍內報警

[復制鏈接]
跳轉到指定樓層
樓主
求助,怎么寫這個的主函數代碼,讓這里的AD轉換器得到的數據隨著變阻器阻值的變化,在某個范圍內報警(亮燈并且發出警報)
ad轉換器的轉換代碼已經成功
#include <reg52.h>             //頭文件
#define uchar unsigned char           //宏定義無符號字符型
#define uint  unsigned  int           //宏定義無符號整型


sbit CS_0832 = P1^0;
sbit CLK_0832 = P1^1;
sbit DO_0832 = P1^2;        // DI、DO不同時有效,可共用一個接口
sbit DI_0832 = P1^2;

/******************************************************************
延時函數
******************************************************************/
void delayms(unsigned int xms)
{
        unsigned int x;
        unsigned char y;
        for(x = xms; x > 0; x--)
                for(y = 114; y>0; y--);//11.0592MHz: 114  //12MHz: 124
}


extern void _nop_ ( void );
#define pulse0832() _nop_();_nop_();CLK_0832=1;_nop_();_nop_();CLK_0832=0

//把模擬電壓值轉換成8位二進制數并返回
unsigned char read0832()
{
        unsigned char i, ch = 0, ch1 = 0;
        CS_0832=0;                // 片選,DO為高阻態
       
        DI_0832=1;
        // 此處暫停T-SetUp: 250ns (由pulse0832完成)
        pulse0832();        // 第一個脈沖,起始位,DI置高
       
        DI_0832=1;
        pulse0832();        // 第二個脈沖,DI=1表示雙通道單極性輸入
       
        DI_0832=1;
        pulse0832();        // 第三個脈沖,DI=1表示選擇通道1(CH2)
       
        // 51單片機為準雙向IO口:應先寫入1再讀取
        DI_0832=1;
       
        // MSB FIRST DATA
        for(i = 0; i < 8; ++i) {
                pulse0832();
                ch <<= 1;
                if(DO_0832==1)
                        ch |= 0x01;
        }
       
        // MSB FIRST輸出的最后一位與LSB FIRST輸出的第一位是在
        // 同一個時鐘下降沿之后,故此處先執行讀取,后執行pulse
        // LSB FIRST DATA
        for(i = 0; i < 8; ++i) {
                ch1 >>= 1;
                if(DO_0832==1)
                        ch1 |= 0x80;
                pulse0832();
        }
       
        CS_0832=1;                // 取消片選,一個轉換周期結束
        return (ch==ch1) ? ch : 0;                // 返回轉換結果
}


/*************************************************************************
                                CLK振蕩信號       
**************************************************************************/
void timer0( ) interrupt 1 //定時器0工作方式1
{

TH0=(65536-2)/256;          //重裝計數初值
TL0=(65536-2)%256;          //重裝計數初值
}


/*************************************************************************
                                主函數       
**************************************************************************/
void main()
{
TMOD=0X01;                          //定時器中斷0

TH0=(65536-2)/256;          //定時時間高八位初值
TL0=(65536-2)%256;          //定時時間低八位初值
EA=1;                                  //開CPU中斷
ET0=1;                                  //開T/C0中斷
TR0=1;

51hei圖片20200606155229.png (60.4 KB, 下載次數: 59)

51hei圖片20200606155229.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:767423 發表于 2020-6-6 22:05 | 只看該作者
變量read_data,xx,nn
while(1)
{
   read_data=read0832();
   if(read_data>xx&read_data<nn)
   {
       燈亮
       報警;
     }
    else
   {
       關燈;
       關報警;
    }
}
這是簡單的,實際讀出的數據要濾波,比如N點求平均。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人欧美日韩一区二区三区 | 青青草一区二区三区 | 国产精品免费在线 | 中文字幕91 | 午夜精品| 日韩电影在线一区 | 亚洲一一在线 | 午夜影院官网 | 国产综合欧美 | 成人av播放| 国产精品毛片一区二区在线看 | 欧美激情区 | 人人看人人射 | 黄色小视频入口 | 亚洲欧洲在线观看视频 | 亚洲欧美在线一区 | 欧美理伦片在线播放 | 成人小视频在线免费观看 | 国产成人精品999在线观看 | 久久久国产一区二区三区四区小说 | 国产资源在线观看 | 欧美日韩不卡合集视频 | 99久久精品免费看国产四区 | 亚洲精品欧美 | 日本啊v在线 | 欧美亚洲综合久久 | 亚洲第一天堂 | 91视频一区二区 | 日本久久久影视 | 久久精品国产一区二区电影 | 国产99视频精品免费视频7 | 亚洲精选一区二区 | 午夜影院在线观看免费 | 欧美激情在线精品一区二区三区 | 一区二区国产精品 | 91超碰在线 | 国产成人高清 | 久久中文字幕一区 | 欧美高清视频在线观看 | 九九热免费视频在线观看 | 中文字幕 国产精品 |