历史上的今天

今天是:2024年11月10日(星期日)

2021年11月10日 | stm8S103单片机手轮DIY

发布者:LuckyDaisy 来源: eefocus关键字:stm8S103  单片机 手机看文章 扫描二维码
随时随地手机看文章

stm8S103 手轮DIY 代码如下:
#include "IOSTM8S103F3.h"
#define u8 uint8_t
#define u16 uint16_t
#define u32 uint32_t

#define LED10  PA_ODR_ODR2
#define LED100 PA_ODR_ODR3
#define LEDX   PD_ODR_ODR4
#define LEDY   PD_ODR_ODR5
#define LEDZ   PD_ODR_ODR6
#define LEDA   PA_ODR_ODR1

#define KZ10  PD_ODR_ODR2
#define KZ100 PD_ODR_ODR3
#define KZX   PC_ODR_ODR4
#define KZY   PC_ODR_ODR5
#define KZZ   PC_ODR_ODR6
#define KZA   PC_ODR_ODR7

typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned long uint32_t;

u8 XYZA=0;

void Delayms(unsigned int ms)
{
   u8 i,y;
   while(ms != 0)
   {
       for(y=0;y<100;y++)
       {
       }
       for(i=0;i<200;i++)
       {
   }
    ms--;
   }         
}



//****************io口初始化****************/
void GPIO_INIT()
{

PA_DDR = 0xFF;//
PA_CR1 = 0xFF;
PA_CR2 = 0xFF;
PA_ODR = 0xFF;

PB_DDR = 0x00;//按钮
PB_CR1 = 0x00;
PB_CR2 = 0xFF;

EXTI_CR1=0xAA;  

PC_DDR = 0xFF;//
PC_CR1 = 0xFF;
PC_CR2 = 0xFF;
PC_ODR = 0xFF;


PD_DDR = 0xFF;//
PD_CR1 = 0xFF;
PD_CR2 = 0xFF;
PD_ODR = 0xFF;
}

//*********************************主函数************************************/
main()
{   

  //Delayms(50);//稳定
  CLK_CKDIVR=0x00; //时钟不分频 16M
  Delayms(100);//稳定

  GPIO_INIT();

  KZX=0;
  LEDX=0;

  asm("rim");


  while (1)
  {
   }


}


//PB中断服务函数
#pragma vector=0x06 //PB 中断响应
__interrupt void EXTI_PORTB_IRQHandler(void) //PB 服务函数   
{
  if((PB_IDR&0x20)==0)
  {
    Delayms(100);// 消按钮抖动
    if((PB_IDR&0x20)==0)
    {
      if(LED10==1&&LED100==1) //10倍
      {
        LED10=0;
        KZ10=0;
        KZ100=1;
      }
      else
      {  
        if(LED10==0&&LED100==1)//100倍
        {  
        LED10=0;  
        LED100=0;

        KZ10=1;
        KZ100=0;

        }     
        else
          if(LED10==0&&LED100==0)//1倍
          {
            LED10=1;
            LED100=1;

            KZ10=1;
            KZ100=1;
          }
      }
  }
  while((PB_IDR&0x20)==0x20);//释放按钮
  }

  if((PB_IDR&0x10)==0)//4选1
  {
    Delayms(100);// 消按钮抖动
    if((PB_IDR&0x10)==0)
    {
     if(XYZA==0)
     {
      LEDX=0;
      LEDY=1;
      LEDZ=1;
      LEDA=1;

      KZX=0;
      KZY=1;
      KZZ=1;
      KZA=1;

     }
     if(XYZA==1)
     {
      LEDX=1;
      LEDY=0;
      LEDZ=1;
      LEDA=1;

      KZX=1;
      KZY=0;
      KZZ=1;
      KZA=1;
     }

     if(XYZA==2)
     {
      LEDX=1;
      LEDY=1;
      LEDZ=0;
      LEDA=1;

      KZX=1;
      KZY=1;
      KZZ=0;
      KZA=1;
     }
     if(XYZA==3)
     {
      LEDX=1;
      LEDY=1;
      LEDZ=1;
      LEDA=0;

      KZX=1;
      KZY=1;
      KZZ=1;
      KZA=0;


      XYZA=0;
     }
      else XYZA++;

     while((PB_IDR&0x10)==0x10);//释放按钮
     }

    }

}

关键字:stm8S103  单片机 引用地址:stm8S103单片机手轮DIY

上一篇:STM8L的TIM4定时功能详解
下一篇:最后一页

推荐阅读

