跟我学51单片机(一):单片机最小系统组成与IO输出控制
51单片机基本结构详解

51单片机基本结构详解51单片机(也称为8051单片机)是一种8位微控制器,由Intel公司于1980年代推出。
它是目前市场上最广泛使用的低成本单片机之一,被广泛应用于各个领域,包括家电、工业控制、仪器仪表等。
本文将详细介绍51单片机的基本结构。
一、51单片机的总体结构51单片机的总体结构主要分为五个部分,包括中央处理器(CPU)、存储器、IO口、定时器/计数器以及串行通信接口。
1. 中央处理器(CPU)51单片机中心的核心是一个8位的CPU,负责执行指令集中的操作。
它包括一个累加器(Accumulator)用于存放运算结果,以及一组寄存器用于存放操作数和地址。
2. 存储器51单片机的存储器主要包括内部RAM和内部ROM。
内部RAM用于存放程序和数据,容量通常较小,而内部ROM则用于存储不变的程序指令。
3. IO口51单片机提供了多个通用IO口,用于与外部设备进行数据交互。
这些IO口既可以作为输入口用于接收外部信号,也可以作为输出口用于发送信号控制外部设备。
4. 定时器/计数器51单片机内置的定时器/计数器模块可用于产生精确的时间延时和计数应用。
它能够协助实现各种时间相关的功能,如PWM输出、测速和脉冲计数等。
5. 串行通信接口51单片机的串行通信接口可用于与其他设备进行数据的串行传输。
常见的串行通信协议包括UART、SPI和I2C等。
二、51单片机的工作原理51单片机的工作原理可以概括为以下几个步骤:1. 程序存储器中的指令被复制到内部RAM中。
2. CPU从内部RAM中取出指令并执行。
3. 根据指令的要求,CPU可能会与IO口、定时器/计数器或串行通信接口进行数据交互。
4. 执行完指令后,CPU将结果存回内部RAM或IO口。
三、51单片机的应用领域51单片机由于其成本低、技术成熟、易于开发和应用广泛等优点,被广泛应用于各个领域。
1. 家电控制51单片机可以用于家电控制,如空调、洗衣机、电视机等。
51单片机IO端口的四种输入输出模式知识讲解

51单片机IO端口的四种输入输出模式知识讲解51单片机I O端口的四种输入输出模式51单片机IO端口的四种输入输出模式 (by wuleisly)单片机I O口的使用对所有单片机玩家来说都是“家常便饭”,但是你真的了解I O口吗?你真的能按你的需要配置I O口吗?一、准双向口输出准双向口输出类型可用作输出和输入功能而不需重新配置口线输出状态。
这是因为当口线输出为1时驱动能力很弱,允许外部装置将其拉低。
当引脚输出为低时,它的驱动能力很强,可吸收相当大的电流。
(准双向口有3个上拉晶体管适应不同的需要)准双向口读外部状态前,要先锁存为‘1’,才可读到外部正确的状态.二、强推挽输出推挽输出配置的下拉结构与开漏输出以及准双向口的下拉结构相同,但当锁存器为1时提供持续的强上拉。
推挽模式一般用于需要更大驱动电流的情况。
三、仅为输入(高阻)输入口带有一个施密特触发输入以及一个干扰抑制电路。
四、开漏输出配置(若外加上拉电阻,也可读)当口线锁存器为0时,开漏输出关闭所有上拉晶体管。
当作为一个逻辑输出时,这种配置方式必须有外部上拉,一般通过电阻外接到V cc。
如果外部有上拉电阻,开漏的I/O口还可读外部状态,即此时被配置为开漏模式的I/O口还可作为输入I/O口。
这种方式的下拉与准双向口相同。
开漏端口带有一个施密特触发输入以及一个干扰抑制电路。
关于I/O口应用注意事项:1.有些是I/O口由低变高读外部状态时,读不对,实际没有损坏,软件处理一下即可。
因为1T的8051单片机速度太快了,软件执行由低变高指令后立即读外部状态,此时由于实际输出还没有变高,就有可能读不对,正确的方法是在软件设置由低变高后加1到2个空操作指令延时,再读就对了.有些实际没有损坏,加上拉电阻就O K了有些是外围接的是NP N三极管,没有加上拉电阻,其实基极串多大电阻,I/O口就应该上拉多大的电阻,或者将该I/O口设置为强推挽输出.2.驱动L E D发光二极管没有加限流电阻,建议加1K以上的限流电阻,至少也要加470欧姆以上做行列矩阵按键扫描电路时,实际工作时没有加限流电阻,实际工作时可能出现2个I/O口均输出为低,并且在按键按下时,短接在一起,我们知道一个C MO S电路的2个输出脚不应该直接短接在一起,按键扫描电路中,此时一个口为了读另外一个口的状态,必须先置高才能读另外一个口的状态,而8051单?片机的弱上拉口在由0变为1时,会有2 时钟的强推挽高输出电流输出到另外一个输出为低的I/O口,就有可能造成I/O口损坏.建议在其中的一侧加1K限流电阻,或者在软件处理上,不要出现按键两端的I/O口同时为低.一种典型三极管控制电路:如果用弱上拉控制,建议加上拉电阻R1(3.3K~10K),如果不加上拉电阻R1(3.3K~10 K),建议R2的值在15K以上,或用强推挽输出。
单片机最小系统的构成

