[技术问答] MINI58蕊片脚如何定义

[复制链接]
 楼主| dragonjun 发表于 2016-6-6 16:59 | 显示全部楼层 |阅读模式
8051蕊片定义sbit LED1=P2^1;
那么MINI58芯片怎么定义,能举个实例吗?还有相关的头文件在哪看
冷调幽忧 发表于 2016-6-6 19:49 | 显示全部楼层
#define  LED1   P21
huangcunxiake 发表于 2016-6-6 21:02 | 显示全部楼层
你要看头文件里面怎么定义端口的。
huangcunxiake 发表于 2016-6-6 21:03 | 显示全部楼层
huangcunxiake 发表于 2016-6-6 21:12 | 显示全部楼层
我电脑也没有,我下载后,给你说说。
这个跟51不同,是arm内核,你如果输出使用,要配置方向寄存器,设置为输出后才能使用输出寄存器使用
  1. ** Define GPIO Pin Data Input/Output. It could be used to control each I/O pin by pin address mapping.
  2. *  Example 1:
  3. *  
  4. *      P00 = 1;
  5. *  
  6. *  It is used to set P0.0 to high;
  7. *  
  8. *  Example 2:
  9. *  
  10. *      if (P00)
  11. *          P00 = 0;
  12. *  
  13. *  If P0.0 pin status is high, then set P0.0 data output to low.
  14. */
  15. #define GPIO_PIN_ADDR(port, pin)    (*((volatile uint32_t *)((GPIOBIT0_BASE+(0x20*(port))) + ((pin)<<2))))
  16. #define P00             GPIO_PIN_ADDR(0, 0) /*!< Specify P00 Pin Data Input/Output */
  17. #define P01             GPIO_PIN_ADDR(0, 1) /*!< Specify P01 Pin Data Input/Output */
  18. #define P02             GPIO_PIN_ADDR(0, 2) /*!< Specify P02 Pin Data Input/Output */
  19. #define P03             GPIO_PIN_ADDR(0, 3) /*!< Specify P03 Pin Data Input/Output */
  20. #define P04             GPIO_PIN_ADDR(0, 4) /*!< Specify P04 Pin Data Input/Output */
  21. #define P05             GPIO_PIN_ADDR(0, 5) /*!< Specify P05 Pin Data Input/Output */
  22. #define P06             GPIO_PIN_ADDR(0, 6) /*!< Specify P06 Pin Data Input/Output */
  23. #define P07             GPIO_PIN_ADDR(0, 7) /*!< Specify P07 Pin Data Input/Output */
  24. #define P10             GPIO_PIN_ADDR(1, 0) /*!< Specify P10 Pin Data Input/Output */
  25. #define P11             GPIO_PIN_ADDR(1, 1) /*!< Specify P11 Pin Data Input/Output */
  26. #define P12             GPIO_PIN_ADDR(1, 2) /*!< Specify P12 Pin Data Input/Output */
  27. #define P13             GPIO_PIN_ADDR(1, 3) /*!< Specify P13 Pin Data Input/Output */
  28. #define P14             GPIO_PIN_ADDR(1, 4) /*!< Specify P14 Pin Data Input/Output */
  29. #define P15             GPIO_PIN_ADDR(1, 5) /*!< Specify P15 Pin Data Input/Output */
  30. #define P16             GPIO_PIN_ADDR(1, 6) /*!< Specify P16 Pin Data Input/Output */
  31. #define P17             GPIO_PIN_ADDR(1, 7) /*!< Specify P17 Pin Data Input/Output */
  32. #define P20             GPIO_PIN_ADDR(2, 0) /*!< Specify P20 Pin Data Input/Output */
  33. #define P21             GPIO_PIN_ADDR(2, 1) /*!< Specify P21 Pin Data Input/Output */
  34. #define P22             GPIO_PIN_ADDR(2, 2) /*!< Specify P22 Pin Data Input/Output */
  35. #define P23             GPIO_PIN_ADDR(2, 3) /*!< Specify P23 Pin Data Input/Output */
  36. #define P24             GPIO_PIN_ADDR(2, 4) /*!< Specify P24 Pin Data Input/Output */
  37. #define P25             GPIO_PIN_ADDR(2, 5) /*!< Specify P25 Pin Data Input/Output */
  38. #define P26             GPIO_PIN_ADDR(2, 6) /*!< Specify P26 Pin Data Input/Output */
  39. #define P27             GPIO_PIN_ADDR(2, 7) /*!< Specify P27 Pin Data Input/Output */
  40. #define P30             GPIO_PIN_ADDR(3, 0) /*!< Specify P30 Pin Data Input/Output */
  41. #define P31             GPIO_PIN_ADDR(3, 1) /*!< Specify P31 Pin Data Input/Output */
  42. #define P32             GPIO_PIN_ADDR(3, 2) /*!< Specify P32 Pin Data Input/Output */
  43. #define P33             GPIO_PIN_ADDR(3, 3) /*!< Specify P33 Pin Data Input/Output */
  44. #define P34             GPIO_PIN_ADDR(3, 4) /*!< Specify P34 Pin Data Input/Output */
  45. #define P35             GPIO_PIN_ADDR(3, 5) /*!< Specify P35 Pin Data Input/Output */
  46. #define P36             GPIO_PIN_ADDR(3, 6) /*!< Specify P36 Pin Data Input/Output */
  47. #define P37             GPIO_PIN_ADDR(3, 7) /*!< Specify P37 Pin Data Input/Output */
  48. #define P40             GPIO_PIN_ADDR(4, 0) /*!< Specify P40 Pin Data Input/Output */
  49. #define P41             GPIO_PIN_ADDR(4, 1) /*!< Specify P41 Pin Data Input/Output */
  50. #define P42             GPIO_PIN_ADDR(4, 2) /*!< Specify P42 Pin Data Input/Output */
  51. #define P43             GPIO_PIN_ADDR(4, 3) /*!< Specify P43 Pin Data Input/Output */
  52. #define P44             GPIO_PIN_ADDR(4, 4) /*!< Specify P44 Pin Data Input/Output */
  53. #define P45             GPIO_PIN_ADDR(4, 5) /*!< Specify P45 Pin Data Input/Output */
  54. #define P46             GPIO_PIN_ADDR(4, 6) /*!< Specify P46 Pin Data Input/Output */
  55. #define P47             GPIO_PIN_ADDR(4, 7) /*!< Specify P47 Pin Data Input/Output */
  56. #define P50             GPIO_PIN_ADDR(5, 0) /*!< Specify P50 Pin Data Input/Output */
  57. #define P51             GPIO_PIN_ADDR(5, 1) /*!< Specify P51 Pin Data Input/Output */
  58. #define P52             GPIO_PIN_ADDR(5, 2) /*!< Specify P52 Pin Data Input/Output */
  59. #define P53             GPIO_PIN_ADDR(5, 3) /*!< Specify P53 Pin Data Input/Output */
  60. #define P54             GPIO_PIN_ADDR(5, 4) /*!< Specify P54 Pin Data Input/Output */
  61. #define P55             GPIO_PIN_ADDR(5, 5) /*!< Specify P55 Pin Data Input/Output */


