找回密码
 立即注册
查看: 232|回复: 2

Ai8051U学习之旅(2) - Keil图形界面配置工程

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:9
  • 最近打卡:2025-02-28 11:44:43
已绑定手机

4

主题

21

回帖

100

积分

注册会员

积分
100
发表于 2025-2-17 14:20:33 | 显示全部楼层 |阅读模式
一、前言
    作为一名牛马小电工,建立自己的风格,快速开发,是必须的,领导说了,质量优先,效率优先,否则不适合做电子牛马
二、准备工作

    板子到手,仔细看了一下手册,配置开发环境的视频又刷了一遍,用户手册也仔细看了看,于是开干
    1)《AI8051U实验箱V1.2使用说明书.pdf》 AI8051U实验箱V1.2使用说明书.pdf (4.11 MB, 下载次数: 20) ,好好看,不能错过一个字,避免出现低级错误,很多人在使用新东西时,总是出各种莫名的问题,其实大多是没有看说明书
    2)《AI8051U.pdf》 这个寄存器的设置说明,各种注意事项,都要仔细阅读,包括小字部分也不要放过
三、开干吧
  3.1 基于定时器的工程改编
      个人的风格是,每个.c文件+一个.h文件,因为是学习,所以注释尽量详细,但也不能太繁琐

      文件夹包括:
     code - 存放源文件
     Prj    - 存入keil工程文件
     SI     - 存放sourceInsight
     ReadMe.txt - 简单的程序记录
      截图202502211136236826.jpg
  3.2 在程序中作了界面配置
       截图202502211141453677.jpg
  
  1. /*----------------------------------------------------------------------------------------------------------------------
  2. * Copyright(c) 2025, Mark Xu Work Studio R&D Department. All rights reserved.
  3. * 文件名称 : SysConfig.h
  4. * 文件版本 : V1.0.0
  5. * 功能描述 : 系统配置文件
  6. * 创建人员 : Mark Xu
  7. * 创建日期 : 2025/02/17
  8. ----------------------------------------------------------------------------------------------------------------------*/
  9. #ifndef __SYSCONFIG_H__
  10. #define __SYSCONFIG_H__
  11. // <<< Use Configuration Wizard in Context Menu >>>
  12. //----------------------------------------------------------------------------------------------------------------------
  13. //<h> The Project information
  14. // <s> The Hardware Version
  15. #define HW_PCBA_VERSION             "R00"
  16. // <s> The Firmware Version
  17. #define FW_FIRMWARE_VERSION         "R00"
  18. //</h>
  19. //----------------------------------------------------------------------------------------------------------------------
  20. //<h> The mcu peripheral config
  21. // <q> The timer0 config
  22. //  <i> Enable or Disable
  23. #define DRV_TIMER0_EN                                        (1)                //定时器0,0-禁用,1-使能
  24. // <q> The timer1 config
  25. //  <i> Enable or Disable
  26. #define DRV_TIMER1_EN                                        (0)                //定时器1,0-禁用,1-使能
  27. // <q> The timer2 config
  28. //  <i> Enable or Disable
  29. #define DRV_TIMER2_EN                                        (0)                //定时器2,0-禁用,1-使能
  30. // <q> The pwm config
  31. //        <i> enable or disable
  32. #define DRV_PWM_EN                                                (0)                //PWM模块,0-禁用,1-使能
  33. // <q> The comparor config
  34. //        <i> enable or disable
  35. #define DRV_CMP_EN                                                (0)                //比较器, 0-禁用,1-使能
  36. // <q> The uart1 config
  37. //  <i> Enable or Disable
  38. #define DRV_UART1_EN                                        (0)                //串口,   0-禁用,1-使能
  39. // <q> The uart2 config
  40. //  <i> Enable or Disable
  41. #define DRV_UART2_EN                                        (0)                //串口,   0-禁用,1-使能
  42. // <q> The uart3 config
  43. //  <i> Enable or Disable
  44. #define DRV_UART3_EN                                        (0)                //串口,   0-禁用,1-使能
  45. // <q> The uart4 config
  46. //  <i> Enable or Disable
  47. #define DRV_UART4_EN                                        (0)                //串口,   0-禁用,1-使能
  48. // <q> The spi function
  49. //  <i> Enable or Disable
  50. #define DRV_SPI_EN                           (0)                //SPI功能,0-禁止, 1-使能
  51. // <q> The RTC function
  52. //  <i> Enable or Disable
  53. #define DRV_RTC_EN                           (0)                //RTC功能,0-禁止,1-使能
  54. // <q> The watchdog config
  55. //        <i> enable or disable
  56. #define DRV_WDT_EN                                                (0)                //看门狗, 0-禁用,1-使能
  57. // </h>
  58. //应用测试相关
  59. //----------------------------------------------------------------------------------------------------------------------
  60. //<h> The function test module
  61. // <q> The adc sample test
  62. //  <i> Enable or Disable
  63. #define APP_ADC_TEST_EN                                        (0)                //ADC采样测试,0-禁用,1-使能
  64. // <q> The eeprom write and read test
  65. //  <i> Enable or Disable
  66. #define APP_EEPROM_TEST_EN                                (0)                //eeporm测试,   0-禁用,1-使能
  67. // </h>
  68. //调试打印相关
  69. // <e> The debug print function
  70. //         <i> Enable or Disable
  71. #define APP_DEBUG_PRINT_EN                                (0)                //调试打功能, 0-禁用,1-使能
  72. #if (APP_DEBUG_PRINT_EN)
  73.         // <q> The main module debug print function
  74.         //        <i> enable or disable
  75.         #define MAIN_PRINT_EN                                (1)                //主程序模块,打印功能
  76.         // <q> The system module debug print function
  77.         //        <i> enable or disable
  78.         #define SYS_PRINT_EN                                (0)                //SYS模块, 打印功能
  79.         // <q> The charging module debug print function
  80.         //        <i> enable or disable
  81.         #define CHRG_PRINT_EN                                (0)                //充电模块,打印功能
  82.         // <q> The key module debug print function
  83.         //        <i> enable or disable
  84.         #define KEY_PRINT_EN                                (0)                //按键模块,打印功能
  85.         // <q> The led module debug print function
  86.         //        <i> enable or disable
  87.         #define LED_PRINT_EN                                (0)                //显示模块,打印功能
  88.         //如果忘记打开宏“DRV_UART_EN”,在编译时,此处会有提示
  89.         #if (!DRV_UART_EN)        
  90.                 #error Please enable the uart driver (set the macro "DRV_UART_EN" to 1)!!!
  91.         #endif //#if (!DRV_UART_EN)
  92. #else
  93.         #define MAIN_PRINT_EN                                (0)                //主程序模块,打印功能
  94.         #define SYS_PRINT_EN                                (0)                //SYS模块, 打印功能
  95.         #define CHRG_PRINT_EN                                (0)                //充电模块,打印功能
  96.         #define KEY_PRINT_EN                                (0)                //按键模块,打印功能
  97.         #define LED_PRINT_EN                                (0)                //显示模块,打印功能
  98. #endif //#if (APP_DEBUG_PRINT_EN)
  99. // </e>
  100. // <<< end of configuration section >>>
  101. #endif //#ifndef __SYSCONFIG_H__
