在刚开始入门学习时,其中一个制作就是2032电池点亮LED,那么如何编写程序控制单片机I/O点亮LED呢?
单片机I/O(即IN/OUT)能输出高低电平,高电平指+5V,低电平指0V(GND),先回顾一下前面点亮LED的电路(这里用的是5V电源),见图
点亮LED
一、单片机I/O输出低电平点亮LED
1.电路图
假如将上图中的负极换为P1.0,通过编程控制P1.0输出低电平(即0V),LED1是不是点亮呢?电路如下图,那程序如何编写呢?
LED1的负极连接到P1.0
2.元器件清单
3.程序设计
#include〈reg52.h〉//52系列单片机头文件。
sbit led=P1^0;//声明LED接在P1.0,这里注意区分大小写
void main()//主函数
{
led=0; //P1.0接口输出低电平
while(1); //程序停止到这里
}
4.程序解释
①在程序中,sbit小写,P应大写,“led”你可以起别的名字,注意不能与c语言中的关键字相同,例如main,它在C语言发明的时候就被占用了。
②#include 后面没有分号。
③主函数main在一个程序中有且只有一个。
④C语言编写程序用分号表示一句结束。
⑤“//”用于解释本语句的作用。换行时,需要重新打上“//”。
⑥P1^0是单片机P1.0引脚在程序中的表示方法。“^”与数字“6”在一个键盘按键上,同时按住“shift”+“6”,就可以打出“^”符号。
6.C语言基础知识
主函数
void main()
{
语句;
}
单片机运行程序总是从主函数开始,主函数之前都是一些声明、定义。
7.下载程序
请你“照猫画虎”,将上面的程序在keil4中认真写一遍,下载完成,在软件的下方显示“0 Error(s),0 Warning(s)”,即“零错误,零敬告”,恭喜你程序没有出错。
程序编译无误
打开STC-ISP软件,下载程序,
下载程序进度条
程序下载后,P1.0所接的LED点亮。
点亮LED
如果程序下载不成功,首先检查硬件电路,尤其是USB-ISP模块与单片机连接是否正常;其次,点击USB-ISP软件界面下方“停止”,重新冷启动下载。
那么刚才是让单片机输出低电平,能不能编写程序单片机输出高电平,点亮LED?在程序中只需将“led=0;”改为“led=1;”。