huangcunxiake 发表于 2016-6-6 21:13 | 显示全部楼层
  1. /**************************************************************************//**
  2. * [url=home.php?mod=space&uid=288409]@file[/url]     main.c
  3. * [url=home.php?mod=space&uid=895143]@version[/url]  V2.10
  4. * $Date: 15/10/12 8:06p $
  5. * [url=home.php?mod=space&uid=247401]@brief[/url]    Show how to toggle GPIO pin.
  6. *
  7. * @note
  8. * Copyright (C) 2012 Nuvoton Technology Corp. All rights reserved.
  9. *
  10. ******************************************************************************/
  11. #include <stdio.h>
  12. #include "mini51series.h"
  13. #include "GPIO.h"


  14. void SYS_Init(void)
  15. {
  16.     /* Unlock protected registers */
  17.     SYS_UnlockReg();

  18.     /*---------------------------------------------------------------------------------------------------------*/
  19.     /* Init System Clock                                                                                       */
  20.     /*---------------------------------------------------------------------------------------------------------*/

  21.     /* Set P5.0 and P5.1 -> XTAL  */
  22.     SYS->P5_MFP &= ~(SYS_MFP_P50_Msk | SYS_MFP_P51_Msk);
  23.     SYS->P5_MFP |= (SYS_MFP_P50_XTAL1 | SYS_MFP_P51_XTAL2);

  24.     /* Enable external 12MHz XTAL, internal 22.1184MHz */
  25.     CLK->PWRCON |= CLK_PWRCON_XTL12M | CLK_PWRCON_IRC22M_EN_Msk;

  26.     /* Waiting for clock ready */
  27.     CLK_WaitClockReady(CLK_CLKSTATUS_XTL_STB_Msk | CLK_CLKSTATUS_IRC22M_STB_Msk);

  28.     /* Switch HCLK clock source to XTL */
  29.     CLK_SetHCLK(CLK_CLKSEL0_HCLK_S_XTAL,CLK_CLKDIV_HCLK(1));

  30.     /* STCLK to XTL STCLK to XTL */
  31.     CLK_SetSysTickClockSrc(CLK_CLKSEL0_STCLK_S_XTAL);

  32.     /* Enable IP clock */
  33.     CLK_EnableModuleClock(UART_MODULE);

  34.     /* Select IP clock source */
  35.     CLK_SetModuleClock(UART_MODULE,CLK_CLKSEL1_UART_S_XTAL,CLK_CLKDIV_UART(1));

  36.     /*---------------------------------------------------------------------------------------------------------*/
  37.     /* Init I/O Multi-function                                                                                 */
  38.     /*---------------------------------------------------------------------------------------------------------*/
  39.     /* Set P0 multi-function pins for UART RXD and TXD */
  40.     SYS->P0_MFP &= ~(SYS_MFP_P01_Msk | SYS_MFP_P00_Msk);
  41.     SYS->P0_MFP |= (SYS_MFP_P01_RXD | SYS_MFP_P00_TXD);

  42.     /* To update the variable SystemCoreClock */
  43.     SystemCoreClockUpdate();

  44.     /* Lock protected registers */
  45.     SYS_LockReg();
  46. }

  47. void UART_Init(void)
  48. {
  49.     /*---------------------------------------------------------------------------------------------------------*/
  50.     /* Init UART                                                                                               */
  51.     /*---------------------------------------------------------------------------------------------------------*/
  52.     /* Reset IP */
  53.     SYS_ResetModule(SYS_IPRSTC2_UART_RST_Msk);

  54.     /* Configure UART and set UART Baudrate */
  55.     UART_Open(UART, 115200);

  56. }

  57. void delay_loop(void)
  58. {
  59.     __IO uint32_t j;

  60.     for(j=0; j<60000; j++);
  61.     for(j=0; j<60000; j++);
  62.     for(j=0; j<60000; j++);
  63.     for(j=0; j<60000; j++);
  64. }

  65. /*---------------------------------------------------------------------------------------------------------*/
  66. /* MAIN function                                                                                           */
  67. /*---------------------------------------------------------------------------------------------------------*/
  68. int main (void)
  69. {

  70.     /* Init System, IP clock and multi-function I/O */
  71.     SYS_Init(); //In the end of SYS_Init() will issue SYS_LockReg() to lock protected register. If user want to write protected register, please issue SYS_UnlockReg() to unlock protected register.

  72.     /* Init UART for printf */
  73.     UART_Init();

  74.     printf("\n\nCPU [url=home.php?mod=space&uid=72445]@[/url] %dHz\n", SystemCoreClock);

  75.     printf("+-------------------------------------+ \n");
  76.     printf("|    MINI51 GPIO Toggle Sample Code   | \n");
  77.     printf("+-------------------------------------+ \n");

  78.     /*set P3.6 to output mode */
  79.     GPIO_SetMode(P3, BIT6, GPIO_PMD_OUTPUT);
  80.     P36 = 1;

  81.     while(1) {
  82.         P36 ^= 1;
  83.         delay_loop();
  84.     }
  85. }




huangcunxiake 发表于 2016-6-6 21:14 | 显示全部楼层
上面的例子就是通过库函数来操作的,让P36端口先设置为输出模式,然后通过逻辑运算实现翻转。。。通过异或运算。
gejigeji521 发表于 2016-6-7 17:15 | 显示全部楼层
不同内核的单片机命名规则都不同,实际上操作的东西都是寄存器地址,都是通过t
yiyigirl2014 发表于 2016-6-7 17:22 | 显示全部楼层
楼主找个教程入门一下吧,看来只会51坑人啊。找工作,只会51是不行的。
heisexingqisi 发表于 2016-6-7 17:39 | 显示全部楼层
找个教程学习学习啊,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

26

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

20

主题

26

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部