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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4233|回復: 5
收起左側

求大神指點 紅色部分怎么改啊 p.c(35): error C129: missing ';' before '...

[復制鏈接]
ID:187110 發表于 2017-4-7 14:21 | 顯示全部樓層 |閱讀模式
#include <reg52.h>          //調用單片機頭文件
#define uchar unsigned char  //無符號字符型 宏定義  變量范圍0~255
#define uint  unsigned int  //無符號整型 宏定義 變量范圍0~65535  
#include <intrins.h>              //數碼管段選定義 0     1    2    3    4    5 6  7  8 9
uchar code smg_du[]={0x14,0x27,0x1c,0x45,0x27,0x81,0x84,0x57,0x24,0x05, //        A B  C   D    E   F 不顯示         
0x06,0xa4,0x9c,0x64,0x8c,0x8e,0xff};  //斷碼  //數碼管位選定義
sbit smg_we1 = P2^0;     //數碼管位選定義
sbit smg_we2 = P2^2;
sbit smg_we3 = P2^4;
sbit smg_we4 = P2^6;
uchar dis_smg[8] = {0};
sbit SCL=P1^2;  //SCL定義為P1口的第3位腳,連接ADC0832SCL腳
sbit DO=P1^3;  //DO定義為P1口的第4位腳,連接ADC0832DO腳
sbit CS=P1^0;  //CS定義為P1口的第4位腳,連接ADC0832CS腳  
uchar shidu;     //濕度等級
uchar s_high = 70,s_low = 25; //濕度報警參數  
sbit dianji = P3^5;     //電機IO定義
void delay_1ms(uint q)
{
       uint i,j;
       for(i=0;i<q;i++)  
       for(j=0;j<120;j++);
}
void smg_we_switch(uchar i)
{
    switch(i)  
  {   
case 0: smg_we1 = 0;  smg_we2 = 1; smg_we3 = 1;  smg_we4 = 1; break;  
case 1: smg_we1 = 1;  smg_we2 = 0; smg_we3 = 1;  smg_we4 = 1; break;  
case 2: smg_we1 = 1;  smg_we2 = 1; smg_we3 = 0;  smg_we4 = 1; break;   
case 3: smg_we1 = 1;  smg_we2 = 1; smg_we3 = 1;  smg_we4 = 0; break;
   }
}  
uchar flag_200ms
uchar key_can;   //按鍵值的變量
uchar menu_1;        //菜單設計的變量  
void display()
{
static uchar i;     
   i++;  
   if(i >= 4)   
   i = 0;   
   P0 = 0xff;    //消隱   
   smg_we_switch(i);   //位選
   P0 = dis_smg;   //段選         
   delay_1ms(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;     //第三個上升沿   
    DO=1;   
    for(i=0;i<8;i++)   
    {   
      SCL=1;   
      SCL=0; //開始從第四個下降沿接收數據   
      value<<=1;
        if(DO)     
         value++;         
}   
for(i=0;i<8;i++)   
{                   //接收校驗數據   
value1<<=1;   
if(DO)     
value1+=0x80;   
SCL=1;   
SCL=0;   
}   
CS=1;   
SCL=1;   
if(value==value1)    //與校驗數據比較,正確就返回數據,否則返回0   
     return value;  
return 0;
}
uchar key_can;  //按鍵值  
void key()  //獨立按鍵程序
{  
static uchar key_new;  
key_can = 20;                   //按鍵值還原  
P1 |= 0xf0;  
if((P1 & 0xf0) != 0xf0)  //按鍵按下  
{   
delay_1ms(1);       //按鍵消抖動   
if(((P1 & 0xf0) != 0xf0) && (key_new == 1))   
{               //確認是按鍵按下   
key_new = 0;   
switch(P1 & 0xf0)
{     
case 0xe0: key_can = 1; break;    //得到k2鍵值     
case 0xb0: key_can = 2; break;    //得到k3鍵值     
case 0x70: key_can = 3; break;    //得到k4鍵值   
}      
     }     
}  
else   
key_new = 1;
}
void key_with()
{  
if(menu_1 == 0)  
{   if(key_can == 3)   //手動打開電機   
dianji = 0;     //打開電機   
if(key_can == 2)   
dianji = 1;     //關閉電機  
}   
if(key_can == 1)  //設置鍵  
{   
menu_1 ++;   
if(menu_1 >= 3)   
{   
menu_1 = 0;   
}  
}  
if(menu_1 == 1)   //設置濕度上限
{   
if(key_can == 2)   
{   
s_high ++   //濕度上限值加1     
if(s_high > 99)     
s_high = 99;   
}   
if(key_can == 3)
{   
s_high --   //濕度上限值減1     
if(s_high <= s_low)     
s_high = s_low + 1   
}   
dis_smg[0] = smg_du[s_high % 10];            //取個位顯示   
dis_smg[1] = smg_du[s_high / 10 % 10];  //取十位顯示   
dis_smg[2] = 0xef;      
dis_smg[3] = 0x26;  //H  0010 0110   
}   
if(menu_1 == 2)   //設置濕度下限  
{  
if(key_can == 2)   
{   
s_low ++    //濕度下限值加1     
if(s_low >= s_high)     
s_low = s_high - 1;   
}   
if(key_can == 3)   
{   
s_low --;   //濕度下限值減1     
if(s_low <= 1)     
s_low = 1;   
}   
dis_smg[0] = smg_du[s_low % 10];            //取個位顯示   
dis_smg[1] = smg_du[s_low / 10 % 10];  //取十位顯示   
dis_smg[2] = 0xef;      
dis_smg[3] = 0xBC;  //L  
}  
}
void dianji_kongzi()
{  
static uchar value,value1;  
if(shidu <= s_low)  
{   
value ++;   
if(value >= 2)   
{   
value = 10;   
dianji = 0;       //打開電機   
}  
}  
else

  value = 0;  
if(shidu >= s_high)  
{   
value1 ++;   
if(value1 >= 2)   
{   
value1 = 10;   
dianji = 1;       //關機電機   
}  
}else   
value1 = 0;
}
void main()
{  
delay_1ms(100);  
P0 = P1 = P2 = P3 = 0xff;   //初始化IO口  
while(1)  
{   
key();     //獨立按鍵程序   
if(key_can < 10)   
{   
key_with();   //按鍵按下要執行的程序  
}
flag_200ms ++;   
if(flag_200ms >= 200)   
{      
flag_200ms = 0;      
P0 = 0xff;    //消隱     
if(menu_1 == 0)   
{     
shidu = ad0832read(1,0); //讀出濕度     
shidu = shidu * 99 / 255;
dis_smg[0] = 0xff;  //     
dis_smg[1] = smg_du[shidu % 10]; //取濕度的個位顯示     
dis_smg[2] = smg_du[shidu / 10 % 10]     //取濕度的十位顯示     
dis_smg[3] = 0XFF;
}   
dianji_kongzi();  //電機控制函數   
}   
display();   //數碼管顯示函數   
delay_1ms(1);  
}
}

回復

使用道具 舉報

ID:180800 發表于 2017-4-7 16:12 | 顯示全部樓層
uchar flag_200ms
uchar key_can;   //按鍵值的變量
uchar menu_1;        //菜單設計的變量  

提示很明顯了啊,uchar flag_200ms少個分號
回復

使用道具 舉報

ID:187110 發表于 2017-4-7 16:57 | 顯示全部樓層
但是加上后錯誤更多
回復

使用道具 舉報

ID:187110 發表于 2017-4-7 17:01 | 顯示全部樓層
tenacity2012 發表于 2017-4-7 16:12
uchar flag_200ms
uchar key_can;   //按鍵值的變量
uchar menu_1;        //菜單設計的變量  

但是加上后錯誤更多   求指點啊
回復

使用道具 舉報

ID:82765 發表于 2017-4-7 17:18 | 顯示全部樓層
提示: 作者被禁止或刪除 內容自動屏蔽
回復

使用道具 舉報

ID:187110 發表于 2017-4-7 17:29 | 顯示全部樓層
cjjcjj1 發表于 2017-4-7 17:18
1、少了分號
2、變量重復定義

沒重復定義啊   而且加了分號后 一堆錯誤
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 99久久精品免费看国产高清 | 综合久久99 | 精品免费国产一区二区三区 | 国产激情免费视频 | 黄在线免费观看 | 精品一区二区三区四区外站 | 日韩在线播放第一页 | 成人免费观看男女羞羞视频 | 日韩插插 | 国产1区 | 日韩一区中文字幕 | 欧美精品网站 | 黄色网址大全在线观看 | 激情小说综合网 | 天堂亚洲 | 国产在线视频一区二区董小宛性色 | 国产污视频在线 | 中日韩av | 欧美日韩亚洲视频 | 欧美午夜精品久久久久久浪潮 | 日本免费一区二区三区四区 | 欧美日韩国产精品 | 亚洲自拍偷拍免费视频 | 毛片网站在线观看 | xxxcom在线观看 | 在线视频a | 免费看色 | 精品日韩一区 | 久久精品一级 | 北条麻妃99精品青青久久 | 国产精品久久久久av | 国产成在线观看免费视频 | 精品久久一区二区三区 | 日日日色| 成人网av| 久久久久久免费毛片精品 | 欧美一区二区另类 | 亚洲美女在线一区 | www.久久久久久久久久久 | 午夜一区 | 狠狠躁天天躁夜夜躁婷婷老牛影视 |