复制代码
  1. /*----------------------------------------------------------------------------------------------------------------------
  2. * Copyright(c) 2024, Mark Xu Work Studio R&D Department. All rights reserved.
  3. * 文件名称 : main.c
  4. * 文件版本 : V1.0.0
  5. * 功能描述 : 主应用模块
  6. * 创建人员 : Mark Xu
  7. * 创建日期 : 2025/02/17
  8. ----------------------------------------------------------------------------------------------------------------------*/
  9. #include "main.h"                        
  10. //----------------------------------------------------------------------------------------------------------------------
  11. // 配置文件                                         
  12. //----------------------------------------------------------------------------------------------------------------------
  13. //----------------------------------------------------------------------------------------------------------------------
  14. // 类型重定义                                         
  15. //----------------------------------------------------------------------------------------------------------------------
  16. //----------------------------------------------------------------------------------------------------------------------
  17. // 常量、宏   
  18. //----------------------------------------------------------------------------------------------------------------------
  19. //----------------------------------------------------------------------------------------------------------------------
  20. // 局部变量
  21. //----------------------------------------------------------------------------------------------------------------------
  22. //----------------------------------------------------------------------------------------------------------------------
  23. // 全局变量
  24. //----------------------------------------------------------------------------------------------------------------------
  25. //----------------------------------------------------------------------------------------------------------------------
  26. // 本地函数声明
  27. //----------------------------------------------------------------------------------------------------------------------
  28. /*----------------------------------------------------------------------------------------------------------------------
  29. * 函数名称 :void main(void)
  30. * 功能描述 :主程序入口
  31. * 入口参数 :无
  32. * 出口参数 :无
  33. * 备注说明 :无
  34. ----------------------------------------------------------------------------------------------------------------------*/
  35. void main(void)
  36. {
  37.         Sys_Init();        //系统初始化
  38.         
  39.         while(1)
  40.         {
  41.                 if (g_bSysTick10msFlag)
  42.                 {
  43.                         Led_LoopProc();
  44.                         g_bSysTick10msFlag = FALSE;
  45.                 }
  46.         
  47.         }
  48. }
