找回密码
 立即注册
查看: 694|回复: 7

新手学习打卡

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-01-17 14:34:07
已绑定手机

1

主题

7

回帖

43

积分

新手上路

积分
43
发表于 2025-1-12 18:33:08 | 显示全部楼层 |阅读模式
第一集
1.8051U的优势
屏幕显示(8位并口,刷频率高)·和视频播放(串行flash编程器)
Iis录放音(脱离录放音模块)
PWM_DMA(ws2812点阵屏幕显示,不会有干扰)
频谱分析仪(上位机isp显示fft图像)
手写计算机(类ai)
QSPI,PWM移相,硬件乘除,单精度浮点
兼容早期89C52,12C5A60S2等芯片
兼容8位32位8051指令集
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-01-17 14:34:07
已绑定手机

1

主题

7

回帖

43

积分

新手上路

积分
43
发表于 2025-1-12 18:40:52 | 显示全部楼层
1.硬件部分。
正面
截图202501171559165279.jpg
反面
截图202501171600092143.jpg
2. 软件部分
截图202501171601165886.jpg
file:///C:/Users/GUOTAI~1/AppData/Local/Temp/ksohtml22604/wps3.jpg
Kile:用于编程
Isp:下载程序到单片机中。(推荐新版)

修改irc频率:在文件中有定义
USB 下载方法 一P3.2 按键,再结合停电上电 进自带USB直接下载
1、按下板子上的 P3.2/INT0 按键,就是 P3.2 接地
2、给目标芯片重新上电,不管之前是否已通电。
---电子开关是按下停电后, 再松开就是上电
    等待电脑端 ISP 下载软件中自动识别出“(HID1) USB Writer”后,
   就与 P3.2 状态无关了,这时可以松开 P3.2 按键
   (P3.2 在用户程序区可做其它任意用途)
---传统的机械自锁紧开关是按上来停电,按下去是上电
3,点击电脑端下载软件中的【下载/编程】按钮
     (注意:USB 下载与串口下载的操作顺序不同)
下载进行中,几秒钟后,提示下载成功!

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-01-17 14:34:07
已绑定手机

1

主题

7

回帖

43

积分

新手上路

积分
43
发表于 2025-1-13 20:37:12 | 显示全部楼层
第二集
新建工程,选择芯片,添加源文件之类的操作不再赘述
8051模式设置
截图202501171630006983.jpg
下拉模式
截图202501171630151140.jpg
当代码超过64k时
截图202501171630378687.jpg
HEX文件设置
超过64K选386,没超过则选择80
打勾生成hex文件
截图202501171631036772.jpg
头文件<>与””
<>:系统路径文件
“”:当前目录文件再到系统路径文件
利用ips生成底层.h文件


屏幕截图 2025-01-17 163130.png
IO口设置
截图202501171632108827.jpg
P0M0与P0M1直接配置p0口的脚的模式
截图202501171632255536.jpg
Isp配置io口



截图202501171632397896.jpg
截图202501171630242318.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-01-17 14:34:07
已绑定手机

1

主题

7

回帖

43

积分

新手上路

积分
43
发表于 2025-1-15 15:56:12 | 显示全部楼层
第四集

USB不掉电下载
截图202501171633393467.jpg
稳定高效采用查询模式
移植过程
1.先复制头文件
(.lib由.c与.h组成,且不能打开修改,方便快速移植)
截图202501171633592868.jpg

2.再复制.h文件
截图202501171634443302.jpg
3.        添加文件
截图202501171634524361.jpg
4.        添加.h文件
截图202501171635046825.jpg
5.        添加初始化以及一些命令
截图202501171635151997.jpg
截图202501171635251106.jpg


截图202501171636308543.jpg

屏蔽未调用函数的方法
在魔术棒中的L251 Miso警告位置输入57

截图202501171637043624.jpg
截图202501171635372962.jpg
截图202501171635565435.jpg
截图202501171636138262.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-01-17 14:34:07
已绑定手机

1

主题

7

回帖

43

积分

新手上路