集微网消息,轻轻触碰一下手机屏幕,即可完成智能门锁的操控。如此便捷性的操作方式,在首届中国国际进口博览会的三星展区就能亲自体验。作为本届进博会消费电子和家电馆中最大的IT企业之一,三星此次展现了多项领先技术、产品,系统化解决方案,以及对未来智能生活的展望。其中,三星SHP-DR708智能门锁,凭借现场良好的体验性,吸引众多参观者驻足。  ...
(文章来源:中科罗伯特机器人学院) 工业机器人发展到现在已经不在局限于某一个行业或者是领域了,在我国工业机器人已经逐渐占领了各大流水线上的工作。随着人们生活质量的提高,传统的工业机器人作业方式已经不能满足人们对产品的需求,科技的进步会带动工业机器人进入到什么样的发展呢。 行业是现在仅次于汽车的第二大应用领域, 3C行业由于产品更...
随着自动驾驶技术、信息与通信技术、环保汽车和智能交通的发展,汽车将需要更高级的摄像头功能。据外媒报道,韩国初创公司ROIIVE正在开发车用摄像头的核心技术和应用,以便为车辆提供更多安全和数据分析转换功能。(图片来源:www.koreatechdesk.com)汽车摄像头主要用于协助驾驶员泊车、转向和评估车辆性能。尤其在自动驾驶领域,这些摄像头系统发挥着至...
STM8S003定时器1中断服务程序(PWM)中开启定时器2定时定时功能,那么在定时器1中断服务程序退出时,立即就产生了定时器2更新中断,但是轴定时器2中断服务程序中(PWM),开启定时器2定时功能,却工作正常,何故?这是定时器1中断服务程序的开启定时器2的代码: //TIM2_Cmd(DISABLE); TIM2->CR1 &= (uint8_t)...

史海拾趣

问答坊 | AI 解惑

求助 数字钟制作出错问题

急啊 原理图网上流传的 http://www.51c51.com/51test/cc420.htm 原理图: PCB图: 把P1口换成了P2口 程序里的P1换成了P2 结果也是出不来 改不改都出不来 如果改错还要怎么改?求助。。。 使用LED 为4位共阴 程序: ...…

查看全部问答∨

以太网教程1-4集

以太网教程1-4集…

查看全部问答∨

硅谷糟糕,中国独好

高科技业员工在过去10年所走的路并不平坦,他们在过去9年中的薪酬亦减少了12%,反映出矽谷工作薪酬的反复无常以及网路业泡沬爆破后,矽谷高科业的再次挣扎。   根据联邦劳工局的统计资料,2000年矽谷11个高科技行业的员工平均年薪为120,000元, ...…

查看全部问答∨

串口只能发不能收

我把Adeneo的AT9261 BSP的串口驱动移到AT9263 BSP下(因为AT9263 BSP好像只能打开一个串口),就是用AT9261 BSP中的 PLATFORM\\AT91SAM9261EK\\SRC\\DRIVERS\\Serial PLATFORM\\COMMON\\SRC\\ARM\\ATMEL\\AT91SAM926x\\DRIVERS\\Serial 两个文件 ...…

查看全部问答∨

如何显示开机logo?

用的是i.mx35的ARM,怎么显示开机logo,需要在BSP中添加什么代码?…

查看全部问答∨

询问关于TORNADO2.2 FOR XScale问题

1. 哪位可以帮忙给一份? 导师要求用这个系统,和他熟悉的公司交流过,其他问题可以慢慢解决,这个FOR XScale一定要我自己去解决了。我毛驴吸血雷驼了一个晚上,DISC 2搞定,DISC 1还没弄好。。。 上海的我可以上门过来拷一份,完成后请吃顿饭聊表 ...…

查看全部问答∨

大虾们!!关于s3c44b0开发板的问题啊!弄了4,5天了。还没有弄好啊!

不好意思,先抱怨一下。发泄一下我个人的心情! 买了一个革新arm7 s3c44b0的开发板 感觉他们产品的配套资料做得太差了。服务也才差了!!艾 有中被拐的感觉!! 第一,资料中 文件夹的命名太差了  对于一个初学者来说,这简直就是天书 ...…

查看全部问答∨

请教:EZ430仿真器不能刷程序了!!!

大家好: 我的EZ430-F2013的USB型仿真器最近刷不进去程序。提示: FATAL ERROR Failed to initialize device. Session aborted! 请 ...…

查看全部问答∨

PLC学习一点一点1

        对了,我是用的西门子的S7——200学习的PLC。       这些天本来已经基本上看完了PLC的资料,想找两个大题目练练手的,可是昨天真的把我伤害了,就是这个题,(找不到链接了,一个常开自复位 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved