久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2116|回復: 1
打印 上一主題 下一主題
收起左側

不欺人,復制就能用 stm8 stvd驅動a4988驅動

[復制鏈接]
跳轉到指定樓層
樓主
ID:205182 發表于 2020-5-9 01:08 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
/* MAIN.C file
*
* Copyright (c) 2002-2005 STMicroelectronics
*/
#include <stm8s105k4.h>  //驅動A4988
#define u8     unsigned char
#define u16    unsigned short
#define u32    unsigned long
#define v8     unsigned int


void delay_ms(v8 ms);
void delay_us(u8 t);
u8 key_scan(void);
void GPIO_Init(void);
void TIM1_Init(void);

u8 num;
int DIR;
main()
{
        CLK_SWCR =0x02;
        CLK_SWR =0xb4;
        GPIO_Init();
        TIM1_Init();
        _asm("rim");
        delay_ms(20);
        
        
        
        while (1)
        {
                u8 i;
                i=key_scan();
         if(i==1)
                {
                        PD_ODR|=0x08;
                }
                else
                {
                        i==0;
                        PD_ODR&=0xf7;
                }
        }

}

void delay_ms(v8 ms)
{
        v8 x,y;
        for(x=ms;x>0;x--)
        {
                for(y=300;y>0;y--)
            {
                                
            }
  }
}

void delay_us(u8 t)
{
        u8 m = t;
        while(m--);
}


void GPIO_Init()
{
        PD_DDR |=0x04; //PD2 為輸出引腳 1   STEP
        PD_CR1 |=0x04; //PD2 為推挽輸出 1
        PD_CR2 |=0x04; //PD2 為10MHZ速率1
  PD_ODR &=0xfb; //PD2 為step輸出 0

        
        PD_DDR |=0x08;  //PD3 為輸出引腳 1   DIR
        PD_CR1 |=0x08;  //PD3 為推挽輸出 1
        PD_CR2 &=0xf7;  //PD3 為2MHZ速率 0
        
        
        PD_DDR &=0xcf;  //PD4,5 為輸入引腳        0
  PD_CR1 |=0x30;  //PD4,5 為若上拉輸入模式  1
  PD_CR2 &=0xcf;        //PD4,5 關外部中斷        0
}
        
void TIM1_Init(void)        
{
        TIM1_CR1 =0x80;         // TIM1寄存器由預裝載寄存器緩沖
        
        TIM1_PSCRH =0x00;       //預分頻F(CK_CNT)=F(CK_PSC)/(PSCR[15:0]+1)
        TIM1_PSCRL =0x9f;        //159+1==160, 100khz
        
        TIM1_IER=0x01;       //中斷使能
        
        TIM1_ARRH =125/256;        //自動重裝載計數器125
        TIM1_ARRL=125%256;
        
        TIM1_CR1|=0x01;     //TIM1寄存器CEN位為1

}

u8 key_scan()
{
          u8 i;int c;
          i=PD_IDR;
          i&=0x30;
          if(i==0x20)
          {
                        delay_ms(10);
                        if(i ==0x20)
                        {
                        c==0;
                  }
                        return 1;
          }        
   
   if(i ==0x10)
         {
                 delay_ms(10);
                 if(i ==0x10)
                 {
                   c==1;   //正
           }
                 return 0;
         }
        
}



  
@far @interrupt void TIM1_UPD_OVF_HandledInterrupt(void)//中斷
{
        PD_ODR^=0x04;
       TIM1_SR1&=0xfe;
                        }


/*        BASIC INTERRUPT VECTOR TABLE FOR STM8 devices
*        Copyright (c) 2007 STMicroelectronics
*/

typedef void @far (*interrupt_handler_t)(void);

struct interrupt_vector {
        unsigned char interrupt_instruction;
        interrupt_handler_t interrupt_handler;
};

@far @interrupt void NonHandledInterrupt (void)
{
        /* in order to detect unexpected events during development,
           it is recommended to set a breakpoint on the following instruction
        */
        return;
}

