1.单片机编程的一般步骤
1.1、目标分析
我们的目标是点亮开发板上的LED灯
1.2、原理图分析
(1)目标器件(LED)工作原理
(2)相关模块电路连接
(3)控制线路分析:相关IO端口是哪些?
1.3、代码编写
1.4、下载与调试
2.原理图与控制方法分析
2.1、原理图概况浏览
(1)目的1:把原理图相关部分摘录出来重点看
(2)目的2:把相关部分的原理图关键部分重点看
2.2、74HC573芯片介绍
(1)要知道这个芯片怎么工作,就要看他的数据手册
(2)第一步:找到它的数据手册
74HC573芯片
(3)OE(output enable),LE(latch enable)
(4)74HC573芯片是一个锁存器,简单来说就是由输入引脚Dx来控制输出引脚Qx(x等于0-7)。OE和LE影响Dx控制Qx的结果。
(5)当OE为L,LE为L时,74HC573工作在锁存模式,此时Qx的输出被锁存(进入锁存状态之前是高就一直是高,是低就一直是低,这就叫锁存)。这就是锁存器的作用。
(6)当OE为L,LE为H时74HC573工作在跟随模式,此时Qx的输出跟随Dx的输入变化而变化。此时逻辑上可以认为74HC573是透明的。
2.3、硬件原理图分析结论
(1)原理图及开发板默认跳线帽方式为:OE=L,LE=H,此时74HC573工作在跟随模式下,相当于是透明的。当我们接线(接线方式为P0端口和J12用杜邦线连接起来,当然其实也可以和P1或者其他端口连接起来)后,其实相当于P0端口和LED的正极直接相连了,而LED的负极接地。
(2)结论:P0端口的8个引脚输出高电平时,则LED亮,输出低电平时则LED灭。
3.第一个实验:点亮LED
3.1、创建工程与文件
(1)创建空工程
(2)创建led.c并关联到工程
(3)模式书写:头文件包含和main函数外壳
3.2、如何用C语言进行IO端口控制
(1)P0这个符号在C语言代码中的特殊含义
(2)十六进制数
(3)位、字节、IO端口、IO口(即IO端口的每一个)
(4)硬件接线方式对编程的影响
3.3、点亮LED
(1)点亮8颗LED灯
(2)点亮4颗LED灯
(3)隔一颗亮隔一颗灭
(4)全灭
#include <reg51.h>
void main(void)
{
// 点亮8颗LED灯
// p0 = 0xff; // P0端口的8个引脚都输出高电平
// 点亮4颗LED灯
// p0 = 0xf0;
// p0 = 0x0f;
// 隔一颗亮隔一颗灭
// p0 = 0xAA;
// 全灭
p0 = 0x0;
}
4.如何让LED闪烁
4.1、闪烁的本质含义:亮-延时-灭-延时
(1)由于人的眼睛有视觉暂留,所以亮和灭之间的延时时间选择非常重要。
(2)如果延时时间太短(比如20ms),这时候上一次灭眼睛还没反应过来就到了下一次亮。此时你会觉得灯是一直亮着的。和一直亮着的区别是亮度低一点。但是是看不到闪烁的。
(3)延时时间逐渐增大慢慢就能看到闪烁的,大到一定程度就能看到明显的一亮一灭了。
4.2、单片机如何实现延时
(1)单片机执行每一条指令需要一定的时间
(2)单片机开机后不能休息
(3)单片机可以“空转”或“浪费时间”
4.3、C语言实现延时
使用C语言循环语句实现延时
#include <reg51.h>
void delay(void)
{
unsigned char i = 100;
unsigned char i = 100;
while (i--)
{
while (j--);
}
}
void main(void)
{
p0 = 0xff;
delay();
p0 = 0x0;
delay();
}
网友评论