单片机最小系统的构成单片机最小系统是单片机工作的基础,拥有了最小系统,单片机才能被正常地使用。
最小系统的构成是由多种元器件组成的,包括单片机、晶振、电源、稳压电路、滤波电容和上拉电阻等。
首先,单片机是最小系统的核心,它是实现各种功能的基础。
不同型号的单片机的引脚数和功能不同,选择单片机时需要考虑应用场合和具体功能要求。
其次,晶振是单片机最小系统的另外一部分,用于提供给单片机系统所需要的时钟信号。
在单片机最小系统中,晶振可以采用百万分之二的石英晶体振荡器,常见的晶振有4M、8M等不同频率,具体的采用哪一个频率需要根据单片机的类型和工作需要来决定。
电源是单片机系统的重要组成部分,是为其提供工作所需的电能。
在使用单片机最小系统时,可以使用直流电源,使用5V电源,这可以通过从220V的交流电网上降压得到,也可以使用电池电源。
稳压电路是一个保障单片机系能正常运行的必要元件,主要起到稳压和过载保护作用。
当电压达到一定值时,该电路会自动调节电流,以保证单片机稳定工作。
最常用的稳压电路是7805稳压器,其稳压精度较高,稳定性好。
滤波电容和上拉电阻也是最小系统的组成部分之一。
滤波电容主要用于滤除干扰信号,上拉电阻则可以优化单片机输入输出的电平,使其更加稳定。
滤波电容一般采用0.1至10微法的陶瓷电容,上拉电阻则可以使用1K - 10K欧的电阻。
综上所述,单片机最小系统的构成包括单片机、晶振、电源、稳压电路、滤波电容和上拉电阻等元器件。
合理的搭配和选用不仅有利于提高单片机系统的稳定性和精度,也能保证其正常工作。
因此,在设计单片机应用时,充分考虑最小系统的构成和选配是非常重要的一个环节。
51单片机IO(输入输出)口

