诱惑太大!我要学Ai8051U单片机
<p>STC又搞活动了,学习《Ai8051U教学视频》发表七集以上学习心得 ,送强大的 Ai8051U实验箱!<br />今天看了《8051U深度入门到32位51大型实战视频》第一集。 知道Ai8051U比以往的单片机强,没想到经冲哥一讲才知道那不是一般的强是超级的强!<br />
Ai8051U,USB 型同时支持32位和8位指令集,管脚兼容天王级别的89C52RC,12C5A60S2<br />
,用 KeilC51/IAR/SDCC 编译器===就相当于更强大的 8H8K64U。用 Keil C251 编译器,双核兼容设计===就相当于更强大的 32G12K128, 32G8K64。<br />
34K的SRAM(2K edata, 32K xdata), 64K的Flash<br />
TFPU@120MHz, 硬件浮点/硬件三角函数 运算器<br />
DMA支持PWM, DMA支持外设直接到外设, P2P<br />
120MHz-PWM支持硬件移相,16位PWM; 真12位ADC<br />
USB, 4组串口,12位ADC, 轨到轨比较器<br />
QSPI, SPI, I2S, I2C, TFT-i8080/M6800 接口<br />
PDIP40,LQFP44,LQFP48等<br />
通过视频冲哥用他通俗易懂的讲解风格演示了<br />
1.屏幕显示和视频播放(flash编程器)<br />
2.IIS录放音<br />
3.PWM_DMA<br />
4.频谱分析仪(上位机)<br />
5.手写计算器<br />
6.QSPI,PWM移相,硬件乘除,单精度浮点等让我们知道了8051U强在哪里。<br />
新的一轮学习开始了,哪怕梦想让我们拼的遍体鳞伤,这一次我们也要勇往直前</p>
欢迎入坑。。。 <p>最近太忙,入坑一个多星期。才有空继续《8051U深度入门到32位51大型实战视频》的学习。今天是第二集《硬件及工具介绍》。<br />
Ai8051U实验箱和之前的STC8,32系列的实验箱一样便携美观。该实验箱为方便学习Ai8051U设计了众多的输入输出多功能接口。加上STC官网配套提供的软件和例程包。是我们学习单片机的不二选择。<br />
<img src="data/attachment/forum/202412/16/120933fi7zi4v7s5cll4ss.png" alt="图片1.png" title="图片1.png" /></p>
<p>通过看视频,冲哥的详细讲解让我们已经初步认识了Ai8051U实验箱,知道了怎么下载安装工具软件和例程。使我们能快速上手Ai8051U。谢谢了!哪怕梦想让我们拼的遍体鳞伤,这一次我们也要勇往直前</p>
<p>今天学习第三集《点亮第一颗LED》<br />
1.创建一个工程 按照手册6.5章节的提示非常方便。</p>
<p>2.添加头文件 利用ISP软件,按照手册6.4章节的提示也可以顺利完成</p>
<p>3.输入如下代码,并编译就可以实现点亮一颗LED了。</p>
<p><img src="data/attachment/forum/202412/18/094345ml0lz0f7leqefzef.jpg" alt="微信图片_20241218093839.jpg" title="微信图片_20241218093839.jpg" /></p>
<p>还有如何配置IO口也很重要,目前都设置为准双向口。用STC的ISP软件中的IO配置工具打勾,复制,粘贴非常方便。</p>
<p>今天学习第四集《USB不停电下载》<br />
上一课点亮了LED。那么在学习编译程序的时候如何实现USB不停电下载,今天的课程就告诉我们去实现。首先下载所需文件(STC官网-软件工具-库函数-USB库文件)然后.移植关键部分到工程:1,添加头文件,2,USB初始化函(lib+.h库实现)3,命令参数4, 打开P_SW2寄存器和IE2寄存器(只打开一个位!)<br />
<img src="data/attachment/forum/202412/19/104423occcbewfotazt5xz.jpg" alt="微信图片_20241219104323.jpg" title="微信图片_20241219104323.jpg" /></p>
<p>过去用过一些51的单片机,需要串口转USB还得要编程器。现在STC8051系列单片机,实现了不用需要编程器,不用断电,甚至不需要按复位,解放双手,修改编译后还能自动下载。真的好用!</p>
{:4_245:} <p>今天学习第五集《C语言基础》<br />
我们现在虽然在用C语言编程,但基础并不是那么牢固。那么恶补一下C语言给我们往上提一提很有必要。今天讲的内容对我们在应用AI8051实现 USB-CDC串口之printf函数更为必要。<br />
通过学习我们知道了首先要打开USB库中的PRINTF_HID宏定义(去掉//)然后要理解PRINTF的函数原型的定义#defineprintfprintf_hidint printf_hid (const char *fmt, ...);参数fmt -- 是格式控制字符串,包含了两种类型的对象:普通字符和转换说明 。普通字符:在输出时,普通字符将原样不动地复制到标准输出。;转换说明:不直接输出,用于控制 printf 中参数的转换和打印。每个转换说明都由一个百分号字符(%)开始,以转换说明符结束,从而说明输出数据的类型、宽度、精度等。转换说明则有:<br />
1.类型:根据不同的 fmt 字符串,函数可能需要一系列的附加参数,每个参数包含了一个要被插入的值,替换了 fmt 参数中指定的每个 % 标签。关于附加参数,既可以是变量,也可以是常量。2.位置:printf()函数的普通字符和转换说明放在" "双引号内,附加参数放在双引号外,每个附加参数之间用逗号隔开。3.数量:printf() 的附加参数与转换说明符是一一对应关系,如果有 n 个转换说明符, printf() 的参数就应该有 n + 1 个。如果参数个数少于对应的转换说明符,printf() 可能会输出内存中的任意值。<br />
数的进制:2进制、10进制、16进制以及数据的基本类型比较简单好懂。<br />
C语言常用运算符尤其是逻辑运算符有点难记。于是我把他保存起来了,便于查询。</p>
<p><img src="data/attachment/forum/202412/23/163115c282u992py9b8ypm.png" alt="图片6.png" title="图片6.png" /></p>
<p><img src="data/attachment/forum/202412/23/163151hyivag66ttmta71t.png" alt="图片7.png" title="图片7.png" /></p>
今天学习第6集《IO输入输出》
I 英文单词输入的头字母,O 英文单词输出的头字母。GPIOGPIO(General Purpose I/O Ports)意思为通用输入/输出端口,在学习第二课时我们知道AI8051U最多有45个IO口。可以通过它们输出高低电平或者读入引脚的状态-是高电平或是低电平。是我们与单片机交流的通道。
通过这一课的学习我们要知道什么是高电平,什么是低电平。IO口有4种工作模式以及如何选择。重点是如何正确读取按键的高低电平,掌握按键消抖的方法。
下面是课后任务1:按一下P32按钮灯亮,按一下P33按钮灯灭;
前面的代码省略....
if( P32 == 0 ) //判断P32按钮是否按下
{
Delay20ms(); //延时20ms消抖
if( P32 == 0 )
{
P00 = 0;
}
}
else if ( P33 == 0 ) //判断P32按钮是否按下
{
Delay20ms(); //延时20ms消抖
if( P33 == 0 )
{
P00 = 1;
}
}
今天学习第7集《定时器中断》
冲哥讲定时器用了一个小案例通俗的介绍了定时器的作用,又讲清楚定时器中中断的问题。使我们知道定时器 (1) 用于计时系统,可实现软件计时,或者使程序每隔一固定时间完成一项操作 (2) 替代长时间的Delay,提高程序的运行效率和处理速度。定时器中断可以打断主循环,在程序执行多项任务时可以正常实现定时程序。
定时器的应用首先初始化
void Timer0_Init(void) //500毫秒@24.000MHz
{
TM0PS = 0x0F; //设置定时器时钟预分频
AUXR &= 0x7F; //定时器时钟12T模式
TMOD &= 0xF0; //设置定时器模式
TL0 = 0xDC; //设置定时初始值
TH0 = 0x0B; //设置定时初始值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
ET0 = 1; //使能定时器0中断
}
按图上步骤一步一步就可以帮助我们尽快掌握定时器的编程。
今天学习第8集《定时器周期性调度任务》
定时器一次只能定时一次,如果我有很多个定时任务怎么办.
定时器周期性调度任务正好可以帮助我们解决这个问题。
这一集通过1.周期性任务介绍 2.文件的创建(.c和.h)3.结构体的介绍4.结构体数组的周期性任务调度。简明巧妙的穿插的了如何创建数组的知识点、如何使用for循环语句和.c和.h文件的创建以及结构体数组的定义和周期性任务调度等知识点。实现了任务1:用一个定时器实现,LED1实现0.3秒取反一次,LED2实现0.6秒取反一次,LED3 0.9秒取反一次。任务2:数组点亮LED,实现流水灯。任务3:按键1按一下,LED通过数组移动一下等。
这是文件的创建(.c和.h)
创建程序文件三步1,新建文件并保 2,添加到工程 3,添加引用路径
这是结构体数组的周期性任务调度
1,都有定时器1ms加的变量 2,都有一个设定的计数目标3,都有需要执行的功能 4,定时时间到了才能执行
这一集知识点比较多,也非常重要。冲哥用了差不多1个半小时来讲解。比如英文的大小写,中英文的使用和分号的区别,还有函数定义,函数声明,函数的调用等特别是文件的创建和结构体数组的定义和周期性任务调度,必须反复学习,熟练掌握,融会贯通。