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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

智能垃圾分類程序 采集6路傳感器或者開關量控制6個推桿電機打開對應垃圾桶翻蓋

[復制鏈接]
跳轉到指定樓層
樓主
ID:280979 發(fā)表于 2023-8-30 00:06 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式





單片機源程序如下:

【聲明】此程序僅用于學習與參考,引用請注明版權和作者信息!   
*********************************************************************/
#include "STC8FXX.h"
#include <intrins.H>
#define uchar unsigned char //宏定義字符型變量
#define uint  unsigned int        //宏定義整型變量

/********************************************************************
                            初始定義
*********************************************************************/
uchar keycnt=0;//按下次數值
uint tcnt=0; //鍵值判斷
uint sec1=0;
uint sec2=0;
uint sec3=0;
uint sec4=0;
uint sec5=0;
uint sec6=0;
bit jsbz1=0;
bit jsbz2=0;
bit jsbz3=0;
bit jsbz4=0;
bit jsbz5=0;
bit jsbz6=0;
bit ysbz1=0;//計時標志
bit flag;
bit bz1=0;
bit bz2=0;
bit bz3=0;
bit bz4=0;
bit bz5=0;
bit bz6=0;
uint bjz=0;//設置報警值
uint bjz1=0;//設置報警值
//sfr WDT_CONTR=0XC1;                    //看門狗設置寄存器

uchar tcnt1=0;//定時器計時
uchar ysec1=0;
bit ykjsbz=0;//遙控計時標志
bit ykbz1=0;//遙控按鍵1標志
bit ykbz2=0;//遙控按鍵2標志
bit ykbz3=0;//遙控按鍵3標志
bit ykbz4=0;//遙控按鍵4標志
bit ykbz5=0;//遙控按鍵5標志
bit ykbz6=0;//遙控按鍵6標志
bit ykbz7=0;//遙控按鍵7標志
bit ykbz8=0;//遙控按鍵8標志
bit ykbz9=0;//遙控按鍵9標志
bit ykbz10=0;//遙控按鍵10標志
bit ykbz11=0;//遙控按鍵11標志
bit ykbz12=0;//遙控按鍵12標志

/********************************************************************
                            I/O定義
*********************************************************************/
sbit OUT1=P4^2;         //繼電器輸出控制端
sbit OUT2=P4^1;         //繼電器輸出控制端
sbit OUT3=P3^7;         //繼電器輸出控制端
sbit OUT4=P3^6;         //繼電器輸出控制端
sbit OUT5=P3^5;         //繼電器輸出控制端
sbit OUT6=P3^4;         //繼電器輸出控制端
sbit OUT7=P3^3;         //繼電器輸出控制端
sbit OUT8=P3^2;         //繼電器輸出控制端
sbit OUT9=P4^7;         //繼電器輸出控制端
sbit OUT10=P4^6;         //繼電器輸出控制端
sbit OUT11=P4^5;         //繼電器輸出控制端
sbit OUT12=P1^7;         //繼電器輸出控制端

sbit IN1=P1^2;         //輸入端
sbit IN2=P1^3;         //輸入端
sbit IN3=P1^4;         //輸入端
sbit IN4=P4^4;         //輸入端
sbit IN5=P1^5;         //輸入端
sbit IN6=P1^6;         //輸入端