复制代码
       3.3.2 main.h

  1. /*----------------------------------------------------------------------------------------------------------------------
  2. * Copyright(c) 2025, Mark Xu Work Studio R&D Department. All rights reserved.
  3. * 文件名称 : main.h
  4. * 文件版本 : V1.0.0
  5. * 功能描述 : 主程序头文件
  6. * 创建人员 : Mark Xu
  7. * 创建日期 : 2025/02/17
  8. ----------------------------------------------------------------------------------------------------------------------*/
  9. #ifndef        __MAIN_H__
  10. #define        __MAIN_H__
  11. #include "includes.h"
  12. //----------------------------------------------------------------------------------------------------------------------
  13. // 常量、宏  
  14. //----------------------------------------------------------------------------------------------------------------------
  15. //----------------------------------------------------------------------------------------------------------------------
  16. // 类型重定义                                      
  17. //----------------------------------------------------------------------------------------------------------------------
  18. //----------------------------------------------------------------------------------------------------------------------
  19. // 全局变量
  20. //----------------------------------------------------------------------------------------------------------------------
  21. //----------------------------------------------------------------------------------------------------------------------
  22. // 全局函数
  23. //----------------------------------------------------------------------------------------------------------------------
  24. #endif //#ifndef        __MAIN_H__
复制代码

   
其它源文件就不贴了,有兴趣的可以参考附件工程: 01-Timer.zip (175.51 KB, 下载次数: 21)






回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:9
  • 最近打卡:2025-02-28 11:44:43
已绑定手机

4

主题

21

回帖

100

积分

注册会员

积分
100
发表于 2025-2-21 19:38:14 | 显示全部楼层
上午写的跑马灯没有注意是低电平控制的,晚上在板子跑时才发现,在些更改一下代码
  1. void Led_LoopProc(void)
  2. {
  3.         s_u8LedTickCnt++;
  4.         if (s_u8LedTickCnt < 15)
  5.                 return;
  6.         s_u8LedTickCnt = 0;
  7.    
  8.     LED_PORT <<= s_u8LedLoopCnt;
  9.    
  10.     s_u8LedLoopCnt++;
  11.     if (s_u8LedLoopCnt > 8 )
  12.     {
  13.        LED_PORT = 0xff;
  14.        s_u8LedLoopCnt = 0;
  15.     }
  16. }
复制代码




回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:429
  • 最近打卡:2025-06-18 07:21:12
已绑定手机

10

主题

155

回帖

818

积分

高级会员

积分
818
发表于 2025-2-22 06:19:37 | 显示全部楼层
回复

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-19 06:40 , Processed in 0.139263 second(s), 64 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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