祝娜娜 发表于 2026-1-12 06:10:00

51单片机__LED相关

51单片机__LED相关

单片机介绍

单片机,英文Micro Controller Unit,简称MCU
内部集成了CPU、RAM、ROM、定时器、中断系统、通讯接口等一系列电脑的常用硬件功能
单片机的任务是信息采集(依靠传感器)、处理(依靠CPU)和硬件设备(例如电机,LED等)的控制
单片机跟计算机相比,单片机算是一个袖珍版计算机,一个芯片就能构成完整的计算机系统。但在性能上,与计算机相差甚远,但单片机成本低、体积小、结构简单,在生活和工业控制领域大有所用
同时,学习使用单片机是了解计算机原理与结构的最佳选择
单片机应用

单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。

STC89C52单片机






开发板原理图和复位单路




创建工程并实现LED控制

1)点亮LED灯


观察原理图,LED灯低电平点亮,下面开始编写代码:
#include <REGX52.H>

void main()
{
        P2 = 0;
}

// 现象:所有LED灯均被点亮2)实现LED_1灯闪烁

延时方法与实现:
通过单片机驱动外围显示电路,为了能够让人眼识别到所显示内容的变化,需要保证所显示的内容有所停留。在单片机中,实现这一效果有两种方式,一种是通过C语言编写一段延时效果的程序或者子程序,实现该目的。另一种是调用单片机自带的定式/计数器,这里暂时使用第一种方式。
使用单片机烧录软件AiCube-ISP-v6.96A,生成一段500ms的延时函数。
// 延时500ms
void Delay500ms(void)        //@11.0592MHz
{
        unsigned char data i, j, k;

        _nop_();
        i = 4;
        j = 129;
        k = 119;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}
#include #include   // 解决 _nop_ 报错// 延时500ms
void Delay500ms(void)        //@11.0592MHz
{
        unsigned char data i, j, k;

        _nop_();
        i = 4;
        j = 129;
        k = 119;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}void main(){        while(1)        {                        P2 = 0xFE;   // 1111 1110                Delay500ms();// 延时0.5s                P2 = 0xFF;   // 1111 1111                Delay500ms();// 延时0.5s        }}// 现象: LED_1 闪烁,其他LED灯不亮3)实现LED流水灯

第一种方式:使用数组实现流水灯效果

#include #include   // 解决 _nop_ 报错// 延时500ms
void Delay500ms(void)        //@11.0592MHz
{
        unsigned char data i, j, k;

        _nop_();
        i = 4;
        j = 129;
        k = 119;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}// 定义流水灯数组unsigned char LedCode[] = {0xFE,0xFD,0xFB,0xF7,0Xef,0xDF,0xBF,0x7F};void main(){        unsigned char i;        while(1)        {                        for(i = 0;i < 8;i ++)                {                        P2 = LedCode;                        Delay500ms();                }        }}// 现象:LED灯从低到高依次点亮//附加内容://0xFE1111 1110//0xFD1111 1101//0xFB1111 1011//0xF71111 0111//0Xef1110 1111//0xDF1101 1111//0xBF1011 1111//0x7F0111 1111第二种方式:左右移运算符实现

#include #include   // 解决 _nop_ 报错// 延时500ms
void Delay500ms(void)        //@11.0592MHz
{
        unsigned char data i, j, k;

        _nop_();
        i = 4;
        j = 129;
        k = 119;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}void main() {    unsigned char Led = 0x01; // 0000 0001      while(1) {      P2 = ~Led;      // 取反,输出到P2端口      Delay500ms();   // 延时500ms                // 使用左移运算符      Led = Led = 7)// 左移7次后(共8个状态)            {                direction = 1;// 改为右移方向                counter = 0;    // 计数器清零            }      }      // 右移8次后改为左移      else      {            aa = _cror_(aa, 1);// 循环右移            counter++;                        if(counter >= 7)// 右移7次后(共8个状态)            {                direction = 0;// 改为左移方向                counter = 0;    // 计数器清零            }      }    }}// 现象:LED左右依次点亮
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

筒霓暄 发表于 2026-1-15 02:29:57

感谢分享

郗燕岚 发表于 2026-1-21 05:34:32

这个好,看起来很实用

昝沛珊 发表于 2026-1-23 10:19:33

谢谢楼主提供!

移国拱 发表于 2026-2-5 23:30:29

谢谢分享,试用一下

敞撬 发表于 2026-2-7 08:01:57

喜欢鼓捣这些软件,现在用得少,谢谢分享!

翳舀 发表于 2026-2-8 11:12:52

很好很强大我过来先占个楼 待编辑

埤兆 发表于 2026-2-9 07:17:09

鼓励转贴优秀软件安全工具和文档!

都淑贞 发表于 2026-2-9 13:55:48

感谢分享,学习下。

欧阳梓蓓 发表于 2026-2-10 10:29:48

感谢发布原创作品,程序园因你更精彩

扈怀易 发表于 2026-2-10 17:09:20

谢谢楼主提供!

套缈 发表于 2026-2-11 12:39:21

这个好,看起来很实用

翁谌缜 发表于 2026-2-11 12:56:26

感谢分享

衣旱 发表于 2026-2-12 01:19:02

前排留名,哈哈哈

豺独 发表于 2026-2-13 16:51:09

谢谢楼主提供!

怀陶宁 发表于 2026-2-14 03:46:28

感谢分享

山真柄 发表于 2026-2-18 13:36:23

感谢分享,下载保存了,貌似很强大

撒阗奕 发表于 2026-2-23 06:01:50

很好很强大我过来先占个楼 待编辑

梁丘艷蕙 发表于 2026-2-26 05:36:21

过来提前占个楼

赘暨逢 发表于 2026-2-27 01:12:56

喜欢鼓捣这些软件,现在用得少,谢谢分享!
页: [1] 2
查看完整版本: 51单片机__LED相关