找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

智能家居系統(tǒng) Proteus仿真設(shè)計代碼不能運行,求大神指導(dǎo)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:596401 發(fā)表于 2019-8-11 22:05 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
問題還很多,大家可以繼續(xù)完善:
個人為電子競賽所做的《智能家居系統(tǒng)Proteus仿真設(shè)計》,現(xiàn)分享給大家,共同學(xué)習(xí)學(xué)習(xí)!
整個設(shè)計由Proteus仿真完成。智能家居系統(tǒng)有以下幾個模塊組成:
(1)中央處理器模塊
(2)窗簾控制系統(tǒng)
(3)溫度監(jiān)控系統(tǒng)
(4)門禁密碼系統(tǒng)
(5)居室燈光控制系統(tǒng)
(6)居室照明系統(tǒng)
(7)煙霧火災(zāi)報警系統(tǒng)
(8)室內(nèi)中央顯示系統(tǒng)
(9)按鍵設(shè)置系統(tǒng)
(10)門禁開關(guān)系統(tǒng)
(11)網(wǎng)絡(luò)通訊系統(tǒng)

原理圖為:





程序部分:



部分代碼如下:
#include "DELAY.H"
#include "LATCH.H"
#include "DISPLAY.H"
#include "LCD1602.H"
#include "KEYSCAN.H"
#include "24C02.H"
#include "PCF8591.H"
#include "DS18B20.H"
#include "TIMER.H"


#define LedBright 0x00                 //明亮
#define LedNormal 0x64                 //一般
#define LedSleep  0xc8                 //睡眠
#define ledClose  0xff                 //關(guān)閉

uchar KeyNum;
uchar LED_flag;
uchar LED_DIS_1;
uint LightRes;
uchar code LED_Light_Mode[]="Choose ledlight mode";
uchar code LEDNum[] = "1  2  3";
uchar code LED_Control_Mode[]="Choose ledcontrol mode";
uchar code LED_Control_Follow[]="1:Hand     2:Auto";
enum {Hand,Auto} Control_Follow = Hand;
uchar code DisProgram[]="Mode      Status";
uchar code LED_Dis_One[]="LED       LedBright";
uchar code LED_Dis_Two[]="LED       LedNormal";
uchar code LED_Dis_Three[]="LED      LedSleep";
uchar Led_i = 0;
uchar Led_j = 0;
uchar LedOutputValue;
uchar Timer0Num;
void main()
{
        Init_TIME(0,0);
        ChooseChannel(0x01);
        Init_LCD();
        while(1)
        {
                KeyNum = KeyScan();
                if(KeyNum != 0xff)
                {
                        if(KeyNum == 4) {LED_flag = 1; Led_i++; LedOutputValue =  LedNormal;}
                        if(Led_i == 2)  {LED_flag = 0; Led_i = 0; Led_j = 0; LED_DIS_1 = 0;}

                        if(LED_flag && KeyNum == 1 )        {Led_j++; if(Led_j == 1)LedOutputValue =  LedBright;  LED_DIS_1 = 1;}
                        if(LED_flag && KeyNum == 2 )        {Led_j++; if(Led_j == 1)LedOutputValue =  LedNormal;  LED_DIS_1 = 1;}
                        if(LED_flag && KeyNum == 3 )        {Led_j++; if(Led_j == 1)LedOutputValue =  LedSleep;   LED_DIS_1 = 1;}

                }
                if(LED_flag && (LED_DIS_1 == 0))
                {
                        LCDPosition(1,LED_Light_Mode);
                        LCDPosition(2,LEDNum);        
                }
                if(LED_DIS_1 && (Led_j==1))
                {
                        LCDPosition(1,LED_Control_Mode);
                        LCDPosition(2,LED_Control_Follow);                                       
                }
                if((KeyNum == 1)&& (Led_j==2))          Control_Follow = Hand;
                if((KeyNum == 2)&& (Led_j==2))          Control_Follow = Auto;

//                if(Control_Follow == Hand) DA_Sent(LedOutputValue);
                if(Control_Follow == Auto)
                {
                        TR0 = 1;
                        if(LightRes > 180)         LedOutputValue = LedSleep;
                        else if(LightRes > 100 && LightRes < 180 )        LedOutputValue = LedNormal;
                        else          LedOutputValue = LedBright;
                }

                if(Led_j==2)
                {
                        LCDPosition(1,DisProgram);
                        switch(LedOutputValue)
                        {
                                case LedBright: LCDPosition(2,LED_Dis_One);            break;
                                case LedNormal:        LCDPosition(2,LED_Dis_Two);            break;
                                case LedSleep:        LCDPosition(2,LED_Dis_Three);        break;

                        }        
                }
                DA_Sent(LedOutputValue);
//                LCDPosition(1,LED_Light_Mode);        
        }               
}
void Timer0() interrupt 1
{
        TH0 = (65536-50000)/256;
        TL0 = (65536 - 50000)%256;
        Timer0Num++;
        if(Timer0Num == 20)
        {
                Timer0Num = 0;
                LightRes = AD_Receive();         
        }
}

