找回密码
 立即注册
查看: 1270|回复: 27

新手必读!新手必读!新手必读!新手必读!新手必读!新手必读!新手必读!新手必读!

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2025-3-26 11:47:01 | 显示全部楼层 |阅读模式
——新手问题汇总——

初始化先打开EAXFR:
代码:
P_SW2|=0x80;(8位、32位)
EAXFR=1;(32位)
因传统8051的SFR地址空间有限,新增的SFR位于xdata区域(XSFR),必须先打开EAXFR才能访问
XSFR和XDATA共用地址,只有访问62.5K以上的XDATA时才需要关闭EAXFR
现有型号,只要不是扩展了片外64K SRAM(外接并口SRAM芯片),初始化时果断先打开EAXFR,并且不需要再关闭,不要犹豫!
数据手册:
截图202503261149007692.jpg
截图202503261153591313.jpg
头文件:
截图202503261156474001.jpg

8G系列和更新的型号初始化必须先设置IO模式:

代码:
P0M0=0x00;        P0M1=0x00;
P1M0=0x00;        P1M1=0x00;
P2M0=0x00;        P2M1=0x00;
P3M0=0x00;        P3M1=0x00;
P4M0=0x00;        P4M1=0x00;
P5M0=0x00;        P5M1=0x00;
P6M0=0x00;        P6M1=0x00;
P7M0=0x00;        P7M1=0x00;
蓝色部分按需要设置,可以使用ISP软件上的IO配置工具
IO模式固定准双向:89C、90C
IO模式可设置,默认准双向:12C、11F、10F、15F、15W、8A、8F
IO模式可设置,默认高阻:8C、12H、8G、8H、32F、32G、8051U
IO默认高阻是防止上电瞬间“闪一下、响一声、动一下”的,初学者不要认为这是妨碍学习的设计
截图202503261143016006.jpg
截图202503261236591376.jpg

各种ISP下载问题:
建议使用官方下载工具,或使用官方开源方案自制下载器,不要使用第三方下载工具
官方下载工具及下载器方案免安装驱动(win10或以上),支持双串口同时下载通信仿真,自动断电上电,固件可更新,IO模式可设置
且TXD(S-RXD)不需要串二极管,冷启动断电期间IO强下拉确保可靠放电
如使用485下载等非要串二极管的应用场合,必须串低压降的肖特基二极管(压降0.2~0.3V),不能串普通硅二极管(压降0.6~0.7V),否则可能导致下载失败
官方下载工具及下载器方案有出厂预置常用频率的IRC参数,即使无外部晶振也能保证波特率精度高,可以满足动态调节IRC频率的要求
第三方下载工具一般为了节省成本无外部晶振,波特率误差较大,仅可满足串口通信要求(还是单串口不是双串口),不建议用于下载
还有需要安装驱动、无自动断电上电功能或自动断电上电功能不可靠、TXD推挽输出无法彻底放电等问题
动态调节IRC频率是根据串口波特率调节内部高频时钟频率的,除列表中的常用频率外,还可以自定义频率(手动输入)
如选择该选项,必须保证波特率精度高,否则会导致内部高频时钟频率误差大或下载失败
USB下载无法动态调节频率,只能使用内部预置频率

