标题: 能帮我看看单片机程序为什么speed后面显示为什么没有,怎么改才有 [打印本页]

作者: jlb    时间: 2020-12-5 22:32
标题: 能帮我看看单片机程序为什么speed后面显示为什么没有,怎么改才有
#include "STC15F2K60S2.h"
#include "oled.h"
#include "DS.h"
#include "stdio.h"
#include <intrins.h>
u32 speed=70;
bit status=0;
sbit SB1 = P0^3; //按钮定义
sbit SB2 = P0^2;
sbit SB3 = P0^1;
sbit SB4 = P0^0;

sbit ENA=P1^4;///L298N的ENA
sbit IN1=P1^5;
sbit IN2=P1^6;
unsigned  char i,z,m=0;         //z加时  m标志
unsigned char n=0;        
void dj();
extern unsigned int  Display_Digit[]={0,0,0,0};        

int main(void)
{         AUXR |= 0x80;                //定时器时钟1T模式
        TMOD = (TMOD & 0xF0)|0x11;
        TL1 = 0x00;                        //设定定时器初值
        TH1 = 0xDC;                        //设定定时器初值
        TL0=0x10;
        TH0=0xff;
        TR1=0;
        TF0 = 0;                //清除TF0标志
        TF1=0;
        TR0 = 1;                //定时器0开始计时
        EA  = 1;        //总中断打开
        ET1=1;
        ET0 = 1;        //定时器0中断打开
        ENA=1;

                 OLED_Init();                        //初始化OLED  
                OLED_On();
                delay_ms(100);
                OLED_Clear();
                 OLED_ShowCHinese(36,4,0);
                OLED_ShowCHinese(54,4,1);
                OLED_ShowCHinese(72,4,2);
                OLED_ShowCHinese(90,4,3);
                delay_ms(100);
                OLED_Clear();
                Delay_ms1(5);
  while(1)
        {
         OLED_ShowString(0,0,"speed",16);
                OLED_ShowString(54,0,":",16);
                OLED_ShowString(0,2,"status",16);
                OLED_ShowString(54,2,":",16);
                OLED_ShowString(0,4,"Temp",16);
                OLED_ShowString(36,4,":",16);
                OLED_ShowString(0,6,"time",16);
                OLED_ShowString(36,6,":",16);
                 xianshi();

                  if(SB1==0)
                                {
                                        delay_ms(1);
                                        if(SB1==0)
                                        {
                                          while(!SB1);
                                          status=!status;
//                                          uart_send_str(send_data);
                                        }
                                 }
                          if(SB2==0)
                                {
                                        delay_ms(1);
                                        if(SB2==0)
                                        {
                                          while(!SB2);                                
                                           speed-=5;
//                                           uart_send_str(send_data1);
                                                                                                           
                                        }

                                }

                                                if( status==1)
                                                
                                                   OLED_ShowString(64,2,"start",16);
                                            else if(status==0)
                                                   OLED_ShowString(64,2,"stop ",16);
                                                   dj();

  }
}

void dj()
{
                                 if(speed==45)
                                speed=70;
                                 if( speed==50)
                                OLED_ShowString(82,0,"1",16);
                                   if( speed==55)
                                OLED_ShowString(82,0,"2",16);
                                   if( speed==60)
                                OLED_ShowString(82,0,"3",16);
                                   if( speed==65)
                                OLED_ShowString(82,0,"4",16);
                                   if( speed==70)
                                OLED_ShowString(82,0,"5",16);                                 
}


void int_tim0(void) interrupt 1
{

        TL0 = 0x10;                        //设定定时器初值
        TH0 = 0xff;                        //设定定时器初值
                n++;
                if(n==100)n=0;
                if(status==1&&n>=speed)
                {IN1=1;
                IN2=0;}
                else
                {IN1=0;
                IN2=0;}

}



作者: daemondong    时间: 2020-12-6 20:35
上电以后speed后面就没显示么?
作者: daemondong    时间: 2020-12-6 20:37
还有 xianshi(); 这个函数代码是什么?




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1