
AI8051开发板
简介
本项目主要以AI8051U核心设计的学习开发板。功能涵盖OLED、ESP-01s、1.3TFT、DS18B20、Internet、SMG、蓝牙(HC08)、NTC、Smart_home等等..
简介:本项目主要以AI8051U核心设计的学习开发板。功能涵盖OLED、ESP-01s、1.3TFT、DS18B20、Internet、SMG、蓝牙(HC08)、NTC、Smart_home等等..开源协议
:GPL 3.0
(未经作者授权,禁止转载)描述
视频链接:
[B站视频--功能演示及介绍](【AI8051U开源电子设计】 https://www.bilibili.com/video/BV1rqqaYtEtA/?share_source=copy_web&vd_source=27fc3cbf0bc0696952e9dd1a08a25f64)
项目简介
本项目主要以AI8051U为核心设计的学习开发板。功能涵盖OLED、ESP-01s、DS18B20、Internet_UART、蓝牙(HC08)、WiFi_smart_home、NTC、1.3TFT、AT24C02、SMG数码管、DTH11、独立按键等等适合初学者在探索AI8051U单片机路途上不缺乏新鲜感而且常用的开发拓展板。
项目功能
本开发板分为15个学习模块:
一、开发板可实现的功能:
1.DHT11模块电路可以为使用者开发环境变化项目使用的传感器;
2.ADC电位器电路可以让使用者对AI8051U单片机的模拟输入有一定的学习了解;
3.Internet_UART部分可以连接RJ45网络进行单片机与外部网络进行通信学习;
4.TF部分可以方便单片机存储图片等超过AT24C02等这种容量;
5.独立按键电路可以让初学者对机械变化有一定的了解;
6.OLED可以提供各个项目的可视化界面显示,让项目更直观;
7.ESP-01S射频电路可以完成两个单片机之间的数据传输;
8.NTC测温部分,为初学者提供温控ADC开发;
9.1.3寸彩色TFT可以以多彩显示,让项目更具可观性;
10.红外部分提供初学者对遥控短距离开发学习;
11.DAC电路提供了两种串行通信IIC和SPI,让初学者可以综合学习;
12.DS18B20温度电路可以为初学者学习多节点温度采集项目;
13.ESP8266 WiFi电路可以让单片机向网络获取数据,更好的学习智能家居和远程控制等项目的学习;
14.AT24C02存储电路,可以让初学者学习掉电存储一些小量信息;
15.智能家居部分可以通过Esp-01s接入云平台,也可以通过internet部分进行外部控制;
原理解析(硬件说明)
本项目由(图1)以下部分组成,数字温湿度部分、OLED显示部分、主控AI8051U部分、按键识别部分、无线通信部分、Internet_UART、WiFi等等,本项目主要是通过各个部分可以组成不同项目功能并且给初学者学习更多项目开发。
图1
举例:
图2--1.3寸TFT显示电路:
采用IIC通信1.3寸TFT液晶屏的设计电路主要包括驱动电路和控制电路。驱动电路负责为屏幕提供所需的电压和信号,以控制每个像素的亮度和颜色;控制电路则通过微控制器实现对显示内容的更新和切换。整个设计确保显示效果稳定、高效,适用于各类嵌入式应用。
图2
图4--Internet电路:
采用CH9120芯片设计,可以方便通过PC端或者TCP通信端与单片机之间通信,同时单片机也可以访问外网的资源;极大增强的单片机的控制范围,也让信息可以传递更为广泛;
图3
软件代码
注:源码文件均在附件栏,会持续更新!
挑选举例
1.3寸TFT显示
TFT部分主要体现为驱动显示以及缓存刷新;
LCD_Init();//LCD初始化
LCD_Fill(0,0,LCD_W,LCD_H,WHITE);
EA = 1;
while(1)
{
smg_display();
LCD_Fill(0,0,LCD_W,LCD_H,WHITE);
LCD_ShowChinese(0,0,"电信创新室",RED,WHITE,32,0);
LCD_ShowString(0,40,"LCD_W:",RED,WHITE,16,0);
LCD_ShowIntNum(48,40,LCD_W,3,RED,WHITE,16);
LCD_ShowString(80,40,"LCD_H:",RED,WHITE,16,0);
LCD_ShowIntNum(128,40,LCD_H,3,RED,WHITE,16);
LCD_ShowString(80,40,"LCD_H:",RED,WHITE,16,0);
LCD_ShowString(0,70,"Dian Xin technology!",RED,WHITE,16,0);
//LCD_ShowFloatNum1(128,70,t,4,RED,WHITE,16);
t+=0.11;
delay_ms(3000); // 1~65535 ms
for(i=0; i<3200; i++) DisTmp[i] = Image_1[i]; //将图片装载到显存
for(j=0; j<6; j++) //6行图片, 整屏36个图片 @40MHz FIFOEN=1, SS_HOLD=0时55ms @2T
{
for(i=0; i<6; i++) //一行6个图片
{
LCD_ShowPicture(40*i, j*40, 40, 40, DisTmp); //触发SPI DMA显示一个图片, 3200字节 1.52ms @40MHz
}
}
delay_ms(3000); // 1~65535 ms
for(i=0; i<3200; i++) DisTmp[i] = Image_2[i]; //将图片装载到显存
for(j=0; j<6; j++) //6行图片, 整屏36个图片 @40MHz FIFOEN=1, SS_HOLD=0时55ms @2T
{
for(i=0; i<6; i++) //一行6个图片
{
LCD_ShowPicture(40*i, j*40, 40, 40, DisTmp); //触发SPI DMA显示一个图片, 3200字节 1.52ms @40MHz
}
}
DS18B20&OLED
OLED&DS18B20部实时刷新温度显示;
main.c
UartInit();
OLED_Init();
while(1)
{
if(B_1ms) //1ms到
{
B_1ms = 0;
if(++msecond >= 300) //300ms到
{
msecond = 0;
Temp = ReadTemperature();
OLED_ShowCHinese(32,1,0);
OLED_ShowCHinese(48,1,1);
OLED_ShowChar(64,1,':',16);
OLED_ShowNum(72,1,(float)Temp/10,2,16);
printf("%0.1f\r\n",(float)Temp/10); //串口打印温度值
}
}
实物图
完整实物图
图1:正面图
设计图

BOM


评论