/*遙控使用0^7,P0^6,P0^5,P0^4;   */
sbit YK0=P0^7;                  
sbit YK1=P0^6;
sbit YK2=P0^5;
sbit YK3=P0^4;
/********************************************************************
                          延時函數
*********************************************************************/
void delay(uchar t)//延時程序
{
uchar m,n,s;
for(m=t;m>0;m--)
for(n=2;n>0;n--)
for(s=248;s>0;s--);
}
/********************************************************************
                          定時器T0初始化
*********************************************************************/
void timer0_init()
{
    TMOD=0x02; //定時器工作在方式2
        TH0=0x06; //對TH0 TL0 賦值
        TL0=0x06;
        TR0=1; //開始定時
        ET0=1;
        EA=1;
}
/********************************************************************
                            時間設置函數
*********************************************************************/
void key()
{
//P2=0XFF;
//bjz1=~P2;
//bjz=bjz1*10;
//bjz=100;
if((P20==1)&&(P21==1)&&(P22==1)&&(P23==1)){bjz=20;}//2秒   15
if((P20==0)&&(P21==1)&&(P22==1)&&(P23==1)){bjz=40;}//3秒   14
if((P20==1)&&(P21==0)&&(P22==1)&&(P23==1)){bjz=60;}//6秒   13
if((P20==0)&&(P21==0)&&(P22==1)&&(P23==1)){bjz=80;}//8秒   12
if((P20==1)&&(P21==1)&&(P22==0)&&(P23==1)){bjz=100;}//10秒 11
if((P20==0)&&(P21==1)&&(P22==0)&&(P23==1)){bjz=120;}//12秒 10
if((P20==1)&&(P21==0)&&(P22==0)&&(P23==1)){bjz=140;}//14秒 9
if((P20==0)&&(P21==0)&&(P22==0)&&(P23==1)){bjz=160;}//16秒 8
if((P20==1)&&(P21==1)&&(P22==1)&&(P23==0)){bjz=180;}//18秒 7
if((P20==0)&&(P21==1)&&(P22==1)&&(P23==0)){bjz=200;}//20秒 6
if((P20==1)&&(P21==0)&&(P22==1)&&(P23==0)){bjz=220;}//22秒 4
if((P20==0)&&(P21==0)&&(P22==1)&&(P23==0)){bjz=240;}//24秒 4
if((P20==1)&&(P21==1)&&(P22==0)&&(P23==0)){bjz=260;}//26秒 3
if((P20==0)&&(P21==1)&&(P22==0)&&(P23==0)){bjz=280;}//28秒 2
if((P20==1)&&(P21==0)&&(P22==0)&&(P23==0)){bjz=300;}//30秒 1
if((P20==0)&&(P21==0)&&(P22==0)&&(P23==0)){bjz=320;}//32秒 0
}