各种电源、基准、IO问题:
单片机任意脚都不能超过VCC、GND范围,否则外部信号会被钳位到电源轨正负一个PN结压降的范围,或电源轨漂移,甚至单片机被烧毁
如使用ADC,则VREF、AVCC、AGND一定不能悬空,否则ADC无法正常工作
VREF建议范围为2.4V~VCC,更低的电压会损失精度,mV级小信号必须外接低失调轨到轨运放放大,不能直接连接单片机的ADC
省电模式建议所有IO设置为高阻(外部电路是高阻输入且不允许开路的除外),并关闭数字输入(否则作为输入的IO在外部电平变化或处于临界状态时会产生额外功耗)
省电模式作为输出的IO,为了外部电路抗干扰,设置为高或低电平也可,状态需要与外部电平保持一致,电位相等才不会有漏电流
(如外接其他芯片,需要根据其他芯片内部有无上下拉电阻设置,如外部芯片的IO为高阻输入模式,IO建议设置为更不易被干扰的状态
(如IO(推挽模式)直接驱动N-MOS,为了防止上电瞬间意外导通一下(初始化前IO高阻),一般G极会接个10K~100K的下拉电阻,这种情况如需要进入省电模式还希望N-MOS抗干扰,IO就要设置为低电平)
省电模式如需外部32768晶振正常工作,晶振两个IO需要设置为高阻并关闭数字输入

各种中断问题:

打开的中断必须要有中断函数,哪怕是空的也行,否则硬件产生中断后,PC LJMP到中断向量处,无中断程序也无RETI,程序直接跑飞,导致意外死机或复位
中断频率不能过高,也不能在中断函数内执行耗时操作
如中断函数执行时间占比大于100%,中断还没退出就再次请求中断,就会卡在中断里一直循环出不来,主程序和优先级更低或查询次序靠后的中断会被阻塞
注意中断重入和互锁问题,此类逻辑错误可能导致各种异常

各种时钟问题
内部低频时钟(约32K)作为掉电唤醒定时器,出于低功耗考虑,无抗温飘压飘电路,精度较低,不能作为RTC时钟使用,RTC使用内部低频时钟仅供测试(看秒在走就是RTC正常工作),不要在实际运行时使用
外接晶振必须要先设置接晶振的IO口为高阻,然后打开晶振并等待频率稳定,否则用死循环等待时钟稳定会在这里卡死
内部高频时钟精度足够高,可以满足绝大多数应用场合,外部高频晶振易受干扰且对外电磁辐射大,无特殊要求没有理由使用外部高频晶振,支持追频的型号可外接32768晶振实时校准内部高频时钟

I2C问题
注意7位地址还是8位地址,7位地址不含读写位,8位地址含读写位

触摸按键问题:
只有对应手指的位置才允许有大面积连接单片机IO口的导体用于感应手指,不要既放个焊盘又焊个弹簧(那么大个焊盘跟谁感应呢?跟GND感应呢还是吸收干扰呢?)
触摸弹簧底下放个LED中间要透光的,直的弹簧肯定不行,起码得用喇叭口的,装上面板后喇叭口被压成平面,大概要四五圈,还有不要使用PWM驱动LED,避免干扰
截图202503261309317465.jpg

C语言、汇编语言、编译器、仿真问题:

包含startup.a51时,默认会初始化data(也是idata的低128字节)为0,xdata不操作为上电随机数;不包含startup.a51时,data和xdata为上电随机数
程序只能在函数内执行,全局变量禁止在声明时赋值,赋值的语句必须在函数内,函数外的非声明语句无效
数组可以在初始化时用memset函数全部清零(或其他初始化值)
养成好习惯,函数内的局部变量也不要声明时赋值,而且必须在函数开头声明
USB或UART仿真时,全速运行不能实时更新变量的值,因为USB或UART仿真是软件完成的,全速运行时CPU完全在执行用户程序,无法同时运行仿真程序,如此时运行仿真程序,就会影响用户程序的全速运行,所以不支持在全速运行时实时更新变量的值

——发帖须知——

提问:
希望得到准确的回复以解决问题,请提供具体分析所需的必要信息,包括原理图PDF和程序
原理图截图也可,请保证完整且清晰,不要使用手机拍屏幕
程序请提供可编辑的文本文件,不要截图或手机拍屏幕
受PCB设计影响较大的功能(如ADC和触摸按键)和可能存在生产、制造、结构、焊接等问题的,请提供PCB图或实物照片
其他需要提供的:单片机型号、版本、ISP软件版本、下载工具型号和版本、电源上下电波形、单片机供电电压电流、主时钟频率等硬件选项

学习打卡感悟:

每个人的学习打卡感悟请统一以回复的形式发到一个帖,不要发新帖,谢谢!

——全站导航链接和二维码——

官方网站:
https://www.stcai.com/
官网.png

官方论坛:
https://www.stcaimcu.com/
论坛.png

微信小程序:
小程序.png

论坛使用教程:
如何 贴图 ?如何 上传视频 ?如何 论坛注册 ?
论坛上传视频或分享B站视频的方法介绍
论坛发帖 专业编辑器, Markdown 使用语法参考

其他新手必读:
一灯大师,I/O口控制: LED点灯, 三极管, MOS管, 光耦, 继电器
省电模式,I/O口如何设置才省电,进入主时钟停振/省电模式前

其他链接:
如何扫码网上小量购买 单片机/烧录器/开发工具

——欢迎网友补充——




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

本帖被以下淘专辑推荐:

DebugLab
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:350
  • 最近打卡:2025-05-01 00:32:14
已绑定手机

130

主题

1520

回帖

1855

积分

金牌会员

积分
1855
发表于 2025-3-27 00:30:47 | 显示全部楼层
P_SW2|=0x80;
从来没有关过,一直开着的

点评

占楼淘理由:新手必读好帖!  发表于 2025-3-29 10:27
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:233
  • 最近打卡:2025-04-30 16:08:37

61

主题

818

回帖

1490

积分

金牌会员

积分
1490
发表于 2025-3-27 07:05:20 | 显示全部楼层
学习了
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:502
  • 最近打卡:2025-05-01 08:01:38
已绑定手机

1

主题

833

回帖

1441

积分

金牌会员

积分
1441
发表于 2025-3-27 08:55:13 | 显示全部楼层
都是很有用的知识点
靡不有初,鲜克有终
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:518
  • 最近打卡:2025-05-01 05:52:49
已绑定手机

46

主题

1694

回帖

2540

积分

金牌会员

积分
2540
发表于 2025-3-27 09:08:56 | 显示全部楼层
有用
回复

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:83
  • 最近打卡:2025-04-30 19:02:05
已绑定手机

0

主题

49

回帖

326

积分

中级会员

积分
326
发表于 2025-3-28 19:32:07 | 显示全部楼层
一直在学习,虽然年龄有点大
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:35
  • 最近打卡:2025-04-26 16:35:44

4

主题

39

回帖

184

积分

注册会员

积分
184
发表于 2025-3-29 08:03:41 | 显示全部楼层
看文案,像老姚的风格
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-04-28 05:55:34
已绑定手机

3

主题

24

回帖

333

积分

中级会员

积分
333
发表于 2025-3-29 09:18:47 | 显示全部楼层
都是新手容易犯的,或是说容易忽略错误,此贴帮助极大!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-04-28 05:55:34
已绑定手机

3

主题

24

回帖

333

积分

中级会员

积分
333
发表于 2025-3-29 09:21:52 | 显示全部楼层
ZRF19*** 发表于 2025-3-28 19:32
一直在学习,虽然年龄有点大

退休了!丰富退休生活,比打麻将强
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:320
  • 最近打卡:2025-04-30 11:29:16
已绑定手机

21

主题

487

回帖

1023

积分

金牌会员

积分
1023
发表于 2025-3-29 11:44:32 | 显示全部楼层
经验之笔,这里有些坑我是踩过了
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-1 16:16 , Processed in 0.166373 second(s), 133 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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