51单片机C语言程序100例分析(1)IO+C语言+头文件
\\\插播一条:文章末尾有惊喜哟~///
P1=0xfe;//P1=11111110B,即P1.0输出低电平}
分析:通过这短短的几行代码就能够让51单片机的P1.0引脚输出低电平,首先#include<>>这句代码是包含51单片机寄存器定义的头文件,51单片机是寄存器和IO统一编址的,所以你往相应的寄存器中写1就会在对应引脚输出高电平,写0就会输出低电平,我们知道51共32个引脚作为IO端使用,所以只须要四个寄存器(一个寄存器是8位,这取决于数据总线),翻开头文件就会发现P0和0X80这个地址绑定了,所以编程的实质就是往内存中写值,又由于单片机是数字器件,所以只能读懂二进制,为什么是二进制?由于0对应低电平0V,1对应高电平5V足够了,没有第三种明确的状态。注意加粗的地方,要细品。单片机是控制器件而不是驱动器件,由于输出电流很小,不足以驱动某些须要大电流的外设。
//实例2:用单片机控制一个灯闪烁:认识单片机的工作频次
#include //包含单片机寄存器的头文件
/****************************************
函数功能:延时一段时长
*****************************************/
void delay(void) //两个void意思分别为没需返回值,没有参数传递
{
unsigned int i; //定义没符号整数,最大取值范围65535
for(i=0;i/做20000次空循环
; //什么也不做,等待一个机器周期
}
/*******************************************************
函数功能:主函数(C语言规定必需有也只能有1个主函数)
********************************************************/
void main(void)
{
while(1) //没限循环
{
P1=0xfe; //P1=11111110B,P1.0输出低电平
delay(); //延时一段时长
P1=0xff; //P1=11111111B,P1.0输出高电平
delay(); //延时一段时长
}
}
分析:写程序是自下而上的过程,而读程序是自上而下的过程,所以编写程序和读程序的流程是不同的。从零初始编写程序一般要先构思,再走一步看一步,当然我更喜爱修改代码以完成目标,所以提前准备典型实例能够大大提高编程效率。对于读代码是很常见的,准备典型案例的时候就要读懂