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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

stm8 制作抽水系統

[復制鏈接]
跳轉到指定樓層
樓主
ID:215767 發表于 2017-6-29 20:28 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
/* MAIN.C file
*
* Copyright (c) 2002-2005 STMicroelectronics
*/

#include <stm8s_conf.h>

#define WATCHDOG_OPEN

#define uint unsigned int

#define uchar unsigned char
void delay_1ms( uchar time);
//void delay_10us(uchar //void init_tim4(void);
//void iwdg_init(void);
void adc1_init1(void);
void adc1_init2(void);
void adc1_init3(void);
void adc1_init4(void);
//void adc1_init3(void);
extern uchar time_count;
uchar count;
uint adc1_value;
uint adc2_value;
uint adc3_value;
uint adc4_value;
uchar ZT;
#define LED1_OFF  GPIO_WriteHigh(GPIOC,GPIO_PIN_3)
#define LED1_ON  GPIO_WriteLow(GPIOC,GPIO_PIN_3)
#define RED_OFF  GPIO_WriteHigh(GPIOA,GPIO_PIN_1)//紅燈閃開
#define RED_ON   GPIO_WriteLow(GPIOA,GPIO_PIN_1)//紅燈閃關
#define LED2_OFF  GPIO_WriteHigh(GPIOC,GPIO_PIN_5)
#define LED2_ON   GPIO_WriteLow(GPIOC,GPIO_PIN_5)
#define LED3_OFF  GPIO_WriteHigh(GPIOC,GPIO_PIN_6)
#define LED3_ON   GPIO_WriteLow(GPIOC,GPIO_PIN_6)
#define LED4_OFF  GPIO_WriteHigh(GPIOC,GPIO_PIN_7)
#define LED4_ON  GPIO_WriteLow(GPIOC,GPIO_PIN_7)//水位狀態
/*#define SW_ON  GPIO_WriteHigh(GPIOA,GPIO_PIN_3)
#define SW_OFF   GPIO_WriteLow(GPIOA,GPIO_PIN_3)*/
#define LEDGZ_OFF  GPIO_WriteHigh(GPIOB,GPIO_PIN_4)
#define LEDGZ_ON  GPIO_WriteLow(GPIOB,GPIO_PIN_4)
#define LED_EE GPIO_ReadInputPin(GPIOB, GPIO_PIN_5)
void delay_1ms(unsigned char time)
{
        unsigned char i;
        for(i=0;i<time;i++)
                {
                        time_count=0;
                        while(1)
                        {
                                if(time_count>10)
                                        break;
                        }
                         WATCHDOG_OPEN
                        IWDG_ReloadCounter();
                }
}
delay(unsigned int time)
{
        unsigned char i,j;
        while(time--)
                {
                        for(i=0;i<200;i++)
                                {
                                        for(j=0;j<20;j++)
                                                {;}
                                }
                }
}
//GPIO_ReadInputPin(GPIOD, GPIO_PIN_6)
//MOS管必須5V以上才能驅動
//-----------5v------------
//10.8v  543
//12.5v  630
//13.2v  664
//13.8v  695
//14.4v  725
//14.6v  733
//16.5v  830
//-------------------------
main()
{
//紅燈

//GPIO_Init(GPIOB, GPIO_PIN_5, GPIO_MODE_OUT_PP_LOW_SLOW);
GPIO_Init(GPIOB, GPIO_PIN_4, GPIO_MODE_OUT_PP_LOW_SLOW);
//MOS管控制
GPIO_Init(GPIOA, GPIO_PIN_3, GPIO_MODE_OUT_OD_HIZ_SLOW);
//繼電器控制

GPIO_Init(GPIOC, GPIO_PIN_3, GPIO_MODE_OUT_PP_HIGH_SLOW);
GPIO_Init(GPIOA, GPIO_PIN_1, GPIO_MODE_OUT_PP_HIGH_SLOW);
//水位燈一
GPIO_Init(GPIOC, GPIO_PIN_5, GPIO_MODE_OUT_PP_HIGH_SLOW);
//水位燈二
GPIO_Init(GPIOC, GPIO_PIN_6, GPIO_MODE_OUT_PP_HIGH_SLOW);
//水位燈三
GPIO_Init(GPIOC, GPIO_PIN_7, GPIO_MODE_OUT_PP_HIGH_SLOW);

//水位燈四
GPIO_Init(GPIOD, GPIO_PIN_6, GPIO_MODE_IN_FL_NO_IT);
//測水管腳一
GPIO_Init(GPIOD, GPIO_PIN_5, GPIO_MODE_IN_FL_NO_IT);
//測水管腳二
GPIO_Init(GPIOD, GPIO_PIN_3, GPIO_MODE_IN_FL_NO_IT);
//測水管腳三
GPIO_Init(GPIOD, GPIO_PIN_2, GPIO_MODE_IN_FL_NO_IT);

GPIO_Init(GPIOB, GPIO_PIN_5, GPIO_MODE_IN_FL_NO_IT);
//自動手動讀入
//adc1_init();
  count=0;
        ZT=0;//紅燈狀態
        RED_ON;
while(1)
                        {
                                                if(GPIO_ReadInputPin(GPIOB, GPIO_PIN_5))//
                                        {
                                                                adc1_init1();                       //
                                                                delay(5);                           //
                                                                adc1_value=ADC1_GetConversionValue();//
                                                                delay(5);                            //
                                                                if(ZT==1)                            //
                                                                {
                                                                        RED_OFF;                           //
                                                                        delay(5);                          //
                                                                        RED_ON;
                                                                }
                                                                else
                                                                        RED_ON;
                                                                if(adc1_value<578)
                                                                {
                                                                        LED1_ON;//燈亮
                                                                }
                                                                else
                                                                {
                                                                        LED1_OFF;
                                                                        GPIO_Init(GPIOA, GPIO_PIN_3, GPIO_MODE_OUT_PP_HIGH_SLOW);
                                                                        ZT=1;//紅燈閃狀態
                                                                        delay(100);
                                                                        count++;
                                                                        if(count==45)
                                                                        {
                                                                                count=0;
                                                                                while(adc1_value>578)
                                                                                        {
                                                                                                if(GPIO_ReadInputPin(GPIOB, GPIO_PIN_5)==0)
                                                                                                break;                                                                                               
                                                                                                GPIO_Init(GPIOA, GPIO_PIN_3, GPIO_MODE_OUT_OD_HIZ_SLOW);
                                                                                                ZT=0;
                                                                                                adc1_value=ADC1_GetConversionValue();
                                                                                                LEDGZ_OFF;
                                                                                                delay(10);
                                                                                                LEDGZ_ON;
                                                                                        }
                                                                                        RED_ON;                           
                                                                                        GPIO_Init(GPIOA, GPIO_PIN_3, GPIO_MODE_OUT_PP_HIGH_SLOW);
                                                                                        ZT=1;
                                                                        }
                                                                }
                                                                adc1_init2();
                                                                delay(10);
                                                                adc2_value=ADC1_GetConversionValue();
                                                                delay(10);
                                                                if(adc2_value<578)
                                                                {
                                                                        LED2_ON;       
                                                                }       
                                                                else
                                                                {
                                                                        LED2_OFF;
                                                                }
                                                                adc1_init3();
                                                                delay(10);
                                                                adc3_value=ADC1_GetConversionValue();
                                                                delay(10);
                                                                if(adc3_value<578)
                                                                {
                                                                        LED3_ON;
                                                                }
                                                                else
                                                                {
                                                                        LED3_OFF;
                                                                }
                                                               
                                                                adc1_init4();
                                                                delay(10);
                                                                adc4_value=ADC1_GetConversionValue();
                                                                delay(10);
                                                                if(adc4_value<578)
                                                                {
                                                                        LED4_ON;
                                                                        delay(600);
                                                                        GPIO_Init(GPIOA, GPIO_PIN_3, GPIO_MODE_OUT_OD_HIZ_SLOW);
                                                                        ZT=0;
                                                                }
                                                                else
                                                                {
                                                                        LED4_OFF;
                                                                }
                                                                LEDGZ_OFF;
                                                                delay(5);
                                                                LEDGZ_ON;
                                         }
                                         else
                                 {
                                                                LEDGZ_OFF;
                                                                GPIO_Init(GPIOA, GPIO_PIN_3, GPIO_MODE_OUT_OD_HIZ_SLOW);
                                                                RED_ON;
                                                                adc1_init1();
                                                                delay(5);
                                                                adc1_value=ADC1_GetConversionValue();
                                                                delay(5);
                                                                if(adc1_value<578)
                                                                {
                                                                        LED1_ON;//燈亮
                                                                }
                                                                else
                                                                {
                                                                        LED1_OFF;
                                                                }
                                                                adc1_init2();
                                                                delay(5);
                                                                adc2_value=ADC1_GetConversionValue();
                                                                delay(5);
                                                                if(adc2_value<578)
                                                                {
                                                                        LED2_ON;       
                                                                }       
                                                                else
                                                                {
                                                                        LED2_OFF;
                                                                }
                                                                adc1_init3();
                                                                delay(5);
                                                                adc3_value=ADC1_GetConversionValue();
                                                                delay(5);
                                                                if(adc3_value<578)
                                                                {
                                                                        LED3_ON;
                                                                }
                                                                else
                                                                {
                                                                        LED3_OFF;
                                                                }
                                                               
                                                                adc1_init4();
                                                                delay(5);
                                                                adc4_value=ADC1_GetConversionValue();
                                                                delay(5);
                                                                if(adc4_value<578)
                                                                {
                                                                        LED4_ON;
                                                                }
                                                                else
                                                                {
                                                                        LED4_OFF;
                                                                }
                                 }
                        }
}  
        /*adc1_init2();
        adc1_value=ADC1_GetConversionValue();
        delay(250);
        adc1_init3();
        adc1_value=ADC1_GetConversionValue();
        delay_10us(250);*/



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本一区精品 | 国产羞羞视频在线观看 | 国产精品色哟哟网站 | 久久精品一区 | 亚洲激情av| 精品成人一区二区 | 日韩免费福利视频 | 国产一区二区三区高清 | 拍真实国产伦偷精品 | 国产精品久久久久一区二区 | 欧美日韩高清一区二区三区 | 天天操天天干天天透 | 欧美国产日韩在线观看 | 亚洲av毛片 | 成人伊人 | 国产精品久久av | 欧美一级在线观看 | 久久综合色综合 | 精品视频一区在线 | 亚洲一区二区在线视频 | 日韩欧美一区二区三区在线播放 | 精品成人在线视频 | 日本一二三区高清 | 国产色视频网站 | 国产高清在线 | 欧美精品一区免费 | 亚洲免费高清 | 国产高清精品一区二区三区 | 国产精品成人一区 | 成人av一区 | 国产视频在线观看一区二区三区 | 在线播放中文字幕 | 色精品| 亚洲视频网 | 欧美 中文字幕 | 午夜不卡一区二区 | 日韩欧美中文字幕在线观看 | 国产一级特黄视频 | 色爱综合 | 超黄毛片 | 中文字幕在线三区 |