/********************************************************************
                            遙控函數
*********************************************************************/
void KEY_YK()
{


if((YK0==1)&&(YK1==0)&&(YK2==0)&&(YK3==0)){delay(3);if((YK0==1)&&(YK1==0)&&(YK2==0)&&(YK3==0)){jsbz1=0;sec1=0;ysec1=0;tcnt1=0;if(ykbz1==0){OUT1=!OUT1;OUT2=1;}ykbz1=1;ykjsbz=0;}}//1
if((YK0==0)&&(YK1==1)&&(YK2==0)&&(YK3==0)){delay(3);if((YK0==0)&&(YK1==1)&&(YK2==0)&&(YK3==0)){jsbz1=0;sec1=0;ysec1=0;tcnt1=0;if(ykbz2==0){OUT1=1;OUT2=!OUT2;}ykbz2=1;ykjsbz=0;}}//2
if((YK0==1)&&(YK1==1)&&(YK2==0)&&(YK3==0)){delay(3);if((YK0==1)&&(YK1==1)&&(YK2==0)&&(YK3==0)){jsbz2=0;sec2=0;ysec1=0;tcnt1=0;if(ykbz3==0){OUT3=!OUT3;OUT4=1;}ykbz3=1;ykjsbz=0;}}//3
if((YK0==0)&&(YK1==0)&&(YK2==1)&&(YK3==0)){delay(3);if((YK0==0)&&(YK1==0)&&(YK2==1)&&(YK3==0)){jsbz2=0;sec2=0;ysec1=0;tcnt1=0;if(ykbz4==0){OUT3=1;OUT4=!OUT4;}ykbz4=1;ykjsbz=0;}}//4
if((YK0==1)&&(YK1==0)&&(YK2==1)&&(YK3==0)){delay(3);if((YK0==1)&&(YK1==0)&&(YK2==1)&&(YK3==0)){jsbz3=0;sec3=0;ysec1=0;tcnt1=0;if(ykbz5==0){OUT5=!OUT5;OUT6=1;}ykbz5=1;ykjsbz=0;}}//5
if((YK0==0)&&(YK1==1)&&(YK2==1)&&(YK3==0)){delay(3);if((YK0==0)&&(YK1==1)&&(YK2==1)&&(YK3==0)){jsbz3=0;sec3=0;ysec1=0;tcnt1=0;if(ykbz6==0){OUT5=1;OUT6=!OUT6;}ykbz6=1;ykjsbz=0;}}//6

if((YK0==1)&&(YK1==1)&&(YK2==1)&&(YK3==0)){delay(3);if((YK0==1)&&(YK1==1)&&(YK2==1)&&(YK3==0)){jsbz4=0;sec4=0;ysec1=0;tcnt1=0;if(ykbz7==0){OUT7=!OUT7;OUT8=1;}ykbz7=1;ykjsbz=0;}}//7
if((YK0==0)&&(YK1==0)&&(YK2==0)&&(YK3==1)){delay(3);if((YK0==0)&&(YK1==0)&&(YK2==0)&&(YK3==1)){jsbz4=0;sec4=0;ysec1=0;tcnt1=0;if(ykbz8==0){OUT7=1;OUT8=!OUT8;}ykbz8=1;ykjsbz=0;}}//8
if((YK0==1)&&(YK1==0)&&(YK2==0)&&(YK3==1)){delay(3);if((YK0==1)&&(YK1==0)&&(YK2==0)&&(YK3==1)){jsbz5=0;sec5=0;ysec1=0;tcnt1=0;if(ykbz9==0){OUT9=!OUT9;OUT10=1;}ykbz9=1;ykjsbz=0;}}//9
if((YK0==0)&&(YK1==1)&&(YK2==0)&&(YK3==1)){delay(3);if((YK0==0)&&(YK1==1)&&(YK2==0)&&(YK3==1)){jsbz5=0;sec5=0;ysec1=0;tcnt1=0;if(ykbz10==0){OUT9=1;OUT10=!OUT10;}ykbz10=1;ykjsbz=0;}}//10
if((YK0==1)&&(YK1==1)&&(YK2==0)&&(YK3==1)){delay(3);if((YK0==1)&&(YK1==1)&&(YK2==0)&&(YK3==1)){jsbz6=0;sec6=0;ysec1=0;tcnt1=0;if(ykbz11==0){OUT11=!OUT11;OUT12=1;}ykbz11=1;ykjsbz=0;}}//11
if((YK0==0)&&(YK1==0)&&(YK2==1)&&(YK3==1)){delay(3);if((YK0==0)&&(YK1==0)&&(YK2==1)&&(YK3==1)){jsbz6=0;sec6=0;ysec1=0;tcnt1=0;if(ykbz12==0){OUT11=1;OUT12=!OUT12;}ykbz12=1;ykjsbz=0;}}//12

if((YK0==0)&&(YK1==0)&&(YK2==0)&&(YK3==0))
{
delay(100);
if((YK0==0)&&(YK1==0)&&(YK2==0)&&(YK3==0)){ykjsbz=1;}//按鍵談起
}

}
/********************************************************************
                            主函數
*********************************************************************/
void main()
{  
P0M1 = 0;   P0M0 = 0;   //設置為準雙向口
P1M1 = 0;   P1M0 = 0;   //設置為準雙向口
P2M1 = 0;   P2M0 = 0;   //設置為準雙向口
P3M1 = 0;   P3M0 = 0;   //設置為準雙向口
P4M1 = 0;   P4M0 = 0;   //設置為準雙向口
P5M1 = 0;   P5M0 = 0;   //設置為準雙向口
P6M1 = 0;   P6M0 = 0;   //設置為準雙向口
P7M1 = 0;   P7M0 = 0;   //設置為準雙向口
OUT1=1;
OUT2=1;
OUT3=1;
OUT4=1;
OUT5=1;
OUT6=1;
OUT7=1;
OUT8=1;
OUT9=1;
OUT10=1;
OUT11=1;
OUT12=1;
timer0_init();

while(1)
{
key();
KEY_YK();
if((IN1==0)&&(bz1==0)){delay(3);if(IN1==0){jsbz1=0;sec1=0;OUT1=0;OUT2=1;bz1=1;}}  if((IN1==1)&&(bz1==1)){delay(10);if(IN1==1){if(IN1==1){jsbz1=1;sec1=0;bz1=0;}}}
if((IN2==0)&&(bz2==0)){delay(3);if(IN2==0){jsbz2=0;sec2=0;OUT3=0;OUT4=1;bz2=1;}}  if((IN2==1)&&(bz2==1)){delay(10);if(IN2==1){if(IN2==1){jsbz2=1;sec2=0;bz2=0;}}}
if((IN3==0)&&(bz3==0)){delay(3);if(IN3==0){jsbz3=0;sec3=0;OUT5=0;OUT6=1;bz3=1;}}  if((IN3==1)&&(bz3==1)){delay(10);if(IN3==1){if(IN3==1){jsbz3=1;sec3=0;bz3=0;}}}
if((IN4==0)&&(bz4==0)){delay(3);if(IN4==0){jsbz4=0;sec4=0;OUT7=0;OUT8=1;bz4=1;}}  if((IN4==1)&&(bz4==1)){delay(10);if(IN4==1){if(IN4==1){jsbz4=1;sec4=0;bz4=0;}}}
if((IN5==0)&&(bz5==0)){delay(3);if(IN5==0){jsbz5=0;sec5=0;OUT9=0;OUT10=1;bz5=1;}} if((IN5==1)&&(bz5==1)){delay(10);if(IN5==1){if(IN5==1){jsbz5=1;sec5=0;bz5=0;}}}
if((IN6==0)&&(bz6==0)){delay(3);if(IN6==0){jsbz6=0;sec6=0;OUT11=0;OUT12=1;bz6=1;}}if((IN6==1)&&(bz6==1)){delay(10);if(IN6==1){if(IN6==1){jsbz6=1;sec6=0;bz6=0;}}}

        
}
}

