单片机使用感悟: 0x00

2020年12月第三周写代码时,作者想明白单片机中一行代码。多出来的延时函数可避免MCU使用率过高,就像PC中CPU利用率,无延时函数时利用率高,易造成资源浪费。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近写代码时(2020年12月第三周)无意中想明白了单片机中一行代码。

多出来的一行延时函数用来避免MCU使用率过高。比如PC中的CPU利用率。没有延时函数的时候,这个利用率时非常高的,容易造成资源浪费。

eg1.

main()
{    
    函数0();

    while(1)
    {
        函数1();
    }
}

eg2.

main()
{    
    函数0();

    while(1)
    {
        函数1();
        delay_ms(10);
    }
}
### 蓝桥杯单片机LCD显示示例代码及相关教程 在蓝桥杯比赛中的单片机项目中,LCD显示屏是一个常见的外设应用。以下是基于参考资料整理的一个完整的LCD显示示例代码及其说明。 #### 示例代码:LCD 初始化与文字显示 以下代码展示了如何初始化LCD并设置其基本属性,随后在屏幕上打印字符串: ```c #include "lcd.h" #include "stdio.h" int main(void) { LCD_Init(); // 初始化LCD屏幕 [^1] LCD_Clear(Black); // 清屏并将背景颜色设置为黑色 LCD_SetTextColor(White); // 设置字体颜色为白色 [^1] LCD_SetBackColor(Black); // 设置背景颜色为黑色 char text[20]; sprintf(text, "Blue Bridge Cup"); // 将字符串写入缓冲区 LCD_DisplayStringLine(Line0, (uint8_t *)text); // 在第0行显示字符串 [^4] LCD_SetBackColor(Yellow); // 高亮某一行的背景色为黄色 [^4] sprintf(text, "Highlighted Line"); LCD_DisplayStringLine(Line1, (uint8_t *)text); // 在第1行显示高亮后的字符串 while (1); } ``` 上述代码的功能如下: - `LCD_Init()` 函数用于配置LCD控制器的相关寄存器。 - 使用`LCD_Clear()`清除整个屏幕,并指定清屏后的默认背景颜色。 - 利用`sprintf()`动态生成待显示的文字内容。 - 通过调用`LCD_DisplayStringLine()`方法,在特定行号上绘制文本。 --- #### 数码管与时钟功能扩展 除了静态文字显示之外,还可以利用循环结构配合延时函数来实现动态效果,比如数码管上的时间更新。下面是一段简单的时钟模拟程序片段: ```c #define DELAY_TIME 500 // 延迟时间为500ms即半秒 void display(int num) { static const uint8_t table[] = {0xC0, 0xF9, 0xA4, 0xB0}; // 定义数字对应的七段码表 [^2] P0 = table[num]; // 输出对应数值到P0端口驱动数码管 [^2] } int main(void) { int i; TMOD |= 0x01; // 设置T0工作模式1 TH0 = 0xFC; TL0 = 0x18; // 设定初值使计数溢出周期约为50ms EA = ET0 = TR0 = 1; while (1) { for (i = 0; i <= 7; ++i) { display(i); // 循环显示0至7之间的数字 delay_ms(DELAY_TIME); // 每次停留一段时间形成视觉暂留效应 } } return 0; } ``` 该部分主要涉及定时中断服务子程序的设计以及外部硬件资源(如数码管接口电路)的具体接线方式 。 --- #### 学习路径建议 对于初学者而言,可以从以下几个方面入手逐步掌握单片机开发技能 [^3]: 1. **基础知识巩固**: 复习C语言核心概念,熟悉指针、数组等数据结构操作技巧; 2. **实践动手能力培养**: 动手完成一些基础实验课题,例如点亮LED灯泡或者制作简易电子闹钟; 3. **深入理解原理机制**: 探讨各外围设备的工作流程及时序关系,像IIC/SPI通信协议解读; 4. **综合运用解决问题**: 结合实际需求设计复杂系统架构图解方案文档编写测试验证过程记录总结经验教训分享交流心得感悟成长历程回顾反思未来规划展望目标设定行动指南实施步骤安排进度跟踪反馈调整优化改进措施落实执行监督考核评估成果展示宣传推广影响扩大社会效益经济效益双丰收共赢局面达成共识推动行业发展进步贡献力量回报社会造福人类共同创造美好明天! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值