找回密码
 立即注册
查看: 299|回复: 1

打卡学习《8051U深度入门到32位51大型实战教学视频》

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-12-01 08:47:49
已绑定手机

1

主题

1

回帖

23

积分

新手上路

积分
23
发表于 2024-12-1 09:46:14 | 显示全部楼层 |阅读模式
本帖最后由 pieaafgo 于 2024-12-1 14:53 编辑

先说随便唠叨几句:STC的单片机越来越强大了,
刚开始玩单片机时学习的是8952RC后来接触到更强大的12C5A60S2,
15W和8H系列因为工作变动的原因基本没有接触过。
再次开始玩的时候已经是32G了,性能真的是强大。
芯片变成了32位,DMA的加入让驱动一些外设不再是负担(特别是彩屏和高分屏)。
下载方式也变的越来越简单。
学习连接:https://www.stcaimcu.com/forum.php?mod=viewthread&tid=11902
好以下开始打卡,因为是自学的编程,说的有错误的地方请多多包含

第一集:序言:大概讲解了一下8051U的基本功能,并做了一些演示。
1、彩屏和触摸屏的驱动,
2、IIS的录放音,
3、PWM—DMA驱动彩灯,
4、频谱仪,
5、手写AI计算器,
6、最后还演示了flash编程器,并将FLASH内内容极快的刷新到屏幕上,实现类似播放视频的效果。

第二集:硬件及工具介绍
1、开箱讲解,绍了主体,附件之类。并介绍了各个模块、接口的功能。
2、介绍了相应的代码编辑,下载软件,并介绍了头文件,插件,代码包的添加方式,
     并强调下课后自行查看实验箱使用说明书。
3、并演示如何第一次下载HEX。如何在软件上选择目标芯片,实验箱的操作,
     并打开代码包内查看需要的Fosc,并在下载软件中选择相应的频率。




1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-12-01 08:47:49
已绑定手机

1

主题

1

回帖

23

积分

新手上路

积分
23
发表于 2024-12-1 14:55:46 | 显示全部楼层
本帖最后由 pieaafgo 于 2024-12-2 13:08 编辑


第三集:点亮第一颗LED
1、视频讲述了新建工程的方法(我一般习惯于更改现有工程。此课程较为简单,简单过了)
①创建空工程(可以查看手册6.5的部分),②添加头文件(可以利用ISP软件),③输入代码并下载


#include "ai8051u.h"                //调用头文件

void main(void)

{
//因为新款单片机上电默认为高阻值输入,所以必须先配置IO状态。
        P0M0 = 0;                //P0端口(P00-P07)为准双向口
        P0M1 = 0;
       
        P4M0 = 0;                //P4端口为准双向口
        P4M1 = 0;       
       
        while(1)
        {
                P40 = 0;        //P40端口输出0V
                P00 = 0;        //P00端口输出0V
                P01 = 0;        //P01端口输出0V
        }
}


第四集:讲述了AI8051U的不停电下载功能//这是我最喜欢的功能,STC下载越来越简单了。原来不需要编程器,直接串口,断电上电即可,后来USB下载,现在实现了USB不停电下载!
1、实际演示不停电下载功能:简化代码的编写流程,代码编译完成后,直接下载,不需要手动操作软件与硬件
2、代码运行中,查询与中断的区别。查询就是等代码运行到此处时才运行,中断就是符合相应条件,即可运行。
3、使用USB不停电下载需要一个*.lib文件,是一个加密文件,他人无法查看与修改。
具体移植流程为:
①:添加头文件,②:USB初始化函数,③:添加命令参数④打开相应寄存器
其中③中需要的代码:

//命令:
char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";//@STCISP#相当于软件给单片机发送的口令,用于单片机复位到下载程序的状态。

添加至文件前部
④中:
在mian函数中添加

    P_SW2 |= 0x80;                //B7位写1,使能访问XFR

用于使能访问XFR寄存器,因为USB操作的相关寄存器都在XFR中


    IE2 |= 0x80;                  //使能USB中断
    EA = 1;                                //IE |= 0X80;

EA = 1;(使用IE |= 0X80效果一致)相当于中断总开关,之后打开后才能让各项中断运行。否则即使有中断也不运行中断中内容。
IE2 |= 0x80;  //打开USB中断的开关。相当于分开关,单独控制某一个中断


    while (DeviceState != DEVSTATE_CONFIGURED);     //等待USB完成配置

等待USB完成配置后在运行用户代码,否则代码会运行异常。

在主循环中添加:

        if (bUsbOutReady)//将从USB接收到的代码原样发回,实现不停电下载
        {
            USB_SendData(UsbOutBuffer,OutNumber);   //发送数据缓冲区,长度(接收数据原样返回, 用于测试)
            
            usb_OUT_done();
        }

将这一段代码添加到主循环中即可实现不停电下载。
回复 支持 1 反对 0

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-9 02:16 , Processed in 0.119551 second(s), 51 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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