采用通用TTL芯片的I/O口 扩展
• 在许多情况下,有些开关量或并行数据需 直接输出或输入。 • 可采用8D锁存器和三态驱动门等进行扩展。 (74LS377、74LS273、74LS244等)
25
74LS377作为输出口
U? 3 4 7 8 13 14 17 18 11 1 D0 D1 D2 D3 D4 D5 D6 D7 C LK E 7 4 LS3 7 7 Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 2 5 6 9 12 15 16 19
地址:8000H Mov dptr,#8000h Mov a,#00h Movx @dptr,a
U? A 2 C LK 3 1 7 4 LS3 2 V5 RU N U? D0 D1 D2 D3 D4 D5 D6 D7 C LK Vc c 3 4 7 8 13 14 17 18 11 1 D1 D2 D3 D4 D5 D6 D7 D8 C LK C LR 7 4 LS2 7 3 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 2 5 6 9 12 15 16 19 UP1 UP2 B EW 1 B EW 2 DW 1 DW 2 BJ RU N BJ V6 CS0 DW 2 1 W R DW 1 3
A1 0 0 1 0 0 1 1 x 1 x A0 0 1 0 0 1 0 1 x 1 x RD 0 0 0 1 1 1 1 x 0 1 WR 1 1 1 0 0 0 0 x 1 1 CS 0 0 0 0 0 0 0 1 0 0 操作 读端口A 读端口B 读端口C 写端口A 写端口B 写端口C 写控制字寄存器 数据总线为三态 非法状态 数据总线为三态
2
3
• 74LS377作为输出 口,试确定其地址, E接P2.7;CLK接 WR,377的输入端 接8031的数据口, 输出端接8个发光 二极管。 地址:7FFFH Mov dptr,#7fffh Mov a,#00h Movx @dptr,a 27
很全的51单片机IO端口详解(带图)

80C51的I/O端口结构及应用特性一,I/O端口的结构1,锁存器加引脚的典型结构80C51的I/O端口都有内部总线实现操作控制。
P0-P3四个I/O 口都可以做普通I/O口,因此,要求具有输出锁存功能。
内部总线有事分时操作,因此每个I/O端口都有相应的锁存器。
然而I/O端口又是外部的输入/输出通道,必须有相应的引脚,故形成了I/O端口的锁存器加引脚的典型结构。
2,I/O口的复用功能(1)I/O口的总线复用。
80C51在使用并行总线扩展时,P0口可作为数据总线口和低8位地址总线口,这是,P0为三态双向口。
P0口输出总线的地址数据信号,P2口输出高8位地址信号。
(2)I/O口的功能复用。
I/O口的P3为功能复用的I/O端口。
端口有复用输出的控制端;引脚也有复用输入的控制端。
3,准双向结构P0,P1,P2,P3口做普通I/O口使用时,都是准双向口结构。
准双向口的典型结构见P1口位结构图。
准双向口的输入操作和输出操作本质不同,输入操作时读引脚状态;输出操作时对口锁存器的写入操作。
有口锁存器和引脚电路可知:当有内部总线对只1或只0时,锁存器的0、1状态立即反应到引脚上。
但是输入操作(读引脚)时,如果口锁存器的状态为0,引脚被嵌位在0状态,导致无法读出引脚的高电平输入。
二,I/O端口的应用特性1,引脚的自动识别。
无论P0,P2口的总线复用,还是P3口的功能复用,内部资源会自动选择,不需要通过指令的状态选择。
2,口锁存器的读、该、写操作。
许多涉及到I/O端口的操作,只是涉及口锁存器的读出、修改、写入的操作。
这些指令都是一些逻辑运算指令、置位/清除指令、条件转移指令以及将I/O口作为目的地址的操作指令。
3,读引脚的操作指令。
如果某个I/O口被指定为源操作数,则为读引脚的操作指令。
例如,执行MOV A,P1时,P1口的引脚状态传送到累加器中,执行MOV P1,A是,指令则将累加器的内容传送到P1口锁存器中。
4,准双向口的使用。
简述单片机最小系统的组成部分