积分
43
发表于 2025-1-16 20:13:16 | 显示全部楼层
第五集
c语言基础
1.使用printf
去掉stc32_stc8_usb.h引用头文件的//

2.常用转义符
Isp串口使用注意接收信息模式。
3.数据的基本类型
4.基本运算符
Tip:%%表示%

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-01-17 14:34:07
已绑定手机

1

主题

7

回帖

43

积分

新手上路

积分
43
发表于 2025-1-16 21:17:55 | 显示全部楼层
第六集
什么是GPIO?
输入输出端口,高电平电压=VCC,低电平=GND,VCC<5.5,高电平电压<VDD+0.3

分为四种模式:准双向口,推挽输出,高阻输入,开漏模式。

灌电流:外接VCC
拉电流:外接GND

一般用准双向口。

输出默认打开施密特触发器
低电平<1.07,高电平>1.18
练习:按键输入检测
Tip;定义变量要放在赋值与宏定义之间
注意按键会有电压抖动(大约在20ms以内)
使用延时时为需加入三句代码
WTST=0;//设置程序指令延时参数
EAXFR=1;//拓展寄存器(XFR)访问使能
CKCON=0;//提高访问XRAM速度
延时中的_nop_();函数调用需要声明头文件“intrins.h”
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-01-17 14:34:07
已绑定手机

1

主题

7

回帖

43

积分

新手上路

积分
43
发表于 2025-1-16 23:14:29 | 显示全部楼层
第7集
定时器主要能打断主循环完成特定功能。
1.使用ips生成需要的定时初始化函数
Tip:选择12分频。
2.中断服务函数(后面加interrupt  中断号)
串口打印时出现乱码在乱码后加/xfd就能正常使用。
0Xfd,0xfe,0xff,字符编码在编译过程中会被跳过
解决办法:在0xfd后加0xfd


具体配置内容
TM0PS+1
定时器放慢倍数(分频)
AUXR
寄存器进行12分频或者1分频

TMOD
主要用c/t用于计数或是计时。
GATE是否用外部脚控制(基本不用)
模式设置。

TH0与TL0
存储计时
TF0:允许中断

函数的定义,声明,调用
返回值类型 函数名(入口参数)
{
//函数体
//函数执行代码
return返回值
}
声明
要在使用的地方前写
返回值类型 函数名(入口参数);
调用
返回值类型 函数名(入口参数)
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-01-17 14:34:07
已绑定手机

1

主题

7

回帖

43

积分

新手上路

积分
43
发表于 2025-1-18 20:39:33 | 显示全部楼层
第八集
周期性调度任务
为防止延时太多拖慢cpu运行速度所以用定时很小的定时器代替
基本框架
定时器
截图202501182039542996.jpg
主函数
截图202501182040009072.jpg
数组使用
1.定义
   类型 名称[长度]={数组};
2.使用
   赋值:名称[索引]=数值;
For的使用
   For(i=初值;判断条件(满足运行一遍{});运行一遍{}后运行的内容)
{

}
Eg  for(i=0;i<3;i++)
{

}
按键在按下后会卡在while()按下判断里影响其他程序并行运行。
按键函数优化
截图202501182040235959.jpg
截图202501182040388644.jpg

文件创建(.c和.h)
新建文件夹
添加到工程
添加引用路径
新建.c和.h文件格式要求
截图202501182040479152.jpg
框住部分注意大写
注意添加路径
截图202501182041298724.jpg
截图202501182041435978.jpg
结构体数组的周期性调度
Typedef struct
{
  u8 Run;          //任务状态:Run/Stop
  u16 TIMCount;    //定时器计数器
  u16 TRITime;      //重载计数器
  Void (*TaskHook)(void);     //任务函数
}TASK_COMPONENTS;

Static TASK_COMPONENTS Task_Comps[]=
{
//状态 计数 周期 函数
{  0,  1,  1,  执行功能}
{  0, 10, 10,   执行功能}

};
截图202501182038497276.jpg
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-30 13:24 , Processed in 0.130799 second(s), 84 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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