模吧

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

1092查看 | 5回复

[DIY交流] 调通了个油门计时功能分享下

[复制链接]
发表于 2017-1-12 23:57:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
前几天经过各路大神指点点亮了12864
于是乎
意淫了个遥控界面
不过界面上的参数都是忽悠人的
经过两天业余时间研究终于把油门计时器
调调试通 过
具体作用油门超过12%
定时器开始启动
在主界面上显示时/分/秒

用于计算飞机起飞到降落
总共飞行多少分钟
小时我没显示出来也用不到

从入魔到至今我也没见谁
一个起落飞几小时的哈哈
废话不多说  上图




调通了个油门计时功能分享下 ppt计时功能 作者:ldy7474 4557
 楼主| 发表于 2017-1-12 23:58:40 | 显示全部楼层
#include <reg51.h>
#include <intrins.h>
#include "12864Data.h"
#include "stc12c.h"
#include "lcd12864.h"
#include "ADC.h"
#define u8 unsigned char
#define u16  unsigned int
   
/*******萝莉控LCD引脚***************/
/*
sbit CS=P0^6;
sbit RST=P0^7;
sbit RS=P4^6;
sbit SDA=P4^5;
sbit SCK=P4^4;
*/
u16 CH1,CH2,CH3,CH4,CH5,CH6,CH7,V1;//
sbit LEDA=P2^5;//LCD背光
sbit led = P0^2;
u16 adc;
u8 lcd[6];//显示缓存

uchar aa,bb;
uint time, timea, timeb;

void ET0init();   //定时器0初始化
void init ();           //硬件初始化

void main(void)
{   
   
    init ();
    ET0init ();
    LEDA=1;
    delay_n_10us(100);//延时100ms等待稳定运行
   
    InitLCD();
    ClearScreen();
    Display128x64(lcd_128x64);
   
    //lcd[6]=' ';
    //lcd[7]=' ';
    //lcd[8]=' ';
    //lcd[9]=' ';
    while(1)
    {
      Display8x16(1,0,"L");
      Display8x16(1,8,"D");
      Display8x16(1,16,"Y");

      Display5x7(1,52,"0");
      Display5x7(1,60,"B");
      Display5x7(1,68,"T");

      Display8x16(2,28,"F");
      Display8x16(2,36,"2");
      Display8x16(2,44,"2");
          
          if(adcs(4)>=12)//油门大于12开始计时
      {
          TR0=1;//启动定时器          
          lcd[0]= timea/10+48;          
      lcd[1]= timea+48;
          lcd[2]=':';         
      lcd[3]= time0/10+48;
      lcd[4]= time00+48;
          Display8x16(2,74,lcd);                  
      }
          
      CH3=adcs(4);//*CH3代表4通道检测到的ADC值**/
      lcd[0]= CH3/1000+48;          
      lcd[1]= CH300/100+48;         
      lcd[2]= CH30/10+48;
      lcd[3]= CH300+48;
      lcd[4]=' ';
      Display5x7(5,30,lcd);
      Display5x7(5,8,"C");
      Display5x7(5,14,"H");
      Display5x7(5,20,"3");
      
    }        
    }

void ET0init()//外部中断0初始化
{
    TMOD=0x01;
    TH0=(65536-50000)/256;
    TL0=(65536-50000)%6;
    EA=1;//开总中断
    ET0=1;//开定时器中断
    //TR0=1;//启动定时器
    aa=0;
    time=0;
   
}

void init ()           //硬件初始化
{        
    LEDA=0;
    P4SW=0x70;           //允许P4 IO
    P2M0=0x20;           //推挽点亮背光
}

void timer0() interrupt 1
{
    TH0=(65536-50000)/256; //每50MS产生一次中断,
    TL0=(65536-50000)%6; //给寄存器装初值并累加aa
    aa++;
        bb++;
        TR0=0;//关定时器
        if(bb>=10) //如果到了0.5S
        {
        led=~led;
        bb=0; //清零                          
    }
                                                            
        if(aa>=20) //如果到了1S
        {                 
        aa=0; //清零aa                     
    time++;//秒自增1      
    }
                                 
    if(time>=60)//如果到了1分钟
    {time=0;//秒清零
        timea++;//分自增1                                    
    }

        if(timea>=60)//如果到了1小时
    {timea=0;//分清零
        timeb++;//小时自增1                  
    }

        if(timeb>=24)//如果到了24小时
    {
        timeb=0;//小时清零                         
    //led=1;//到了24小时关掉LED
        //TR0=0;//到了24小时关掉定时器
    }

    }               

发表于 2017-1-13 07:29:02 | 显示全部楼层
66666666666顶
发表于 2017-1-13 09:50:26 | 显示全部楼层
顶顶
发表于 2017-1-13 12:35:37 | 显示全部楼层
好创意。加油。。。。。。。。。。。。。。。。。。。。。。。。
发表于 2017-1-13 13:28:26 | 显示全部楼层
看上去不错
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|关于模吧|APP下载|广告报价|手机版|企业会员|商城入驻|联系我们|模吧 ( 黔ICP备2022002348号-1 )

© 2013-2020 Moz8.com 模吧,玩出精彩!