找回密码
 立即注册

QQ登录

只需一步,快速开始

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

这样写单片机代码,为啥按键效果不满意,麻烦大佬给指点一下,我比较菜

[复制链接]
跳转到指定楼层
楼主
ID:770154 发表于 2020-6-20 17:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1黑币
int main(void)
{

                delay_init();                                                                                                                                                     //延时函数初始
          delay_ms(100);        
                NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);         
                uart_init(9600);        
   //        Key_GPIO_Config();                                                                                                                                                         //串口初始化为9600        
          TIM5_PWM_Init(999,24);                                                                                        //200pwm调用形式
          TIM3_Int_Init(4999, 71);  
                IIC_GPIO_Configuration( IIC_GOIO_SDA , IIC_SDA , IIC_GPIO_SCL , IIC_SCL );
          delay_ms(10);
                MPU6050_Inital();
     delay_ms(10);        
        KEY_Init();               
          LCD_Init();
                Remote_Init();                        //红外接收初始化         
                LED0=!LED0;
        POINT_COLOR=RED;
LCD_ShowString(30,10,200,16,16,"2020/6/27");         
        while(1)
                {
                        flag=0;
                        flag5=1;
                        flag2_1=0;
                //        num=0;
                        t=0;
                        //nu=0;
                        //n=0;
                        setlong=0;
                        setang=0;
                        setR=0;
                        t=KEY_Scan(0);        
      resetmot();
                                //Write_LCD_Command(0x01);        //清屏
             delay_ms(2);
            // Write_LCD_Command(0x30);        //必须再次打开基本指令,因为绘图开了扩充指令        
       LCD_ShowString(30,30,200,16,16,"jibenmeshi");         
        
        if(t==KEY0_PRES)        
{
                if(num<7)
                                                num++;
                                                else
                                                        num=0;        
switch(num)
                                {
                                        case 1:LCD_ShowString(30,50,200,16,16,"START");break;
                                        case 2:        LCD_ShowString(30,70,200,16,16,"1:Mode1");                 
                 mode1();break;        
                                       
                                        case 3:LCD_ShowString(30,70,200,16,16,"4:Mode4");
                                               flag=4;break;

                                        case 4:        LCD_ShowString(30,70,200,16,16,"7:Mode7");
                                                flag7=1;
                                                mode7();break;
                                                                                                                                 
                                }               
                        }               
if(t==KEY1_PRES)        
{
                if(nu<7)
                                                nu++;
                                                else
                                                        nu=0;        
switch(nu)
                                {
                                        case 1:LCD_ShowString(30,50,200,16,16,"HUA XIAN");break;
                                        case 2:LCD_ShowString(30,70,200,16,16,"HUA 30CM"); setlong=30;mode2();break;
                                        case 3:LCD_ShowString(30,70,200,16,16,"HUA 40CM");setlong=40;mode2();break;
                                       
                                        case 4:LCD_ShowString(30,70,200,16,16,"HUA 50CM");setlong=50;mode2();break;

                                        case 5:        LCD_ShowString(30,70,200,16,16,"HUA 60CM");setlong=60;mode2();break;
                                                                                                                                 
                                }                                                
                        }
               
if(t==WKUP_PRES)        
{
                if(n<7)
                                                n++;
                                                else
                                                        n=0;        
switch(n)
                                {
                                        case 1:LCD_ShowString(30,50,200,16,16,"HUA JIAO");break;
                                        case 2:        LCD_ShowString(30,70,200,16,16,"HUA 30C");                 
                  setang=30; mode3();break;        
                                       
                                        case 3:LCD_ShowString(30,70,200,16,16,"HUA 60C");                 
                  setang=60; mode3();break;        

                                        case 4:LCD_ShowString(30,70,200,16,16,"HUA 120C");                 
                  setang=120; mode3();break;        
                                        case 5:LCD_ShowString(30,70,200,16,16,"HUA 240C");                 
                  setang=2400; mode3();break;        
                                        case 6:LCD_ShowString(30,50,200,16,16,"HUA YUAN");mode5();break;
                                                                                         
                                }               
                        }
                                
                }
        }

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