extern void _stext();     /* startup routine */

extern @far @interrupt void TIM1_UPD_OVF_HandledInterrupt(void);

struct interrupt_vector const _vectab[] = {
        {0x82, (interrupt_handler_t)_stext}, /* reset */
        {0x82, NonHandledInterrupt}, /* trap  */
        {0x82, NonHandledInterrupt}, /* irq0  */
        {0x82, NonHandledInterrupt}, /* irq1  */
        {0x82, NonHandledInterrupt}, /* irq2  */
        {0x82, NonHandledInterrupt}, /* irq3  */
        {0x82, NonHandledInterrupt}, /* irq4  */
        {0x82, NonHandledInterrupt}, /* irq5  */
        {0x82, NonHandledInterrupt}, /* irq6  */
        {0x82, NonHandledInterrupt}, /* irq7  */
        {0x82, NonHandledInterrupt}, /* irq8  */
        {0x82, NonHandledInterrupt}, /* irq9  */
        {0x82, NonHandledInterrupt}, /* irq10 */
        {0x82, TIM1_UPD_OVF_HandledInterrupt}, /* irq11 */
        {0x82, NonHandledInterrupt}, /* irq12 */
        {0x82, NonHandledInterrupt}, /* irq13 */
        {0x82, NonHandledInterrupt}, /* irq14 */
        {0x82, NonHandledInterrupt}, /* irq15 */
        {0x82, NonHandledInterrupt}, /* irq16 */
        {0x82, NonHandledInterrupt}, /* irq17 */
        {0x82, NonHandledInterrupt}, /* irq18 */
        {0x82, NonHandledInterrupt}, /* irq19 */
        {0x82, NonHandledInterrupt}, /* irq20 */
        {0x82, NonHandledInterrupt}, /* irq21 */
        {0x82, NonHandledInterrupt}, /* irq22 */
        {0x82, NonHandledInterrupt}, /* irq23 */
        {0x82, NonHandledInterrupt}, /* irq24 */
        {0x82, NonHandledInterrupt}, /* irq25 */
        {0x82, NonHandledInterrupt}, /* irq26 */
        {0x82, NonHandledInterrupt}, /* irq27 */
        {0x82, NonHandledInterrupt}, /* irq28 */
        {0x82, NonHandledInterrupt}, /* irq29 */
};

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:205182 發表于 2020-5-9 01:13 | 只看該作者
謝謝管理員提醒,發帖只為與大家交流,不為積分。
大的化小,準備給小孩做個玩具。慢慢來。ad什么以后奉上。說明很詳細了。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线精品一区二区三区 | 日韩三极 | 久久一区二区视频 | 国产91久久精品一区二区 | 亚洲精品国产成人 | 在线看免费的a | 一级看片免费视频囗交动图 | 久久高清| 国产高清在线精品一区二区三区 | 国产成人jvid在线播放 | 国产欧美在线视频 | 日韩午夜电影在线观看 | 国产三级一区二区 | 成人一级片在线观看 | 午夜三级视频 | 久久aⅴ乱码一区二区三区 亚洲欧美综合精品另类天天更新 | 免费观看的av | 午夜影院在线观看 | 精品国产一区二区三区性色av | 亚洲欧美在线免费观看 | 国产成人精品一区二区三 | 青青艹在线视频 | www.亚洲精品 | 久久国产精品一区二区三区 | 国产成人精品免高潮在线观看 | 国产欧美综合在线 | 欧美黄色一级毛片 | 亚洲一区在线日韩在线深爱 | 国产视频欧美 | 国产精品日韩欧美一区二区三区 | 国产成人在线一区 | 九一在线观看 | 免费黄色在线观看 | 中文字幕亚洲精品 | 中文在线一区 | 免费高潮视频95在线观看网站 | 在线免费观看黄色 | 影音先锋中文在线 | 日韩中文字幕 | www国产亚洲精品 | 亚洲国产成人精品女人久久久 |