找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3300|回复: 13
打印 上一主题 下一主题
收起左侧

单片机程序怎么修改?如图错误

[复制链接]
跳转到指定楼层
楼主
#include <reg52.h> //调用单片机头文件
#define uchar unsigned char //无符号字符型 宏定义 变量范围 0~255
#define uint unsigned int //无符号整型 宏定义 变量范围 0~65535
#include <intrins.h>
sbit SCL=P1^4; //SCL 定义为 P1 口的第 3 位脚,连接 ADC0832SCL 脚

sbit DO=P1^5; //DO 定义为 P1 口的第 4 位脚,连接 ADC0832DO 脚
sbit CS=P1^3; //CS 定义为 P1 口的第 4 位脚,连接 ADC0832CS 脚

sbit beep = P3^3; //蜂鸣器 IO 口定义
uint temperature,s_temp ; //温度的变量
uchar shidu; //湿度等级
uchar s_high = 70,s_low = 25;//湿度报警参数

sbit dianji = P1^6; //电机 IO 定义

bit flag_300ms ;
uchar key_can; //按键值的变量
uchar menu_1; //菜单设计的变量

sbit rs=P1^0; //1602 数据/命令选择引脚 H:数据 L:命令
sbit rw=P1^1; //1602 读写引脚 H:数据寄存器 L:指令寄存器
sbit e =P1^2; //1602 使能引脚 下降沿触发
uchar code table_num[]="0123456789abcdefg";


void write_com(uchar com)
{
e=0;
rs=0;
rw=0;
P0=com;
delay_uint(3);
e=1;
delay_uint(25);
e=0;
}
void write_data(uchar dat)
{
e=0;
rs=1;
rw=0;
P0=dat;
delay_uint(3);
e=1;
delay_uint(25);
e=0;
}
void key_with()
{
if(key_can==1)
{
  menu_1++;
  if(menu_1>=3)
  {
   menu_1=0;
   int_1602();
   }
  }
  if(menu_1==1)
  {
   if(key_can==2)
   {
    s_high++;
        if(s_high>99)
              s_high=99;
        }
   }
   if(key_can==3)
   {
     s_high--;
         if(s_high<=s_iow)
               s_high=s_low+1;
        }
     write_sfm2(2,4,s_high);
     write_sfm2(2,12,s_low);
     write_com(0x80+0x40+4);
     write_com(0x0f);
}
if(menu_1==2)
{
  if(key_can==2)
  {
        s_low++;
                if(s_low>=s-high)
                     s_low==s_high-1;
  }
  if(key_can==3)
  {
   s_low--;
   if(s_low<=1)
        s_low=1;
  }
         write_sfm2(2,4,s_high);
     write_sfm2(2,12,s_low);
     write_com(0x80+0x40+4);
     write_com(0x0f);
}
void  clok_h_1()
{
  static  uchar value,value1;
  if(shidu<=s_low)
  {
   value++;
   if(value>=2)
   {
    value=10;
        beep=-beep;
        dianji=0;
        }
  }else
       beep=1;
  if(shidu>=s-high)
  {
   value1++;
   if(value>=2)
   {
    value1=10;
        beep=1;
        dianji=1;
   }
}else
      value1=0;
}
void main()
{
  int_1602();
  time_int();
  while(1)
  {
   key();
   if (key_can<10)
   {
    key_with();
        }
        if(flag_300ms==1)
        {
                  flag_300ms==0;
                 clock_h_1();
                 if(beep==1)
                 {
               
                         shidu=ad0823read(1,0);
                     shid=99-shidu*99/255;
                    }
                         if(menu_1==0)
                         {
                          write_sfm2(1,9,shidu);
                         }
                         }
                          delay_1ms(1);
         }
   }
        

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:317383 发表于 2020-4-17 08:14 | 只看该作者
应该是延时函数缺少原型说明,
在程序开始部分加上函数的原型说明
回复

使用道具 举报

板凳
ID:213173 发表于 2020-4-17 08:14 | 只看该作者
delay_uint(  );函数没有定义
回复

使用道具 举报

地板
ID:726183 发表于 2020-4-17 08:24 来自手机 | 只看该作者
C32指的是左边的行数
回复

使用道具 举报

5#
ID:726183 发表于 2020-4-17 08:25 来自手机 | 只看该作者
看你程序左边有一长串的c1,c2,c3……
回复

使用道具 举报

6#
ID:726183 发表于 2020-4-17 08:25 来自手机 | 只看该作者
看错了是001,002,003……
回复

使用道具 举报

7#
ID:726183 发表于 2020-4-17 08:26 来自手机 | 只看该作者
032行有错
回复

使用道具 举报

8#
ID:592807 发表于 2020-4-17 08:28 | 只看该作者
delay_uint(25);这个原函数贴出来
回复

使用道具 举报

9#
ID:626079 发表于 2020-4-17 09:06 | 只看该作者
delay_uint(25);  这个函数没有看到在哪儿啊。大哥
delay_1ms(1);还有这个函数也没看到。
回复

使用道具 举报

10#
ID:591189 发表于 2020-4-17 09:58 | 只看该作者
延时函数没有申明
回复

使用道具 举报

11#
ID:729982 发表于 2020-4-17 13:16 | 只看该作者
延时函数的定义没看到。函数需要先定义再使用,特殊功能寄存器需要先初始化再使用,这是单片机编程的基本规则,你要牢记啊
回复

使用道具 举报

12#
ID:731700 发表于 2020-4-17 21:50 | 只看该作者
延时函数没有声明
回复

使用道具 举报

13#
ID:731817 发表于 2020-4-18 08:59 | 只看该作者
需要先声明延时函数啊
回复

使用道具 举报

14#
ID:691449 发表于 2020-4-18 11:43 | 只看该作者
delay_uint();原形在哪里
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表