欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2090|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

單片機智能窗簾程序在proteus中運行后,顯示屏的第二行最前面的4什么意思啊?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:846076 發(fā)表于 2020-11-19 21:22 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
求大神幫忙指導(dǎo)下.不懂問他,結(jié)果被罵了
這個程序在proteus中運行后,顯示屏的第二行最前面的4什么意思啊?有什么作用嗎?是一開始就設(shè)置好開關(guān)窗簾的時間和光強嗎?我按照程序的手動和自動設(shè)置了,怎么沒有反應(yīng)?(在手動開關(guān)窗簾的那部分代碼,是怎么體現(xiàn)開關(guān)的?步進(jìn)電機沒反應(yīng)啊,是需要按哪個鍵嗎?自動模式下的光強怎么設(shè)置啊?不是預(yù)設(shè)值4嗎?在怎么設(shè)置光強啊?)【手動開關(guān)窗簾、智能窗簾處理函數(shù)】這的程序沒看懂,求指教 (附件和圖片怎么發(fā)不了啊?)另,這個程序是在proteus中仿真的,沒有實物

單片機源程序如下:
#include <reg52.h>     
#define uchar unsigned char
#define uint  unsigned int     
bit flag_200ms ;
sbit beep = P1^7;     //蜂鳴器IO口定義
sbit LED=P2^7;        //燈光模塊
sbit yw=P2^6;         //煙霧模塊
bit flag_relay_en;   
uchar flag_kaig_moshi=0;//開關(guān)模式
bit flag_zd_sd;          //自動 手動 模式

bit flag_lj_en;         //按鍵連加使能
bit flag_lj_3_en;     //按鍵連3次連加后使能 加的數(shù)就越大了
uchar key_time,flag_value;      //用做連加的中間變量
bit key_500ms  ;
uchar menu_shudu = 20;  //用來控制連加的速度
uchar value,i;

uchar k_shi=1,k_fen=2;    //開窗簾時間
uchar g_shi=3,g_fen=4;            //關(guān)窗簾時間

uint t_high;                  //高溫報警值

sbit DO=P3^7;        //DO定義為P1口的第4位腳,連接ADC0832DO腳
sbit SCL=P3^6;        //SCL定義為P1口的第3位腳,連接ADC0832SCL腳
sbit CS=P3^5;        //CS定義為P1口的第4位腳,連接ADC0832CS腳
uchar guanxian,guanxian_set = 4;     //光線
void write_eepom();


#include "eepom52.h"
#include "key.h"
#include "ds1302.h"
#include "lcd1602.h"
#include "18b20_2lu.h"
#include "bujindianji.h"

sbit key_jia = P3^1;   //加
sbit key_jie = P3^2;   //減


/*************寫單片機內(nèi)部EEPOM*************/
void write_eepom()
{   
    SectorErase(0x2000);
    byte_write(0x2000,flag_zd_sd);
    byte_write(0x2001,k_shi%256);
    byte_write(0x2002,k_fen%256);
    byte_write(0x2003,g_shi%256);
    byte_write(0x2004,g_fen%256);
    byte_write(0x2005,t_high%256);
    byte_write(0x2009,guanxian_set%256);   
    byte_write(0x2010,bjdj_value%256);   
    byte_write(0x2050,a_a);   
}

/*************讀單片機內(nèi)部EEPOM*************/
void read_eepom()
{
    flag_zd_sd = byte_read(0x2000);   
    k_shi  = byte_read(0x2001);   
    k_fen  = byte_read(0x2002);   
    g_shi  = byte_read(0x2003);   
    g_fen  = byte_read(0x2004);   
    t_high  = byte_read(0x2005);   
    guanxian_set  = byte_read(0x2009);   
    bjdj_value  = byte_read(0x2010);   
    a_a = byte_read(0x2050);
}   

/*************初始化EEPROM************/
void init_eepom()    //初始化EEPROM
{
    read_eepom();
     if(a_a == 0xff)   
    {
        flag_zd_sd = 1;     //模式設(shè)置
        a_a = 1;
        k_shi=8;
        k_fen=2;            //開
        g_shi=3;
        g_fen=4;            //關(guān)
        t_high  = 35;   
        guanxian_set = 4;
        bjdj_value  = 0;
        write_eepom();        
    }
}
#include "menu.h"

/***************讀數(shù)模轉(zhuǎn)換數(shù)據(jù)****************/   
//請先了解ADC0832模數(shù)轉(zhuǎn)換的串行協(xié)議,再來讀本函數(shù),主要是對應(yīng)時序圖來理解,本函數(shù)是模擬0832的串行協(xié)議進(jìn)行的
                        //  1  0  0 通道
                        //  1  1  1 通道
unsigned char ad0832read(bit SGL,bit ODD)
{
    unsigned char i=0,value=0,value1=0;        
        SCL=0;
        DO=1;
        CS=0;        //開始
        SCL=1;        //第一個上升沿   
        SCL=0;
        DO=SGL;
        SCL=1;      //第二個上升沿
        SCL=0;
        DO=ODD;
        SCL=1;        //第三個上升沿
        SCL=0;        //第三個下降沿
        DO=1;
        for(i=0;i<8;i++)
        {
            SCL=1;
            SCL=0; //開始從第四個下降沿接收數(shù)據(jù)
            value<<=1;
            if(DO)
                value++;                        
        }
        for(i=0;i<8;i++)
        {            //接收校驗數(shù)據(jù)
            value1>>=1;
            if(DO)
                value1+=0x80;
            SCL=1;
            SCL=0;
        }
        CS=1;
        SCL=1;   
        if(value==value1)        //與校驗數(shù)據(jù)比較,正確就返回數(shù)據(jù),否則返回0   
            return value;
    return 0;
}



