历史上的今天
今天是:2025年11月14日(星期五)
2022年11月14日 | 单片机led灯闪烁实验总结_玩转51单片机(1):点亮led灯
2022-11-14 来源:csdn
01
新建工程与点亮LED小灯,LED小灯即发光二极管,它具有单向导电性,对于发光二极管而言,需要根据它的压降与额定电流来选择合适的限流电阻,打开Keil4软件,选择Project,New uVision Project

选定工程的保存路径,并给工程命名,保存类型默认.uvproj,点击保存

出现如下对话框,点击下拉按钮,选择STC MCU Database,点击OK

选择STC89C52RC,点击OK

选择否

点击New,生成一个Text1文件

点击 File, Save, 出现如下对话框,将文件命名为后缀为.c的文件,默认保存类型,点击保存

点击Target 1前面的加号,在Source Group 1上右击,选择Add Files to Group'Source Group 1'

选择刚刚保存的以.c为后缀的文件,点击Add,然后关闭窗口

点击Source Group 1前面的加号,会发现下面多了刚刚添加的.c文件

在右侧文本框中写入程序

点击Target Options按钮

在Output标签页勾选Create HEX File,点击OK

点击Rebuild按钮,可以看到最下方Build Output对话框出现已经生成hex文件的信息,以及0个错误,0个警告的信息

打开STC-ISP软件,选择单片机型号为STC89C52,串口号就是安装了USB转串口驱动之后虚拟的COM口,可在计算机管理-设备管理器-端口中查看

点击打开程序文件,选择工程的存储路径,可以看到工程文件夹下有一个hex文件,打开它

点击下载/编程按钮

打开单片机开发板的开关,可以看到操作成功提示,LED小灯被成功点亮


以下是点亮LED小灯的程序

下面是开发板原理图的LED显示电路,由于发光二极管的单向导电性,决定了LED小灯是低电平点亮,因此在main函数中给LED1低电平,就可以点亮小灯;然后利用while(1)进行无限循环,保持LED小灯一直是亮的;sbit是定义特殊功能寄存器的位变量,将P1^0另起名为LED1,以便进行位操作

02
让LED小灯闪烁起来
新建一个工程,写入如下程序,整个新建工程的过程如上

typedef用于为已有类型创建一个别名,便于后面使用;Delay为延时函数,利用循环结构不断地进行空跑,从而实现延时,这里的延时为粗计算,后文将介绍如何利用定时器进行精确延时;main函数中不断地循环着将8个LED灯全部点亮,延时保持,又将8个LED灯全部熄灭,延时保持的整个过程,以实现在人眼中的闪烁现象;0x00与0xff均为十六进制数,表示为二进制即00000000与11111111
03
LED流水灯
新建一个工程,写入如下程序

其中<
04
LED跑马灯
新建一个工程,写入如下程序

_crol_()函数包含于intrins.h头文件中,因此程序需要添加#include ,P1=_crol_(P1,1)表示每次将P1循环左移1位,P1由11111110,依次变为11111101,11111011,11110111,11101111,11011111,10111111,01111111,然后重复循环
史海拾趣
|
各位达人,我在做PCB板的时候对于如何根据元件数值选取元件封装时感到很吃力,举个例子 1.在选取三极管的时候,什么时候选TO-92A,什么时候选TO-92B? 2.一个电容比如一个100N/250V的电容,选取的是RAD0.3,这个电压的要求是不是贴片难以达到, ...… 查看全部问答> |
|
麻烦各位了,小弟新手,有几个问题在这里求教: 1.wince自带手写识别软件不能识别简体,请问怎样做才能让它识别简体? 2.如果要编写一个自己的识别软件,难度大吗?编写的大概步骤是什么?(希望能 比帮助文档具体一点)恳请赐告!谢谢 … 查看全部问答> |
|
in [求助] 中, 换了一个电源带来的问题 我的问题这样的, 主机只是简单的扫描端口, 子机负责把信息显示出来(用LED),开机时会读取一下EEPROM中字符,总共才20个字符。 原来我用子机的电源,主机的电源也是从子机那里拉过来的,很正常,也很 ...… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 09:47 编辑 传闻今年没有无线通信题目了,不知是否属实。 如果真的没有了,以前做无线通信的该怎么准备呢? … 查看全部问答> |
|
ARM启动代码学习(一)RO和RW还有ZI代表什么?(转载) 一般而言,一个程序包括只读的代码段和可读写的数据段。在ARM的集成开发环境中,只读的代码段和常量被称作RO段(ReadOnly);可读写的全局变量和静态变量被称作RW段(ReadWrite);RW段中要被初始化为零的变量被称为ZI段(ZeroInit) ...… 查看全部问答> |
|
ti5402的端口地址在哪找呢,手册里没发现呀。 ioport unsigned int port8FEE; 这句话后面的8FEE是在哪找的呀 我在手册上找不到 … 查看全部问答> |
|
找了capsense的例程,试着做了capsense控制led的工程。 功能介绍: 用手滑动capsense的触摸板,实现led颜色的改变。 具体连接: 下一步: 利用自带的放大器,完成模拟信号的放大滤波处理。… 查看全部问答> |