仿真文件和程序見附件:


不能運行,仿真沒有反應(yīng),求大神指導(dǎo): 仿真程序有錯誤,求大神幫助.7z (63.72 KB, 下載次數(shù): 285)


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

使用道具 舉報

來自 2#
ID:549815 發(fā)表于 2019-8-12 18:52 | 只看該作者
仿真無法運行 不知為何
回復(fù)

使用道具 舉報

來自 3#
ID:603234 發(fā)表于 2019-8-24 18:39 | 只看該作者
內(nèi)容詳實 但非常遺憾 無法仿真運行?
回復(fù)

使用道具 舉報

來自 4#
ID:595055 發(fā)表于 2019-8-26 22:18 | 只看該作者
樓主程序是不是有點問題,在proteus中仿真按程序邏輯操作,不對
回復(fù)

使用道具 舉報

5#
ID:385637 發(fā)表于 2019-8-12 09:58 | 只看該作者
好東西呀,謝謝分享
回復(fù)

使用道具 舉報

6#
ID:596378 發(fā)表于 2019-8-12 10:27 | 只看該作者
謝謝樓主分享
回復(fù)

使用道具 舉報

7#
ID:135835 發(fā)表于 2019-8-12 13:26 | 只看該作者
多謝樓主提供,學(xué)習(xí)了。
回復(fù)

使用道具 舉報

8#
ID:599361 發(fā)表于 2019-8-12 14:49 | 只看該作者
贊一個
回復(fù)

使用道具 舉報

9#
ID:549815 發(fā)表于 2019-8-12 16:10 | 只看該作者
感謝樓主,樓主是哪個省份的
回復(fù)

使用道具 舉報

10#
ID:77561 發(fā)表于 2020-2-13 22:49 | 只看該作者
謝謝,很好的資料
回復(fù)

使用道具 舉報

11#
ID:630903 發(fā)表于 2020-4-20 23:55 | 只看該作者
very good!
回復(fù)

使用道具 舉報

12#
ID:630903 發(fā)表于 2020-4-20 23:56 | 只看該作者

謝謝,很好的資料
回復(fù)

使用道具 舉報

13#
ID:417925 發(fā)表于 2020-6-13 13:02 | 只看該作者
仿真不了
回復(fù)

使用道具 舉報

14#
ID:318131 發(fā)表于 2020-7-22 16:37 | 只看該作者
各位大佬有解決仿真不能運行的方法嗎
回復(fù)

使用道具 舉報

15#
ID:318131 發(fā)表于 2020-7-22 16:38 | 只看該作者
浪子天涯 發(fā)表于 2019-8-26 22:18
樓主程序是不是有點問題,在proteus中仿真按程序邏輯操作,不對

你好,有能解決這個仿真不能運行的方法嗎
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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