使用道具 举报

沙发
ID:277948 发表于 2020-6-20 18:18 | 只看该作者

兄弟说说你的功能
int main(void)
{
                delay_init();                                                                                                                                                     //延时函数初始
                delay_ms(100);        
                NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);         
                uart_init(9600);                                                                                                                                                              //串口初始化为9600        
                TIM5_PWM_Init(999,24);                                                                                        //200pwm调用形式
                TIM3_Int_Init(4999, 71);  
                IIC_GPIO_Configuration( IIC_GOIO_SDA , IIC_SDA , IIC_GPIO_SCL , IIC_SCL );
                delay_ms(10);
                MPU6050_Inital();
                delay_ms(10);        
                KEY_Init();               
                LCD_Init();
                Remote_Init();                        //红外接收初始化         
                LED0=!LED0;
                POINT_COLOR=RED;
                LCD_ShowString(30,10,200,16,16,"2020/6/27");         
                while(1)
                {
                        flag=0;
                        flag5=1;
                        flag2_1=0;
                        t=0;
                        setlong=0;
                        setang=0;
                        setR=0;
                        t=KEY_Scan(0);        
                        resetmot();
                        delay_ms(2);
                        LCD_ShowString(30,30,200,16,16,"jibenmeshi");         
                        if(t==KEY0_PRES)        
                        {
                                if(num<7)
                                num++;
                                else
                                num=0;        
                                switch(num)
                                {
                                        case 1:LCD_ShowString(30,50,200,16,16,"START");break;
                                        case 2:LCD_ShowString(30,70,200,16,16,"1:Mode1");mode1();break;        
                                        case 3:LCD_ShowString(30,70,200,16,16,"4:Mode4");flag=4;break;
                                        case 4:LCD_ShowString(30,70,200,16,16,"7:Mode7");flag7=1;mode7();break;
                                }               
                        }               
                        if(t==KEY1_PRES)        
                        {
                                if(nu<7)
                                nu++;
                                else
                                nu=0;        
                                switch(nu)
                                {
                                        case 1:LCD_ShowString(30,50,200,16,16,"HUA XIAN");break;
                                        case 2:LCD_ShowString(30,70,200,16,16,"HUA 30CM"); setlong=30;mode2();break;
                                        case 3:LCD_ShowString(30,70,200,16,16,"HUA 40CM");setlong=40;mode2();break;
                                        case 4:LCD_ShowString(30,70,200,16,16,"HUA 50CM");setlong=50;mode2();break;
                                        case 5:LCD_ShowString(30,70,200,16,16,"HUA 60CM");setlong=60;mode2();break;
                                }                                                
                        }
                        if(t==WKUP_PRES)        
                        {
                                if(n<7)
                                n++;
                                else
                                n=0;        
                                switch(n)
                                {
                                        case 1:LCD_ShowString(30,50,200,16,16,"HUA JIAO");break;
                                        case 2:LCD_ShowString(30,70,200,16,16,"HUA 30C");setang=30; mode3();break;        
                                        case 3:LCD_ShowString(30,70,200,16,16,"HUA 60C");setang=60; mode3();break;        
                                        case 4:LCD_ShowString(30,70,200,16,16,"HUA 120C");setang=120; mode3();break;        
                                        case 5:LCD_ShowString(30,70,200,16,16,"HUA 240C");setang=2400; mode3();break;        
                                        case 6:LCD_ShowString(30,50,200,16,16,"HUA YUAN");mode5();break;
                                }               
                        }
               
                }
}
回复

使用道具 举报

板凳
ID:770154 发表于 2020-6-21 20:59 | 只看该作者
liqingb 发表于 2020-6-20 18:18
兄弟说说你的功能
int main(void)
{

好嘞哥,我的想法是如果k0按下,按两下执行模式1,按三下执行模式4,同样如果k1按下按两下执行HUA 30CM,按三下执行HUA 40CM同里剩下的一样。这个功能,大哥帮忙看看按键错了吗
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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