# STCAi8051U-Example **Repository Path**: CodeMan-P/stcai8051u-example ## Basic Information - **Project Name**: STCAi8051U-Example - **Description**: STCAi8051U示例工程 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-11-01 - **Last Updated**: 2024-11-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: STC-Ai8051U ## README # 1 概述 使用普中51学习板重新学一遍Ai8051U记录 翻出吃灰N年的51开发板,换上STC&立创活动送的芯片,单车变摩托,借此机会重学一边记录下,温故而知新。 ![alt text](img/开发板.jpg) # 2 开发环境准备 ## 2.1 工具和手册下载 [AIapp-ISP](https://www.stcaimcu.com/data/download/Tools/AIapp-ISP-v6.94S.zip) [库函数和中断修复工具](https://www.stcaimcu.com/forum.php?mod=attachment&aid=NjM3MnwxMWYwMzUxMnwxNzI1OTYzMzk4fDF8MTUyNQ%3D%3D) [Ai8051U手册](https://www.stcaimcu.com/data/download/Datasheet/AI8051U.pdf) [C251包下载](https://pcsoftcdn.ddooo.com/pcsf/KEILC251_112579.rar?time=1730425849&key=3ebe14d547263ae6ecc03aa0ba12434a) ## 2.1 keil配置 参考官方手册(doc/AI8051U.pdf)第六章 ## 2.2 添加芯片头文件 ![alt text](img/addHead.png) ## 2.2 拓展Keil的C代码中断号 ![alt text](img/fixKeil.png) ## 2.3 中文配置* 复制中文注释到keil中会乱码,配置gb2312编码格式解决。 修改菜单栏(Edit) - Configuration - Editor - Encoding 为 GB2312 ![alt text](img/encoding.png) ## 2.4 Vscode配置 Vscode配合build脚本也可快速开发。 编码配置:在项目的根目录下创建一个 .vscode 文件夹,并在其中创建一个 settings.json 文件,添加以下配置: ```json { "[Markdown]": { "files.encoding": "utf8" }, "[c]": { "files.encoding": "gb2312" }, "[cpp]": { "files.encoding": "gb2312" } } ``` # 3 测试工程使用方法 工程文件:STC-Ai8051U-Project\RVMDK\STC-Ai8051U.uvproj 所有实验实现代码在STC-Ai8051U-Project\App目录下。 切换实验,主要涉及修改以下文件, 放开需要的注释,其余屏蔽即可 ``` STC-Ai8051U-Project\App\src\APP.h STC-Ai8051U-Project\User\Task.c ``` 如图: ![alt text](img/startTask.png) # 4 实验目录 | 中文 | 英文 | | :--- | :---: | | 实验1:点亮第一个LED | test1_LightingUpFirstLED | | 实验2:LED闪烁 | test2_BlinkingLED | | 实验3:LED流水灯 | test3_LEDRunningLight | | 实验4:蜂鸣器 | test4_Buzzer | | 实验5:继电器 | test5_Relay | | 实验5:静态数码管显示 | test6_StaticSevenSegmentDisplay | | 实验6:动态数码管显示 | test7_DynamicSevenSegmentDisplay | | 实验7:独立按键 | test8_IndependentKey | | 实验8:矩阵按键 | test9_MatrixKeypad | | 实验9:单片机IO扩展-74HC165 | test10_MicrocontrollerIOExpansion_74HC165 | | 实验10:单片机IO扩展-74HC595 | test11_MicrocontrollerIOExpansion_74HC595 | | 实验11:LED点阵(点亮一个点) | test12_LEDDotMatrix_LightingSinglePoint | | 实验12:LED点阵(显示汉字) | test13_LEDDotMatrix_DisplayingChineseCharacters | | 实验13:直流电机 | test14_DCMotor | | 实验14:步进电机 | test15_StepperMotor | | 实验15:外部中断0 | test16_ExternalInterrupt0 | | 实验16:外部中断1 | test17_ExternalInterrupt1 | | 实验17:定时器0中断 | test18_Timer0Interrupt | | 实验18:定时器1中断 | test19_Timer1Interrupt | | 实验19:交通灯 | test20_TrafficLight | | 实验20:NE555脉冲发生器 | test21_NE555PulseGenerator | | 实验21:串口通信 | test22_SerialCommunication | | 实验22:RS485通信 | test23_RS485Communication | | 实验23:EEPROM-IIC | test24_EEPROM_I2C | | 实验24:DS18B20温度传感器 | test25_DS18B20TemperatureSensor | | 实验25:DS1302时钟 | test26_DS1302Clock | | 实验26:红外通信 | test27_InfraredCommunication | | 实验27.1:AD模数转换-光敏电阻 | test28_Photoresistor_ADC | | 实验27.2:AD模数转换-外部输入 | test29_ExternalInput_ADC | | 实验27.3:AD模数转换-热敏电阻 | test30_Thermistor_ADC | | 实验27.4:AD模数转换-电位器 | test31_Potentiometer_ADC | | 实验28:DA数模转换 | test32_DigitalToAnalogConversion_DAC | | 实验29:LCD1602液晶 | test33_LCD1602Display | | 实验30.1:LCD12864液晶-刷屏 | test34_LCD12864FloodTheScreen | | 实验30.2:LCD12864液晶-显示图片 | test35_LCD12864DisplayShowImg | | 实验30.3:LCD12864液晶-显示文字 | test36_LCD12864DisplayShowText | | 实验31:TFT彩屏 | test37_TFTColorScreen | | 实验32:DS1302时钟LCD1602显示(可以按键设置时钟) | test38_DS1302ClockWithLCD1602Display | | 实验33:LCD1602滚动显示 | test39_LCD1602ScrollDisplay | | 实验34:LCD1602显示红外值 | test40_LCD1602DisplayInfraredValue | | 实验35:LCD1602显示矩阵按键键值 | test41_LCD1602DisplayMatrixKeypadKeyValue | | 实验36:LCD显示温度+串口接收温度 | test42_LCDDisplayTemperature_SerialPortReceiveTemperature | | 实验37:LED流水+定时器 | test43_LEDRunningLight_Timer | | 实验38:按键控制蜂鸣器 | test44_ButtonControlBuzzer | | 实验39:按键控制数码管 | test45_ButtonControlSevenSegmentDisplay | | 实验40:定时器秒表(查询方式) | test46_TimerStopwatch_PollingMethod | | 实验41:蜂鸣器音乐之八月桂花 | test47_BuzzerMusic_AugustOsmanthus | | 实验42:矩阵按键数码管移位显示 | test48_MatrixKeypadSevenSegmentDisplayShift | | 实验43:门铃设计 | test49_DoorbellDesign | | 实验44:秒表 | test50_Stopwatch | | 实验45:音乐播放器 | test51_MusicPlayer | # 6 其它 > 学习板是HC6800-EM3 V3.0,这款貌似停产了,差异对比看doc/EM3_V3.0原理图.pdf 实验过程一些截图和视频参见论坛: [使用普中51学习板重新学一遍Ai8051U记录贴](https://www.stcaimcu.com/forum.php?mod=viewthread&tid=11533&pid=117085&page=3&extra=#pid117085) # 7 附录 ## 7.1 实验接线图 > 实验1:点亮第一个LED@test1_LightingUpFirstLED ![接线图](doc/普中官方例程/基础实验例程/实验1:点亮第一个LED/接线图.jpg) > 实验2:LED闪烁@test2_BlinkingLED ![接线图](doc/普中官方例程/基础实验例程/实验2:LED闪烁/接线图.jpg) > 实验3:LED流水灯@test3_LEDRunningLight ![接线图](doc/普中官方例程/基础实验例程/实验3:LED流水灯/接线图.jpg) > 实验4:蜂鸣器@test4_Buzzer ![接线图](doc/普中官方例程/基础实验例程/实验4:蜂鸣器/接线图.jpg) > 实验5:继电器@test5_Relay ![接线图](doc/普中官方例程/基础实验例程/实验5:继电器/接线图.jpg) > 实验5:静态数码管显示@test6_StaticSevenSegmentDisplay ![接线图](doc/普中官方例程/基础实验例程/实验5:静态数码管显示/接线图.jpg) > 实验6:动态数码管显示@test7_DynamicSevenSegmentDisplay ![接线图](doc/普中官方例程/基础实验例程/实验6:动态数码管显示/接线图.jpg) > 实验7:独立按键@test8_IndependentKey ![接线图](doc/普中官方例程/基础实验例程/实验7:独立按键/接线图.jpg) > 实验8:矩阵按键@test9_MatrixKeypad ![接线图](doc/普中官方例程/基础实验例程/实验8:矩阵按键/接线图.jpg) > 实验9:单片机IO扩展-74HC165@test10_MicrocontrollerIOExpansion_74HC165 ![接线图](doc/普中官方例程/基础实验例程/实验9:单片机IO扩展--74HC165/接线图.jpg) > 实验10:单片机IO扩展-74HC595@test11_MicrocontrollerIOExpansion_74HC595 ![接线图](doc/普中官方例程/基础实验例程/实验10:单片机IO扩展--74HC595/接线图.jpg) > 实验11:LED点阵(点亮一个点)@test12_LEDDotMatrix_LightingSinglePoint ![接线图](doc/普中官方例程/基础实验例程/实验11:LED点阵(点亮一个点)/接线图.jpg) > 实验12:LED点阵(显示汉字)@test13_LEDDotMatrix_DisplayingChineseCharacters ![接线图](doc/普中官方例程/基础实验例程/实验12:LED点阵(显示汉字)/接线图.jpg) > 实验13:直流电机@test14_DCMotor ![接线图](doc/普中官方例程/基础实验例程/实验13:直流电机/接线图.jpg) > 实验14:步进电机@test15_StepperMotor ![接线图](doc/普中官方例程/基础实验例程/实验14:步进电机/接线图.jpg) > 实验15:外部中断0@test16_ExternalInterrupt0 ![接线图](doc/普中官方例程/基础实验例程/实验15:外部中断0/接线图.jpg) > 实验16:外部中断1@test17_ExternalInterrupt1 ![接线图](doc/普中官方例程/基础实验例程/实验16:外部中断1/接线图.jpg) > 实验17:定时器0中断@test18_Timer0Interrupt ![接线图](doc/普中官方例程/基础实验例程/实验17:定时器0中断/接线图.jpg) > 实验18:定时器1中断@test19_Timer1Interrupt ![接线图](doc/普中官方例程/基础实验例程/实验18:定时器1中断/接线图.jpg) > 实验19:交通灯@test20_TrafficLight ![接线图](doc/普中官方例程/基础实验例程/实验19:交通灯/接线图.jpg) > 实验20:NE555脉冲发生器@test21_NE555PulseGenerator ![接线图](doc/普中官方例程/基础实验例程/实验20:NE555脉冲发生器/接线图.jpg) > 实验21:串口通信@test22_SerialCommunication 不需要接线,usb插上打开串口即可,波特率默认115200 > 实验22:RS485通信@test23_RS485Communication ![接线图](doc/普中官方例程/基础实验例程/实验22:RS485通信/接线图.jpg) > 实验23:EEPROM-IIC@test24_EEPROM_I2C ![接线图](doc/普中官方例程/基础实验例程/实验23:EEPROM-IIC/接线图.jpg) > 实验24:DS18B20温度传感器@test25_DS18B20TemperatureSensor ![接线图](doc/普中官方例程/基础实验例程/实验24:DS18B20温度传感器/接线图.jpg) > 实验25:DS1302时钟@test26_DS1302Clock ![接线图](doc/普中官方例程/基础实验例程/实验25:DS1302时钟/接线图.jpg) > 实验26:红外通信@test27_InfraredCommunication ![接线图](doc/普中官方例程/基础实验例程/实验26:红外通信/接线图.jpg) > 实验27.1:AD模数转换-光敏电阻@test28_Photoresistor_ADC ![接线图](doc/普中官方例程/基础实验例程/实验27:AD模数转换/光敏电阻AD值/接线图.jpg) > 实验27.2:AD模数转换-外部输入@test29_ExternalInput_ADC ![接线图](doc/普中官方例程/基础实验例程/实验27:AD模数转换/外部输入AD值/接线图.jpg) > 实验27.3:AD模数转换-热敏电阻@test30_Thermistor_ADC ![接线图](doc/普中官方例程/基础实验例程/实验27:AD模数转换/热敏电阻AD值/接线图.jpg) > 实验27.4:AD模数转换-电位器@test31_Potentiometer_ADC ![接线图](doc/普中官方例程/基础实验例程/实验27:AD模数转换/电位器AD值/接线图.jpg) > 实验28:DA数模转换@test32_DigitalToAnalogConversion_DAC ![接线图](doc/普中官方例程/基础实验例程/实验28:DA数模转换/接线图.jpg) > 实验29:LCD1602液晶@test33_LCD1602Display ![接线图](doc/普中官方例程/基础实验例程/实验29:LCD1602液晶/接线图.jpg) > 实验30.1:LCD12864液晶-刷屏@test34_LCD12864FloodTheScreen ![接线图](doc/普中官方例程/基础实验例程/实验30:LCD12864液晶/刷屏/接线图.jpg) > 实验30.2:LCD12864液晶-显示图片@test35_LCD12864DisplayShowImg ![接线图](doc/普中官方例程/基础实验例程/实验30:LCD12864液晶/显示图片/接线图.jpg) > 实验30.3:LCD12864液晶-显示文字@test36_LCD12864DisplayShowText ![接线图](doc/普中官方例程/基础实验例程/实验30:LCD12864液晶/显示文字/接线图.jpg) > 实验31:TFT彩屏@test37_TFTColorScreen ![alt text](img/TFT.jpg) > 实验32:DS1302时钟LCD1602显示(可以按键设置时钟)@test38_DS1302ClockWithLCD1602Display ![接线图](doc/普中官方例程/中级实验例程/实验32.DS1302时钟LCD1602显示(可以按键设置时钟)/接线图.jpg) > 实验33:LCD1602滚动显示@test39_LCD1602ScrollDisplay ![接线图](doc/普中官方例程/中级实验例程/实验33.LCD1602滚动显示/接线图.jpg) > 实验34:LCD1602显示红外值@test40_LCD1602DisplayInfraredValue ![接线图](doc/普中官方例程/中级实验例程/实验34.LCD1602显示红外值/接线图.jpg) > 实验35:LCD1602显示矩阵按键键值@test41_LCD1602DisplayMatrixKeypadKeyValue ![接线图](doc/普中官方例程/中级实验例程/实验35.LCD1602显示矩阵按键键值/接线图.jpg) > 实验36:LCD显示温度+串口接收温度@test42_LCDDisplayTemperature_SerialPortReceiveTemperature ![接线图](doc/普中官方例程/中级实验例程/实验36.LCD显示温度+串口接收温度/接线图.jpg) > 实验37:LED流水+定时器@test43_LEDRunningLight_Timer ![接线图](doc/普中官方例程/中级实验例程/实验37.LED流水+定时器/接线图.jpg) > 实验38:按键控制蜂鸣器@test44_ButtonControlBuzzer ![接线图](doc/普中官方例程/中级实验例程/实验38.按键控制蜂鸣器/接线图.jpg) > 实验39:按键控制数码管@test45_ButtonControlSevenSegmentDisplay ![接线图](doc/普中官方例程/中级实验例程/实验39.按键控制数码管/接线图.jpg) > 实验40:定时器秒表(查询方式)@test46_TimerStopwatch_PollingMethod ![接线图](doc/普中官方例程/中级实验例程/实验40.定时器秒表(查询方式)/接线图.jpg) > 实验41:蜂鸣器音乐之八月桂花@test47_BuzzerMusic_AugustOsmanthus ![接线图](doc/普中官方例程/中级实验例程/实验41.蜂鸣器音乐之八月桂花/接线图.jpg) > 实验42:矩阵按键数码管移位显示@test48_MatrixKeypadSevenSegmentDisplayShift ![接线图](doc/普中官方例程/中级实验例程/实验42.矩阵按键数码管移位显示/接线图.jpg) > 实验43:门铃设计@test49_DoorbellDesign ![接线图](doc/普中官方例程/中级实验例程/实验43.门铃设计/接线图.jpg) > 实验44:秒表@test50_Stopwatch ![接线图](doc/普中官方例程/中级实验例程/实验44.秒表/接线图.jpg) > 实验45:音乐播放器@test51_MusicPlayer ![接线图](doc/普中官方例程/中级实验例程/实验45.音乐播放器/接线图.jpg)