- 打卡等级:初来乍到
- 打卡总天数:1
- 最近打卡:2024-12-01 08:47:49
已绑定手机
新手上路
- 积分
- 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();
}
将这一段代码添加到主循环中即可实现不停电下载。
|
|