AT89C51单片机:晶振6MHz下8个发光二极管1秒轮流点亮(流水灯)C语言实现
以下是使用 AT89C51 单片机实现 8 个发光二极管轮流点亮(流水灯)的 C 语言程序示例,每个管亮 1 秒,通过定时器 T0 方式 1 定时 50ms 中断 20 次得到 1 秒的定时: ```c #include <reg51.h> #define uchar unsigned char #define uint unsigned int uchar led = 0x01; // 初始点亮第 1 个灯 void Init_Timer0(void); void main() { P2 = 0xFF; // 初始化 P2 口为高电平,熄灭所有灯 Init_Timer0(); // 初始化定时器 T0 EA = 1; // 开总中断 ET0 = 1; // 开定时器 T0 中断 while (1); } void Init_Timer0(void) { TMOD = 0x01; // 定时器 T0 工作方式 1 TH0 = (65536 - 50000) / 256; // 50ms 定时初值高 8 位 TL0 = (65536 - 50000) % 256; // 50ms 定时初值低 8 位 TR0 = 1; // 启动定时器 T0 } void Timer0_ISR() interrupt 1 { static uchar count = 0; TH0 = (65536 - 50000) / 256; // 重新装载初值高 8 位 TL0 = (65536 - 50000) % 256; // 重新装载初值低 8 位 count++; if (count == 20) // 达到 1 秒 { P2 = ~led; // 点亮当前灯 led = led << 1; // 左移一位,准备点亮下一个灯 if (led == 0) { led = 0x01; // 循环回到第 1 个灯 } count = 0; // 计数清零 } } ``` ######[AI写代码神器 | 542点数解答 | 2024-11-18 14:02:26]
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)354
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)384
- C++ 实现带路障棋盘棋子移动问题求解(字节豆包 | 976点数解答 | 2026-03-03 19:14:37)10
- 1 秒 300 次访问,系统压力究竟大不大?关键因素全揭秘!(讯飞星火 | 272点数解答 | 2024-02-04 16:02:32)400
- C++实现数字魔方:输入奇数n生成n阶魔方及代码逻辑详解(字节豆包 | 496点数解答 | 2025-07-20 16:24:49)78
- C++ 实现带路障的棋盘棋子移动问题求解(字节豆包 | 1013点数解答 | 2026-03-07 19:13:59)11
- iOS开发:手把手教你完整实现代理模式,含声明与实现步骤!(阿里通义 | 268点数解答 | 2023-11-08 00:39:55)278
- JavaScript 开发:用 Animation 实现自定义动画的简易教程 (阿里通义 | 333点数解答 | 2023-11-09 01:50:07)271
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)501
- 用 JS 的 while 循环实现 1 到 100 相加并输出到页面的代码揭秘( | 47点数解答 | 2024-05-20 22:16:48)389
- Vue.js 与 Matter.js 碰撞:轻松实现物理模拟全攻略 (讯飞星火 | 522点数解答 | 2024-05-29 22:26:06)455
- JS实现移动端网页快捷键创建方式及注意事项(阿里通义 | 284点数解答 | 2024-06-05 19:02:59)285