主要学习51单片机的外部引脚和内部结构等,叙述一下。本书任务驱动教学,引入案例有浅变深,循序渐进,给读者留下思考和发挥空间。
31利用单片机的IO口驱动LED
311利用单片机的P00端口驱动1只LED闪烁
编程的目的是利用C语言控制单片机IO端口按要求输出矩形波脉冲信号,信号的周期由延时函数决定。
一、电路原理
STC89C51单片机的P0口采用为OD门输出,不存在拉出电流,因此利用P0驱动负
载时有两种接法:一种是加上拉电阻R2,见图311,既用1K电阻接电源正极,此时P0
口输出高电平时LED亮;另一种电路为P07低电平驱动有效,在P07输出低电平时,STC89C51端口灌入电流达20mA,可直接驱动小负载。图331中的R3为限流电阻,限制LED2的工作电流。
VCC5V
R31K
ICSTC89C51
C130P
CY12MHz19XTAL1
C230P
18XTAL2
R11K
9RESET
P00AD0P01AD1P02AD2P03AD3
P04AD4
P05AD5P06AD6P07AD7
393837363534
3332
C310μ
29PSEN
30ALE31EA
P20A8P21A9P22A10P23A11
P24A12
P25A13P26A14P27A15
212223
24252627
28
VCC
1
2345678
P10P11P12
P13P14P15P16P17
P30RXDP31TXD
P32INT0P33INT1
P34T0P35T1P36WRP37RD
1011
1213141516
17
R21KLED1
LED2
图311驱动LED电路原理
单片机的最小系统包括晶体振荡电路,加电复位电路,同时要求单片机的31引脚EA接高电平。时钟频率主要由晶体CY决定,C1、C2为独石电容,用于微小调整单片机时钟的振荡频率;R1和C3组成加电复位电路,C3为电解电容器;整个电路由5V电压供电。电路使用的元件参数见表311。
元件名称单片机电容器电容器电容器
序号ICC1C2C3
表311311电路元件表
标称
规格(封装,功率电压等参数)
STC89C5130PF30PF10μF
DIP40独石独石点解电容器
作用核心芯片
振荡振荡复位
f晶振电阻电阻电阻发光二极管发光二极管
CYR1R2R3LED1LED2
12MHz
1K1K1K
55
S型14W,金属膜14W,金属膜14W,金属膜
红色高亮红色高亮
振荡电容器C3放电电阻端口电位上拉电阻
限流电阻显示显示
二、程序设计
1程序设计平台
程序设计采用keilC软件,为了养成一个良好的文件管理习惯,建议:编程前,在
计算机的某个硬盘分区下建立一个目录,目录的名字为你编写程序的主题,然后把keilC
产生的所有文件都放在该目录下。程序设计步骤如下:
(1)运行keilC,创建一个项目。利用keilC菜单栏中project
ewproject创建,
项目的名字为你编程的主题,如本案例可以用“LED_1uv2”或“一个LED闪烁实验uv2”
存放目录为你的主题目录下;
(2)创建建一个文件,然r