简述单片机最小系统的组成部分
首先,处理器是单片机最小系统的核心构成部分,也是执行控制任务的核心。
处理器可以识别和执行机器指令,它包括存储器、计算机和控制器等部分,把所有的数据进行处理,还可以控制外设的工作。
其次,存储器是单片机最小系统的重要组成部分。
它主要用来存储程序代码和数据,它包括位寄存器和存储器,它们之间通过地址线与数据线连接,可以进行快速的数据处理。
最后,外设是在计算机周围接口设备的总称,它是用于为计算机提供额外的处理服务的设备,包括中断控制器、A/D转换器、时钟模块等。
它们的作用是将外部的信号转换成数字信号,传送给处理器,或将处理器的数字信号转换成模拟信号,输出到外部。
单片机最小系统包括以上三个主要部分,它们之间共同协作,完成计算机控制任务。
它们之间要建立紧密的联系,保证处理器的正常工作,提高系统的计算性能和控制效率。
未来,随着单片机技术的发展,单片机最小系统的性能将得到极大的改善和发展。
单片机最小系统是一种具有非常复杂功能的精密机械系统,它的正确运行对于许多计算机系统至关重要。
它不仅可以满足用户在应用环境中对计算机特殊功能的要求,而且可以提供良好的可靠性和可维护性,大大降低应用成本。
因此,单片机最小系统已经被广泛应用于日常的控制应用中。
- 1 -。
51单片机基本结构详解

51单片机基本结构详解1.什么是单片机单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU 、随机存储器RAM 、只读存储器ROM 、多种I/O 口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调试电路电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统。
图1-1 单片机外形图2.单片机的引脚排列常用的单片机有40个引脚,其排列和功能如图2-1所示。
外ROM读选通信号外接晶体引线端地址锁存控制引脚内外ROM选择引脚21222324252627282930313233343536373839402019181716151413121110987654321VSS XTAL1XTAL2T1/P3.5TO/P3.4TXD/P3.1RXD/P3.0RST/VPD P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0INT0/P3.2INT1/P3.3P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0VCC EA/VPP ALE/PROG PSEN RD/P3.7WR/P3.6电源引脚接地引脚复位信号P1口P0口P3口P2口图2-1单片机的引脚排列和功能3.单片机最小系统单片机最小系统是单片机正常工作的最小硬件要求,包括供电电路、时钟电路、复位电路,如图3-1所示。
图3-1 单片机的最小应用系统判断单片机芯片及时钟系统是否正常工作有一个简单的办法,就是用万用表测量单片机晶振引脚(18、19脚)的对地电压,以正常工作的单片机用数字万用表测量为例:18脚对地约2.24V ,19脚对地约2.09V 。
对于怀疑是复位电路故障而不能正常工作的单片机也可以采用模拟复位的方法来判断,单片机正常工作时第9脚对地电压为零,可以用导线短时间和+5V 连接一下,模拟一下上电复位,如果单片机能正常工作了,说明这个复位电路有问题。
MCS51单片机最小系统设计

