51单片机 学习之旅[1] 点亮第一个LED
来源:互联网 发布:淘宝个人卖家工商登记 编辑:程序博客网 时间:2024/05/17 08:55
上面是网上 传的 ”十天艹单片机“的资源,我没去下,我是用买学习板子的时候送的光盘里面的视频和书来的,不过我猜应该是一样的
第一课。
目标: 点亮第一个 LED
过程:
1.教程里看了一轮的板子 有什么器件,什么功能(有部分没看懂是干嘛的,视频里也说是后续再说..基本我就留意了 用到的芯片 和 LED部分)
2.介绍了下单片机 51单片机,的各个厂商 的幸好,因为板子是用 STC 89C52 的,所以基本都是这个。
3.看板子的电路原理图,妈的蛋。。。完全没有电路知识的人,看到这里简直是要跪,这是什么鬼????? 到这个时候 老婆在后面问我为何跪在显示器前。。
从这里 想起以前高中学过的电路。。(这特么一点关系都没有好不好。。根本没什么用),幸好看了下还是大概能看出那里连那里,有些标注 什么 P0,P1,D1的。
基本对着 电路原理图,和板子 上一一对应都能大概找出 那些是怎么连的(但是那些什么中间为毛线要连个电阻,什么上拉电阻 又是什么鬼?,后面自己百度了)
理解在这个板子上的所有功能都通过这些器件连起来,什么时候通电 什么时候 通个 ”高电平“ ”低电平“来控制(看成 信号->看成二级制数据的1和0),然后通过 变成 写入指令 到 芯片中来执行。
来是说 上面那些电子元件 电路什么的都不是很清晰,后面慢慢补吧,先把功能跑起来。
4. 从上面的原理图 看到 LED模块的电路连接是链接到 芯片 的 IO口 (有4组 P0 P1 P2 P3,每个组有8数据口),现在LED 就是链接到P0 上
然而 就是通过 变成 来控制 P0 上的 信号输出来达到搞亮LED。
5. 如何控制?
用C语言 写出一个点亮程序,这里用到的编程工具 是Keil .
由于之前没学过C,头文件是什么鬼。。,哦原来是相当于一个 声明文档
在 51 单片机中 有定义好的 头文件
#include
里面定义 一堆 51单片机的定义 比如 上面说到P0 IO口,都在里面定义好 具体的地址,通过操作这个P0的变量即可?
由于 这个P0定义的是一组 8位的,对应了这个 LED组8个灯,如果要控制一个灯亮要怎么搞?
这里有个语法
sbit LED1 = P0^0;
代表 P0组 第一个位(最低位)的值,指向了LED1这个变量
sbit 类型是 51单片机 的特殊类型
如果要点亮,只需要给这个 LED1 给一个低电平的信号就可以。
LED1 = 0;
为什么要低电平?(看上面的电路图,说的太玄,没看懂,只是 说那个发光二极管 的什么鬼的)
然后注意的是 默认的 51单片机所有初始化电平信号 都是高电平的。
#include <REGX52.H>sbit LED1=P0^0;void main(){LED1 = 0;}
烧到 板子上,点着 噢耶 亮了,
下面是 去弄个 流水灯点亮一排led
用到流水灯 就要 做到 亮一盏 等一下,再去下一个动作这种等待。
真是吊炸天,,,教程里面居然 用cpu 每执行一个指令会花一个段时间来当做 等待。。。用个循环 来当做等待
void delay10ms() {
unsigned int a,b; for(a=100;a>0;a--) for(b=225;b>0;b--); }在上面编译的时候出现了 问题,在51平台上 用到的变量,方法 都要在之前做好声明
比如上面 delay10ms 如果要在main()里面调用就必须 把这段代码 写在 main方法之前,或者 在 main方法之前 声明定义好这个方法
<span style="white-space: pre;">#define void </span>delay10ms();
还有一个是 方法内用到的变量都要在 放在方法内的第一行,或者最前前面声明 不能 随处用随处声明(这个甚是蛋疼)
- 51单片机 学习之旅[1] 点亮第一个LED
- PIC单片机之第一个工程分析,点亮LED
- 【记录】STM32学习之第一个程序(点亮LED)
- 菜鸟之学习51单片机(三)点亮LED灯
- 单片机学习之点亮LED小灯
- 51单片机 试验一 点亮你的第一颗LED
- stm8 点亮第一个LED
- 【51单片机学习过程记录】 2LED点亮
- [TPYBoard-Micropython之会python就能做硬件 1] 运行第一个脚本——点亮LED
- 单片机小白学步系列(十四) 点亮第一个LED的程序分析
- STC89C52单片机学习(一)----点亮LED
- STM32初探-点亮第一个led灯
- 第一个驱动程序(点亮LED灯)
- ZigBee基础实验-点亮第一个LED
- lesson1~点亮第一个LED灯
- s5pv210点亮第一个led详解
- 编译第一个驱动,加载点亮LED
- 第一个实验 stm32t103c8t6 点亮led
- 51单片机 学习之旅
- 依赖倒置 控制反转 依赖注入
- 技术大牛,请提高网络礼仪方面的素养
- 重装系统后phpStudy如何启动
- leetcode 34 -- Search for a Range
- 51单片机 学习之旅[1] 点亮第一个LED
- fgets和fputs
- 贪心算法之最优分解(实验报告版)
- MTK Flashtool / Smart Phone Flash Tool / flash_tool 使用教程
- PCB线宽与电流关系
- Android Studio 学习资料大全
- 日志迁移
- 深入浅出关于GET和POST请求的编解码问题
- 线程间的同步理解。