/******************1ms 延時函數(shù)*******************/
void delay_1ms(uint q)
{
    uint i,j;
    for(i=0;i<q;i++)
        for(j=0;j<120;j++);
}

/*************時鐘的顯示***************/
void init_1602_ds1302()
{
    write_sfm2_ds1302(2,4,nian);   
    write_sfm2_ds1302(2,7,yue);   
    write_sfm2_ds1302(2,10,ri);   
    write_sfm2_ds1302(1,4,shi);   
    write_sfm2_ds1302(1,7,fen);   
    write_sfm2_ds1302(1,10,miao);
    write_sfm1(1,14,week);        
}                                       

/*************定時器0初始化程序***************/
void init_time0()      
{
    EA   = 1;           //開總中斷
    TMOD = 0X01;      //定時器0、工作方式1
    ET0  = 1;          //開定時器0中斷
    TR0  = 1;          //允許定時器0定時
}

/*************手動開關(guān)窗簾***************/
void shoudong_kaiguan()      //手動開關(guān)窗簾
{
    if(flag_zd_sd == 0)      //手動模式
    {
        if(guanxian <= guanxian_set)
             LED=0;
            else
             LED=1;
        if(menu_1 == 0)
        {
            if(flag_kaig_moshi == 0)
            {
                if(key_can == 2)
                    flag_z_f = 1;     //手動開窗
                if(key_can == 3)
                    flag_z_f = 2;     //手動關(guān)窗
                if(flag_lj_en == 0)
                    flag_z_f = 0;
            }
        }
    }
    if(flag_kaig_moshi == 0)
    {
   
        if(flag_zd_sd == 1)      //自動模式
        {
            
            if(guanxian <= guanxian_set)
                flag_z_f = 2;     //手動開窗
            
               
            else
                flag_z_f = 1;     //手動關(guān)窗
               
        
        }
    }
}

                                                            
/*********************智能窗簾處理函數(shù)***********************/
void zinengchuanglian_dis()      //智能窗簾處理函數(shù)
{
    if((miao == 0) && (fen == k_fen) && (shi == k_shi))      //定時開窗
    {
        flag_z_f = 2;    //關(guān)窗
        beep=0;              //鬧鐘到
        flag_kaig_moshi = 1;
    }
    if((miao == 0) && (fen == g_fen) && (shi == g_shi))      //定時關(guān)窗
    {
        flag_z_f = 1;     //開窗   
        flag_kaig_moshi = 2;
    }

}


void main()
{   
    init_eepom();         //初始化EEPROM
    init_1602();         //lcd1602初始化
    init_1602_dis_csf(); //lcd1602初始化顯示
    init_ds1302_io();     //初始化ds1302Io
    init_time0();         //初始化定時器
    menu_1_break();         //菜單初始界面
    init_ds1302();         //ds1302初始化
    temperature1 = read1_temp();  //讀溫度1
    delay_1ms(650);
    while(1)
    {
        key();             //按鍵程序
        if(key_can < 10)
        {
            key_with();   
        }
        shoudong_kaiguan();      //手動開關(guān)窗簾
        if(flag_200ms == 1)
        {        
            flag_200ms = 0;
            temperature1 = read1_temp();  //讀溫度1    環(huán)境溫度
            if(temperature1 >= 99)
                temperature1 = 99;
            zinengchuanglian_dis();      //智能窗簾處理函數(shù)
            guanxian = ad0832read(1,0) * 9.0 / 255;
            if((menu_1 == 0))
            {
                read_time();          //讀時間
                init_1602_ds1302();   //顯示時鐘
                write_sfm_18b20(2,13,temperature1);    //顯示溫度
                write_sfm1(2,0,guanxian);    //顯示溫度
                      if(guanxian <= guanxian_set)
             LED=0;
            else
             LED=1;
                if((temperature1 >= t_high)||(yw==0))
                    beep =    ~beep;   //蜂鳴器溫度煙霧報警
                else
                    beep = 1;        
            }
        }
        bujindj();     //步進(jìn)電機函數(shù)
    }
}

void time0() interrupt 1
{            
    static uchar value;
    TH0 = 0X3C;
    TL0 = 0XB0;       //50ms
    value ++;
    if(value >= 4)             //200ms
    {
        value = 0;
        flag_200ms = 1;
    }
    if(flag_lj_en == 1)       //按下按鍵使能
    {
        key_time ++;
        if(key_time >= menu_shudu) //500ms
        {
            key_time = 0;
            key_500ms = 1; //500ms
            flag_value ++;
            if(flag_value > 3)
            {
                flag_value = 10;
                flag_lj_3_en = 1; //3次后1.5秒后連加大些
            }                        
        }
    }
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:846076 發(fā)表于 2020-11-19 21:25 | 只看該作者
智能窗簾
回復(fù)

使用道具 舉報

板凳
ID:420836 發(fā)表于 2020-11-20 08:47 | 只看該作者
你有模擬圖片嗎?
回復(fù)

使用道具 舉報

地板
ID:739545 發(fā)表于 2020-11-20 13:26 | 只看該作者
顯示的東西都沒有,代碼應(yīng)該不是自己寫的。這種浪費時間的事,沒人做,還是找寫代碼的人吧
回復(fù)

使用道具 舉報

5#
ID:846076 發(fā)表于 2020-11-20 21:55 來自觸屏版 | 只看該作者
lovezjf234 發(fā)表于 2020-11-20 13:26
顯示的東西都沒有,代碼應(yīng)該不是自己寫的。這種浪費時間的事,沒人做,還是找寫代碼的人吧

找了,不給講,把我拉黑了
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表