找回密码
 立即注册
楼主: fjmfuhqw

打卡学习贴

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-12-13 00:00:58
已绑定手机

1

主题

9

回帖

29

积分

新手上路

积分
29
发表于 5 天前 | 显示全部楼层
第五集
之前学过一点c,有基础语法,感觉比较轻松

主要针对8051U单片机开发所需的C语言基础进行了梳理。

首先记录了USB-CDC串口printf函数的应用。在库文件中通过去除特定的反斜杠注释即可开启该功能,这对于后续打印变量值和调试程序非常关键。使用时需注意格式控制符,如`%d`对应十进制整数,`%s`对应字符串,以及使用`\n`进行换行处理。此外,在使用串口助手时,需区分文本模式与Hex模式,以免数据解读出错。

关于数据类型与进制,复习了二进制、十进制与十六进制的转换。重点在于掌握变量的取值范围,例如8位的`unsigned char`最大值为255,若计算结果超出此范围会发生溢出,导致数据错误,因此选择合适的变量类型(如16位或32位)至关重要。

最后总结了运算符的使用。除了常规的算术运算,特别注意了取余运算符`%`在printf中显示时需用`%%`转义。逻辑判断中,系统默认0为假,非0为真,这是`if/else`条件语句执行的基础。同时,也简单记录了按位与、按位或及移位等位运算的原理,为后续寄存器操作打下基础。

回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-12-13 00:00:58
已绑定手机

1

主题

9

回帖

29

积分

新手上路

积分
29
发表于 5 天前 | 显示全部楼层
第六集

主要围绕8051U单片机的GPIO基础与按键输入检测展开

首先了解了GPIO(通用输入输出端口)的电气特性。高电平(逻辑1)是指电压无限接近电源电压(VCC),低电平(逻辑0)则是GND。IO口拥有准双向口、推挽输出等四种模式,其中准双向口灌电流可达20mA,适合一般应用。在输入检测中,开启施密特触发器后,输入低电平需低于0.99V才能被有效识别。

在代码实操环节,通过读取P32引脚电平来判断按键状态:按下为0,松开为1。在实现“按一下切换LED状态”的功能时,发现机械按键闭合瞬间存在抖动,导致程序误判。解决方式是引入软件消抖,即在检测到低电平后延时20毫秒,避开抖动区域再次确认状态。

此外,程序初始化需配置WTST寄存器为0以优化指令延时参数,并使用ISP工具生成准确的延时函数。
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-12-13 00:00:58
已绑定手机

1

主题

9

回帖

29

积分

新手上路

积分
29
发表于 5 天前 | 显示全部楼层
第七集

今天准备申请实验箱了

重点在于解决单核CPU在执行延时函数时无法响应外部按键的问题,核心解决方案是引入定时器中断。

通过ISP软件生成初始化代码,配置Timer0为24MHz下的16位自动重载模式,成功实现了LED周期闪烁与串口按键计数互不干扰的功能。在调试过程中,发现“数”等特定汉字在串口显示乱码,经查阅手册确认为编译器对`0xFD`编码处理的已知问题,通过在字符后补充`\xfd`得以解决。

理论层面,分析了`TM0PS`时钟分频系数与`TMOD`寄存器配置,理解了定时器本质是计数器,即从设定初值累加至65536溢出后触发中断的逻辑。此外,复习了C语言中函数定义、声明与调用的规范,明确了被调函数后置时必须进行前置声明的要求。最后通过“救护车灯”案例,利用状态变量控制定时器的启停,实现了红蓝灯交替闪烁的逻辑控制。
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-12-18 10:25 , Processed in 0.104318 second(s), 49 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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