找回密码
 立即注册

QQ登录

只需一步,快速开始

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

能帮我看看单片机程序为什么speed后面显示为什么没有,怎么改才有

[复制链接]
跳转到指定楼层
楼主
ID:738296 发表于 2020-12-5 22:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#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;}

}


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

使用道具 举报

沙发
ID:827243 发表于 2020-12-6 20:35 | 只看该作者
上电以后speed后面就没显示么?
回复

使用道具 举报

板凳
ID:827243 发表于 2020-12-6 20:37 | 只看该作者
还有 xianshi(); 这个函数代码是什么?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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