四、电路板制作中的几点说明
1、单片机中没有用到的I/O口必须引出,以便于日后的扩展应用。 2、按键不应超过16个。 3、数码管设计为8位,实际制作时安装4位,剩余的4位等需要时再安装。 4、数码管用插座安装,不要直接焊接在电路板上。 5、注意电路板的布局,疏密合理。 一般数码管在电路板的上方,按键在电路板的下方,单片机在电路 板的中心位置。特别注意单片机周围应留出一定的空间,以便于仿真头 的使用。 电源引入脚放置在电路板的左上角,并注意接好去耦电容,也可以 加上电源指示二极管。 I/O口必须引出插座可以放置在电路板的左侧或右侧。 6、晶振电路应尽量靠近单片机。
外部时钟 XTAL1
XTAL2
XTAL2
15~45pf×2
1~12MHz(MCS-51) 0~24MHz(Atmel-89C)
3、 复位和复位电路
RESET: 复位端 (正脉冲有效,宽度> 2个机器周期)
+5V Vcc 10uF RST 10K GND 上电复位 10K GND 手动&上电复位 1K +5V 10uF Vcc
MCS51单片机最小系统设计
一、任务与要求
应用89C51(52)单片机设计并制作一个单片机最小 系统,达到如下基本要求: 1、具有上电复位和手动复位功能。 2、使用单片机片内程序存储器。 3、具有基本的人机交互接口。按键输入、LED显示功能。 4、具有一定的可扩展性,单片机I/O口可方便地与其他电路 板连接。
1、引脚图
2、典型应用电路图
3、使用注意
(1)数码管必须是共阴式的,不能直接使用共阳式的。 (2)R9~R16 是限流电阻,典型值是270Ω。 (3)为了使键盘扫描得以正常进行,下拉电阻R1~R8 和位选电阻R17~R24 是必须的。 它们之间还要遵从一 定的比例关系,比值在5:1到50:1 之间,典型值是10:1。 下拉电阻取值范围在10~100KΩ,位选电阻取值范围在 1~10KΩ。 (4)在多数应用当中可能用不到太多的按键,建议按列裁 减键盘,则相应列的位选电阻可以省略
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
跟我学51单片机(一):单片机最小系统组成与I/O输出控制1单片机是一门实践性较强的技术,很多初学者在学习单片机技术开发的时候往往一头雾水,不知何从下手。
为此,笔者结合自己使用单片机多年的经验,特意设计了单片机开发所需的Stud y-c 整机和硬件套件,并结合套件精心编写了单片机从入门到精通系列教程。
通过讲述单片机原理、电路设计、应用开发软件工具、编写实验实例让读者全面接触单片机技术。
教程编排上由浅入深,循序渐进,内容力求完整、实用、趣味并存,使读者在轻松愉快的学习过程中逐步提高单片机软硬件综合设计水平。
一、内容提要本讲主要向大家介绍51 系列单片机的最小系统的实现并通过编写程序来实现对单片机IO 口的输出控制。
以点亮外部连接的LED(发光二极管)为例,简要的介绍单片机的原理、最小系统的组成,并通过简单的C51 程序设计来讲述编译软件Keil的使用并下载Hex 文件烧写单片机。
二、原理简介在了解原理之前,首先让我们思考一个问题,什么是单片机,单片机有什么用?这是一个有意思的问题,因为任何人都不能给出一个被大家都认可的概念,那到底什么是单片机呢?普遍来说,单片机又称单片微控制器,是在一块芯片中集成了CPU(中央处理器)、RAM (数据存储器)、ROM(程序存储器)、定时器/ 计数器和多种功能的I/O(输入/ 输出)接口等一台计算机所需要的基本功能部件,从而可以完成复杂的运算、逻辑控制、通信等功能。
在这里,我们没必要去找到明确的概念来解析什么是单片机,特别在使用C 语言编写程序的时,不用太多的去了解单片机的内部结构以及运行原理等。
从应用的角度来说,通过从简单的程序入手,慢慢的熟悉然后逐步深入精通单片机。
在简单了解了什么是单片机之后,然后我们来构建单片机的最小系统,单片机的最小系统就是让单片机能正常工作并发挥其功能时所必须的组成部分,也可理解为是用最少的元件组成的单片机可以工作的系统。
对51 系列单片机来说,最小系统一般应该包括:单片机、时钟电路、复位电路、输入/ 输出设备等(见图1)。
图1 单片机最小系统框图三、电路详解依据上文的内容,设计51 系列单片机最小系统见图2。
图2 51系列单片机最小系统下面就图2 所示的单片机最小系统各部分电路进行详细说明。
1. 时钟电路在设计时钟电路之前,让我们先了解下51 单片机上的时钟管脚:XTAL1(19 脚):芯片内部振荡电路输入端。
XTAL2(18 脚):芯片内部振荡电路输出端。
XTAL1 和XTAL2 是独立的输入和输出反相放大器,它们可以被配置为使用石英晶振的片内振荡器,或者是器件直接由外部时钟驱动。
图2 中采用的是内时钟模式,即采用利用芯片内部的振荡电路,在XTAL1、XTAL2 的引脚上外接定时元件(一个石英晶体和两个电容),内部振荡器便能产生自激振荡。
一般来说晶振可以在1.2 ~12MHz 之间任选,甚至可以达到2 4MHz 或者更高,但是频率越高功耗也就越大。
在本实验套件中采用的11.0592M 的石英晶振。
和晶振并联的两个电容的大小对振荡频率有微小影响,可以起到频率微调作用。
当采用石英晶振时,电容可以在20 ~40pF 之间选择(本实验套件使用30pF);当采用陶瓷谐振器件时,电容要适当地增大一些,在30 ~50pF 之间。
通常选取33pF 的陶瓷电容就可以了。
另外值得一提的是如果读者自己在设计单片机系统的印刷电路板(PCB)时,晶体和电容应尽可能与单片机芯片靠近,以减少引线的寄生电容,保证振荡器可靠工作。
检测晶振是否起振的方法可以用示波器可以观察到XTAL2 输出的十分漂亮的正弦波,也可以使用万用表测量(把挡位打到直流挡,这个时候测得的是有效值)XTAL2 和地之间的电压时,可以看到2V 左右一点的电压。
2. 复位电路在单片机系统中,复位电路是非常关键的,当程序跑飞(运行不正常)或死机(停止运行)时,就需要进行复位。
MCS-5l 系列单片机的复位引脚RST(第9 管脚)出现2个机器周期以上的高电平时,单片机就执行复位操作。
如果RST 持续为高电平,单片机就处于循环复位状态。
复位操作通常有两种基本形式:上电自动复位和开关复位。
图2 中所示的复位电路就包括了这两种复位方式。
上电瞬间,电容两端电压不能突变,此时电容的负极和RESET 相连,电压全部加在了电阻上,RESET 的输入为高,芯片被复位。
随之+5V电源给电容充电,电阻上的电压逐渐减小,最后约等于0,芯片正常工作。
并联在电容的两端为复位按键,当复位按键没有被按下的时候电路实现上电复位,在芯片正常工作后,通过按下按键使RST管脚出现高电平达到手动复位的效果。
一般来说,只要RST 管脚上保持10ms 以上的高电平,就能使单片机有效的复位。
图中所示的复位电阻和电容为经典值,实际制作是可以用同一数量级的电阻和电容代替,读者也可自行计算RC 充电时间或在工作环境实际测量,以确保单片机的复位电路可靠。
3. EA/VPP(31 脚)的功能和接法51 单片机的EA/VPP(31 脚)是内部和外部程序存储器的选择管脚。
当EA 保持高电平时,单片机访问内部程序存储器;当EA 保持低电平时,则不管是否有内部程序存储器,只访问外部存储器。
对于现今的绝大部分单片机来说,其内部的程序存储器(一般为flash)容量都很大,因此基本上不需要外接程序存储器,而是直接使用内部的存储器。
在本实验套件中,EA 管脚接到了VCC 上,只使用内部的程序存储器。
这一点一定要注意,很多初学者常常将EA 管脚悬空,从而导致程序执行不正常。
4. P0 口外接上拉电阻51 单片机的P0 端口为开漏输出,内部无上拉电阻(见图3)。
所以在当做普通I/O 输出数据时,由于V2 截止,输出级是漏极开路电路,要使“1”信号(即高电平)正常输出,必须外接上拉电阻。
图3 P0端口的1位结构另外,避免输入时读取数据出错,也需外接上拉电阻。
在这里简要的说下其原因:在输入状态下,从锁存器和从引脚上读来的信号一般是一致的,但也有例外。
例如,当从内部总线输出低电平后,锁存器Q =0,Q =1,场效应管V1 开通,端口线呈低电平状态。
此时无论端口线上外接的信号是低电平还是高电平,从引脚读入单片机的信号都是低电平,因而不能正确地读入端口引脚上的信号。
又如,当从内部总线输出高电平后,锁存器Q =1, Q =0,场效应管V1 截止。
如外接引脚信号为低电平,从引脚上读入的信号就与从锁存器读入的信号不同。
所以当P0 口作为通用I/O 接口输入使用时,在输入数据前,应先向P0 口写“1”,此时锁存器的Q 端为“0”,使输出级的两个场效应管V1、V2 均截止,引脚处于悬浮状态,才可作高阻输入。
总结来说:为了能使P0 口在输出时能驱动NMOS 电路和避免输入时读取数据出错,需外接上拉电阻。
在本实验套件中采用的是外加一个10K 排阻。
此外,51 单片机在对端口P0—P 3 的输入操作上,为避免读错,应先向电路中的锁存器写入“1”,使场效应管截止,以避免锁存器为“0”状态时对引脚读入的干扰。
5. LED 驱动电路细心的读者可能已经发现,在最小系统中,发光二极管(LED)的接法是采取了电源接到二极管正极再经过1K 电阻接到单片机I/O 口上的(见图4 中的接法1)。
为什么这么接呢?首先我们要知道LED 的发光工作条件,不同的LED 其额定电压和额定电流不同,一般而言,红或绿颜色的LED 的工作电压为1.7V~2.4V,蓝或白颜色的LED 工作电压为2.7~4.2V,直径为3mm LED 的工作电流2mA~10mA。
在这里采用红色的3mm 的LED。
其次,51 单片机(如本实验板中所使用的STC89C52单片机)的I/O 口作为输出口时,拉电流(向外输出电流)的能力是μA 级别,是不足以点亮一个发光二极管的。
而灌电流(往内输入电流)的方式可高达20mA,故采用灌电流的方式驱动发光二极管。
当然,现今的一些增强型单片机,是采用拉电流输出(接法2)的,只要单片机的输出电流能力足够强即可。
另外,图4 中的电阻为1K 阻值,是为了限制电流,让发光二极管的工作电流限定在2mA~10mA。
图4 LED的接法四、程序设计在单片机编程语言上,有C 语言和汇编两种选择。
本系列教程采用C 语言编写程序,在此对C语言和汇编语言在进行单片机开发时进行下简单比较,汇编语言面向硬件,要求对硬件的特性如寄存器之类的比较熟悉,执行效率高,但可读性和移植性差,不同的单片机之间的程序不能通用,例如学会了51 单片机的汇编指令,却没法用到AVR 单片机上。
C语言面向过程,可读性和移植性很好,效率要比汇编低一些。
对于刚接触单片机的人来说,学习这两种语言是一样的,但在以后的开发效率上,C 语言的优势就体现出来了,其可以几乎完全不改动的情况下移植,大大提高了开发速度。
控制发光二极管D1 闪烁的C 语言源程序:1. 程序详细说明(1)头文件包含。
程序接下来调用的P0_0 就是该头文件中定义好的一个寄存器地址。
在对单片机内部的寄存器操作之前,应申明其来处,有兴趣的读者可以看看AT89X52.h 文件中的内容。
(2)宏定义led, 便于直观理解也便于程序修改,将P0_0 口命名为led, 这样在程序中就可以用led代替P0_0 口进行操作。
(3)延时函数声明。
函数在调用之前必须进行声明,由于函数定义放在主函数之后,所以在主函数之前对延时函数进行了声明。
(4)主函数入口。
主函数不传递参数也不返回值。
(5)死循环。
(6)输出高电平,led 不亮。
(7)延时一段时间,以便人眼能够直观看到。
(8)输出低电平,led 点亮。
(9)延时一段时间。
(10)延时函数定义。
(11)for 语句循环延时。
2. 程序流程图与实验现象程序流程如图5 所示。
经编译软件(keil)编译,生成单片机烧写文件,然后就可下载到单片机内部运行了,硬件电路板如图6 所示,本实验板上用的是STC89C52RC,可以用通过板载USB 转串口烧写程序。
故将USB 线(本实验套件中有)连接电脑和实验板。
供电电源可以从USB 取,也可以从外部电源取电。
冷启动,即先点击下载,然后再上电。
下载程序到单片机内运行后,可以看到实验板上P0_0 口外接的LED 灯(D1)一亮一灭的闪烁。
图5 程序流程图图6 硬件电路板图五、总结本讲主要介绍了51 单片机最小系统的设计以及编写第一个简单的程序。
从过该实验,可以掌握单片机的开发流程,从而快速入门。
在该讲中应该注意几个问题:1. 本讲座中采用C 语言编写程序,因为C 语言的可读性和可移植性强。
若读者没有学过C 语言,则应去了解和掌握相应的C 语言知识。
C 语言易学易用,相信很快就能熟练。
2. 程序编译软件采用的是Keil。