httpwwwelecfa
scom电子发烧友httpbbselecfa
scom电子技术论坛
基础知识:51单片机编程基础
单片机的外部结构:
1DIP40双列直插;2P0,P1,P2,P3四个8位准双向IO引脚;(作为IO输入时,要先输出高电平)3电源VCC(PIN40)和地线GND(PIN20);4高电平复位RESET(PIN9);(10uF电容接VCC与RESET,即可实现上电复位)5内置振荡电路,外部只要接晶体至X1(PIN18)和X0(PIN19);(频率为主频的
12倍)6程序配置EA(PIN31)接高电平VCC;(运行单片机内部ROM中的程序)7P3支持第二功能:RXD、TXD、INT0、INT1、T0、T1
单片机内部IO部件:所为学习单片机,实际上就是编程控制以下IO部件,完成指定任务
1四个8位通用IO端口,对应引脚P0、P1、P2和P3;2两个16位定时计数器;(TMOD,TCON,TL0,TH0,TL1,TH1)3一个串行通信接口;(SCON,SBUF)4一个中断控制器;(IE,IP)
针对AT89C52单片机,头文件AT89x52h给出了SFR特殊功能寄存器所有端口的定义。
C语言编程基础:
1十六进制表示字节0x5a:二进制为01011010B;0x6E为01101110。2如果将一个16位二进数赋给一个8位的字节变量,则自动截断为低8位,而丢掉
高8位。3var表示对变量var先增一;var表示对变量后减一。4x0x0f表示为xx0x0f5TMODTMOD0xf00x05表示给变量TMOD的低四位赋值0x5,而不改变
TMOD的高四位。6While1表示无限执行该语句,即死循环。语句后的分号表示空循环体,也就是
在某引脚输出高电平的编程方法:(比如P13(PIN4)引脚)
代码
fhttpwwwelecfa
scom电子发烧友httpbbselecfa
scom电子技术论坛
1i
cludeAT89x52h该头文档中有单片机内部资源的符号化定义,其中包含P13
2voidmai
voidvoid表示没有输入参数,也没有函数返值,这入单片机运行的复位入口
3
4
P1_31给P1_3赋值1,引脚P13就能输出高电平VCC
5
While1死循环,相当LOOPgotoLOOP
6
注意:P0的每个引脚要输出高电平时,必须外接上拉电阻(如4K7)至VCC电源。
在某引脚输出低电平的编程方法:(比如P27引脚)
代码
1i
cludeAT89x52h该头文档中有单片机内部资源的符号化定义,其中包含P27
2voidmai
voidvoid表示没有输入参数,也没有函数返值,这入单片机运行的复位入口
34P2_70给P2_7赋值0,引脚P27就能输出低电平GND5While1死循环,相当LOOPgotoLOOP6
在某引脚输出方波编程方法:(比如P31引脚)
代码
1i
cludeAT89x52h该头文档中有单片机内部资源的符号化定义,其中包含P31
2voidmai
vor