找回密码
 立即注册

QQ登录

只需一步,快速开始

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

求助单片机蓝牙触控灯的程序问题

[复制链接]
跳转到指定楼层
楼主



我接了一个灯试了,蓝牙没用,是不是程序哪里出了问题?

#include <reg52.h>
#include <stdio.h>
#include "lcd1602.h"
//ADC0809
sbit CLK=P3^4;      
sbit ST=P3^5;      
sbit EOC=P3^6;      
sbit OE=P3^7;
sbit RELAY = P3^3;

unsigned int pass = 0;
unsigned int ADCshow;
unsigned char pressure = 50;

unsigned char mode=0;
unsigned char status = 0;
void delay(unsigned int s)      
{
        while(s--);
}
void DelayMS(unsigned int ms)
{
         unsigned char i;
        while(ms--)
        {
                 for(i=0;i<120;i++);
        }
}



void Timer0_INT() interrupt 1
{
        TH0=(65536-200)/256;
        TL0=(65536-200)%256;
        CLK=~CLK;
      
}

void UART_init()    //设置串行通信 本晶振为11.0592MHZ,其他的就自己算一下应该设置多少
{
      TMOD = 0x20;
      TH1 = 0xfd;
      TL1 = 0xfd;  //波特率9600
      SM0 = 0;
      SM1 = 1;   // 串口工作方式1 10位异步
      REN = 1;  //串口允许接收
      TR1 = 1;
      EA = 1;
      ES =1 ;  //串口中断
}
void main(void)
{
      
          RELAY=1;  //关灯
          UART_init();
      lcd_init(); //初始化1602

                TMOD=0x01; //设置定时器0
                TH0=(65536-200)/256; //初值重装
                TL0=(65536-200)%256;
        EA=1;  //开总中断
                ET0=1;  //开定时器中断
                TR0=1;   //开定时器0

                while(1)
                {
                       

                        //adc0809读取数据
                                                ST=0;
                                                OE=0;
                                                ST=1;
                                                ST=0;

                                                while(EOC==0);
                                                OE=1;
                                                ADCshow=P1;
                                                OE=0;
              
     //lcd1602显示压力传感器值
                                        LCD_ShowStr(0,0,"Real:");
                                        LCD_ShowChar(5,0,ADCshow/100+'0');  
                                        LCD_ShowChar(6,0,ADCshow%100/10 +'0');
                                  LCD_ShowChar(7,0,ADCshow%10 +'0');
                                                              
                                if(ADCshow<pressure||pass==0x11)
                                {
                                   RELAY=0;  //亮灯
                              
                                }
                       
                                else
                                {  //否则
                                         RELAY=1; //灭灯
                              
                                }
      
                              
                }
              
}
void UART_INTERRUPT() interrupt 4
{      
              pass = SBUF;
              RI = 0;  
              SBUF = pass;  )
              while(!TI);
              TI = 0;
}


(5]87ND7NF5]DGJ)$$5B2JF.png (91.95 KB, 下载次数: 74)

(5]87ND7NF5]DGJ)$$5B2JF.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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