/********************************************************************
                            定時中斷服務函數
*********************************************************************/
void t0(void) interrupt 1 using 0 //定時中斷服務函數
{
tcnt++; //每過250ust tcnt 加一
tcnt1++; //每過250ust tcnt 加一
if(tcnt1==10) //計滿400 次(1/10 秒)時
{
tcnt1=0; //重新再計
if(ykjsbz==1)
{
ysec1++;
if(ysec1==50){ykbz1=0;ykbz2=0;ykbz3=0;ykbz4=0;ykbz5=0;ykbz6=0;ykbz7=0;ykbz8=0;ykbz9=0;ykbz10=0;ykbz11=0;ykbz12=0;ykjsbz=0;ysec1=0;}
}

}
if(tcnt==400) //計滿400 次(1/10 秒)時
{
tcnt=0; //重新再計
if(jsbz1==1){sec1++;if(sec1>=bjz){OUT1=1;OUT2=0;}if(sec1>=600){OUT1=1;OUT2=1;sec1=0;jsbz1=0;}}
if(jsbz2==1){sec2++;if(sec2>=bjz){OUT3=1;OUT4=0;}if(sec2>=600){OUT3=1;OUT4=1;sec2=0;jsbz2=0;}}
if(jsbz3==1){sec3++;if(sec3>=bjz){OUT5=1;OUT6=0;}if(sec3>=600){OUT5=1;OUT6=1;sec3=0;jsbz3=0;}}
if(jsbz4==1){sec4++;if(sec4>=bjz){OUT7=1;OUT8=0;}if(sec4>=600){OUT7=1;OUT8=1;sec4=0;jsbz4=0;}}
if(jsbz5==1){sec5++;if(sec5>=bjz){OUT9=1;OUT10=0;}if(sec5>=600){OUT9=1;OUT10=1;sec5=0;jsbz5=0;}}
if(jsbz6==1){sec6++;if(sec6>=bjz){OUT11=1;OUT12=0;}if(sec6>=600){OUT11=1;OUT12=1;sec6=0;jsbz6=0;}}
}
}

/********************************************************************
                              結束
*********************************************************************/

原理圖: 無
仿真: 無
代碼: keil.rar (54.56 KB, 下載次數: 15)
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: av中文字幕在线 | 久久久国产精品视频 | 国产精品亚洲一区二区三区在线 | 日韩欧美专区 | 奇米四色影视 | 亚洲精品久久久久久国产精华液 | 亚洲高清免费 | 伊人精品视频 | 午夜视频在线 | 国产精品成人69xxx免费视频 | 国产小视频在线 | 欧美日韩国产精品激情在线播放 | 操久久久 | 在线欧美一区二区 | 亚洲精品一区av在线播放 | 亚洲国产精品视频 | 亚洲精品综合 | 国产黄色在线观看 | 日韩网 | 中文字幕在线视频精品 | 色婷婷综合成人av | 作爱视频免费观看 | 久久大陆 | 91免费看片| 国产传媒| 日本天堂一区二区 | 91精品国产91久久综合桃花 | 欧美日韩国产免费 | 亚洲乱码国产乱码精品精98午夜 | 黑人巨大精品欧美一区二区免费 | 日韩成人在线观看 | 成人一区二 | 国产精品免费看 | 一级黄色片免费 | 国产高清一区二区三区 | 黄色av网站在线观看 | 一区二区av | 日本精品视频一区二区 | 日韩电影免费观看中文字幕 | 欧美精品乱码99久久影院 | 在线中文字幕av |