51单片机C语言入门教程详细解说
零基础学51单片机(C语言版)

9.1独立按键 输入电路与 程序详解
9.2矩阵键盘 输入电路与 程序详解
10.1双色LED 点阵的使用 及编程
10.2 1602 字符型液晶 显示屏的使 用及编程
11.1步进电 机与驱动芯
片介绍
11.2单片机 驱动步进电 机的电路及 编程
1
12.1概述
12.2串行通信 2
口的结构与原 理
3 12.3串行通信
精彩摘录
电源、时钟信号和复位信号是单片机工作必须具备的,提供这三者的电路称为单片机的工作条件电路。 单片机是一种内部包含有CPU、存储器和输入/输出接口等电路的集成电路(又称IC芯片)。 这种具有8051硬件内核且兼容8051指令的单片机称为MCS-51系列单片机,简称51单片机。 单片机是一种内部集成了很多电路的IC芯片(又称集成电路、集成块) 单片机是一块内部包含有 CPU、存储器和输入/输出接口等电路的IC芯片,但单独一块单片机芯片是无法工 作的,必须给它增加一些有关的外围电路来组成单片机应用系统,才能完成指定的任务。 单片机则是将CPU、存储器和输入/输出接口电路等集成在半导体硅片上,再接出引脚并封装起来构成集成电 路,外部的输入/输出设备通过单片机的外部引脚与内部输入/输出接口电路连接起来。 单片机与微型计算机都是由CPU、存储器和输入/输出接口电路(I/O接口电路)等组成的 8051单片机的引脚可分为三类,分别是基本工作条件引脚、I/O(输入/输出)引脚和控制引脚。 sfr用于定义特殊功能寄存器,如“sfr P1=0x90;”是将地址为0x90的特殊功能寄存器名称定义为P1; sbit 用于定义特殊功能寄存器中的某一位,如“sbit LED1=P1^1;”是将特殊功能寄存器P1的第1位名称定义为LED1。
6.2单片机驱 动8位LED数 码管的电路
51单片机及C语言入门教程

51单片机及C语言入门教程本教程将介绍51单片机及C语言的入门知识,帮助初学者快速掌握这两个方面的基本内容。
以下是本教程的详细内容:一、51单片机概述(200字)51单片机是由Intel公司推出的一种常见的单片机芯片,具有广泛应用的特点。
它采用了Harvard结构,具有8位数据总线和16位地址总线。
其主要特点是结构简单、易于学习、应用广泛,适用于各种嵌入式系统。
二、C语言基础(300字)C语言是一种高级编程语言,具有跨平台、可移植性强等特点,被广泛应用于各种软件开发和嵌入式系统中。
学习C语言的基础知识是学习51单片机编程的必要前提。
C语言基础知识主要包括数据类型、变量、常量、运算符、表达式、流程控制语句等内容。
这些知识是学习C语言和51单片机编程的基础,需要仔细理解和掌握。
三、51单片机编程入门(400字)1. 搭建开发环境:首先需要安装51单片机的开发工具,如KeilC51等。
然后,连接单片机开发板和电脑,确保硬件连接正确。
2.了解开发板:学习使用51单片机的开发板是学习51单片机编程的第一步。
具体包括开发板上各个接口的功能和使用方法。
3.编写第一个程序:根据教材或教程,编写第一个简单的程序,如让LED灯闪烁等。
学习如何通过C语言编写程序,将其烧录到单片机中,并运行和调试。
四、C语言与51单片机的应用(300字)在学习了C语言和51单片机的基础知识之后,可以进一步学习它们的应用。
1.输入输出操作:学习如何通过51单片机与外部设备进行输入输出操作,如控制LED灯的亮灭、读取按键输入等。
2.定时器和中断:学习如何使用51单片机的定时器和中断功能来实现定时任务和外部事件处理。
3.串口通信:学习如何通过51单片机的串口通信功能与其他设备进行数据交换和通信。
五、实例项目及拓展应用(200字)完成了基础学习后,可以尝试一些实例项目,如温度测量系统、遥控器、电子钟等。
同时,可以进一步学习其他相关知识,如LCD显示、SPI 通信等,以扩展自己的应用能力。
51系列单片机_C语言_快速入门_一_

ห้องสมุดไป่ตู้
一、学习单片机必须的思想及物质准备 首先,对于初学单片机的人来说,必须有学习单片机的热情,不是说今天去图书馆看了一下 午关于单片机的书,明天玩上半天,后天就不知道那本书在讲什么东西了。笔者刚开始接触单片 机时,正如前面所说的,仅知道有一种芯片叫单片机,但是具体长成什么样子,却一点也不知道! 但一直坚持看单片机的书,虽然有很多不懂,还是坚持了下来。 当明白了单片机是这么一回事的时候,问题出来了:要选择哪种语言为单片机编写程序呢?为 这个问题,困扰了好久。具体选择 C51 还是 A51 呢?汇编在以前没有学过,虽然看着人家的讲解, 很容易明白单片机每一时刻具体工作情况,但是一合上书或者资料,却什么也不知道了,更不用 说自己写程序了。最终,还是决定学 C51。毕竟 C51 和课上所学的 C 语言有些类似,编程的思想 是相通的。而且 C51 还有更大的优点,就是编写大程序时的优越性。当然,那时并没有想那么深 远,C51 的特点,还是在后来的实践过程中,渐渐体会到的。如果你选择了 C51,或即将选择学 习 C51,本文将引你逐渐入门。 第二、既然想学好单片机,必须得舍得花钱。如果不买些芯片回来自己动手焊焊拆拆的(在后 期,会介绍给大家一个很好用的硬件仿真软件,并不需要用实验板和仿真器了,直接在你的 PC 上完成。但是,软件毕竟是软件,从某个特定的意义上来说,并不能代替硬件),即使每天捧着书 本,把那本书翻烂,也永远学不会单片机。刚接触单片机的朋友,看了资料,一定会对以下几个 词见得比较多,但是具体概念还是比较模糊,现作如下说明: (1)编程器 编程器是用来烧单片机芯片的,是把 HEX 或者 BIN 文件烧到单片机 ROM 里的,供单片机 运行的。 (2)实验板 实验板是专为初学者根据某些要求而特制的板子,一般上面均有一个单片机最小系统,是使 用者只需写好程序,烧好芯片,放到上面加以验证的一个工具。有了实验板,对于初学者来说, 省去了焊接最小系统的麻烦。但是它对于电子开发人员来说,作用并不是很大。 (3)仿真器 仿真器是直接把 HEX 或者 BIN 文件暂时放在一个芯片里,再通过这个芯片的引脚连接到实 验板或者系统上工作。这样一来,可以省去来回插拔’芯片带来的麻烦。 笔者一开始也不知道上面三个概念和作用,原本想买个实验板(不想焊板,因为不可能为了点 亮几个流水灯,而去焊个单片机的最小系统)的,可是结果却和所想的相反,人家出售的是编程器。 等货物寄到后,才知道自己搞错了!不幸的是,花了 160 元买的编程器,不仅用不了,还一烧芯片, 芯片就烧坏了)。这个编程器,现在还躺在抽屉里。不过,现在想想,唯一觉得欣慰的是,那个老 板每次能解答我的问题,连那种超级幼稚的问题,他也能不嫌麻烦地尽量帮我解答,让人很感动。
(1小时学会C语言51单片机)C语言入门教程

(四)说到这里,我们来讲讲数码管的显示方式,可分为两种:动态扫描和静态显示。
上面我们所说的即为静态显示。
但是如果我们采用动态扫描显示,那么就可以解决上面的问题,即可以显示多个数码管了。
上面我们所说的静态显示把数码管的COM脚接至VCC或GND端,其他的接至PX口上,这样只要PX口上输出相应的高低电平,就可以显示对应的数字或字符。
但是如果我们采用动态扫描的方法,比如显示6个数码管,硬件连接可以这样解决:a--dp还是接至P0.0--P0.7上,还有6个COM脚再接至另外口的P2.0--P2.5。
P0口作段选(控制数字字符)P2口作位选(选通哪个数码管导通)这样我们控制P0和P2口就可以控制6个数码管了。
但是,细心的朋友,会问这样的问题:P2位选,是让数码管一个一个亮的,那还是不能控制6个一起亮或灭嘛!?^_^ 想想好象是对的哦?怎么办...难道错了?嘿嘿,问你个问题?黑夜里,拿着一支烟,在你面前快速的晃动,你会发现什么样的现象?是不是原本不连续的点变成了一条看上去连续的曲线或者直线!再回过头来,仔细想想我们的数码管!原理是一样的,你可别忘了,我们的单片机可是一个计算机哦,计算机的运算速度,大家可想而知吧!这里再说说51单片机的机器周期和时钟周期等概念。
所谓机器周期就是访问一次存储器的时间。
而1个机器周期包括12个时钟周期。
如果单片机工作在12M晶体下,那么一个时钟周期为:1/12微妙。
一个机器周期12*1/12 = 1微妙。
如果晶体为6M,时钟周期和机器周期各是多少呢?在汇编中,我们还要关心,指令执行的机器周期长短不一,有1个周期、2个周期和4个周期等。
说着说着,跑了这么远了...还是回到原来的话题,如果我们把位选的P2也看作上面的“烟”一划而过,那么我们看到的是不是6个一起亮或一起灭了!^_^ 哈哈,原来如此... 记住,在任何某一时刻,有且只有一个数码管能发光。
如果你能把这句话理解了,你是真明白我的意思了!朋友,现在给你个任务,让6个数码管分别显示1、2、3、4、5、6。
51单片机C语言教程

新建一个 RunLED 的项目,主程序如下: #include //预处理文件里面定义了特殊寄存器的名称如 P1 口定义为 P1 void main(void) { //定义花样数据 const unsigned char design[32]={0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F, 0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF, 0xFF,0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x0, 0xE7,0xDB,0xBD,0x7E,0xFF}; unsigned int a; //定义循环用的变量 unsigned char b; //在 c51 编程中因内存有限尽可能注意变量类型的使用 //尽可能使用少字节的类型,在大型的程序中很受用 do{ for (b=0; b<32; b++)
8.sfr16 16 位特殊功能寄存器
sfr16 占用两个内存单元,值域为 0~65535。sfr16 和 sfr 一样用于操作特殊功能寄存 器,所不一样的 是它用于操作占两个字节的寄存器,如定时器 T0 和 T1。
9. sbit 可录址位
sbit 同样是 单片机 c 语言 中的一种扩充数据类型,利用它能访问芯片内部的 RAM 中的可寻址
5. 位标量,它的值是一个二进制。
转义字符 \o \n \r \t \b \f \ \" \\
含义 空字符(NULL) 换行符(LF) 回车符(CR) 水平制表符(HT) 退格符(BS) 换页符(FF) 单引号 双引号 反斜杠
手把手教你学51单片机(C语言)

C-51的数据类型扩充定义
sfr:特殊功能寄存器声明 sfr16:sfr的16位数据声明 sbit:特殊功能位声明 bit:位变量声明 例:sfr SCON = 0X98; sfr16 T2 = 0xCC; sbit OV = PSW^2;
C-51的包含的头文件
通常有:reg51.h reg52.h math.h ctype.h stdio.h stdlib.h absacc.h 常用有:reg51.h reg52.h (定义特殊功能寄存器和位寄存器); math.h (定义常用数学运算);
总线(BUS)是计算机各部件之间传送信息 的公共通道。微机中有内部总线和外部总 线两类。内部总线是CPU内部之间的连线。 外部总线是指CPU与其它部件之间的连线。 外部总线有三种: 数据总线DB(Data Bus), 地址总线 AB(Address Bus)和 控制总线 CBControl Bus)。
80C51的引脚封装
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RST/VPD P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD XTAL2 XTAL1 VSS 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 VCC P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 EA/VPP ALE/PROG PSEN P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 RST P3.0/RXD P3.1/TXD XTAL2 XTAL1 P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 GND 1 2 3 4 5 6 7 8 9 10 20 19 18 17 16 15 14 13 12 11 VCC P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1/AIN1 P1.0/AIN0 P3.7
(1小时学会C语言51单片机)C语言入门教程1

我们在单片机最小系统上接个LED,看我们能否点亮它!对了,上面也有好几次提到过单片机最小系统了,所谓单片机最小系统就是在单片机上接上最少的外围电路元件让单片机工作。
一般只须连接晶体、VCC、GND、RST即可,一般情况下,A T89C51的31脚须接高电平。
#include<reg51.h> //头文件定义。
或用#include<at89x51.h>其具体的区别在于:后者定义了更多的地址空间。
//在Keil安装文件夹中,找到相应的文件,比较一下便知!sbit P1_0 = P1 ^ 0; //定义管脚void main (void){while(1){P1_0 = 0;//低电平有效,如果把LED反过来接那么就是高电平有效}}就那么简单,我们就把接在单片机P1_0上的LED点亮了,当然LED是低电平,才能点亮。
因为我们把LED的正通过电阻接至VCC。
P1_0 = 0; 类似与C语言中的赋值语句,即把0 赋给单片机的P1_0引脚,让它输出相应的电平。
那么这样就能达到了我们预先的要求了。
while(1)语句只是让单片机工作在死循环状态,即一直输出低电平。
如果我们要试着点亮其他的LED,也类似上述语句。
这里就不再讲了。
点亮了几个LED后,是不是让我们联想到了繁华的街区上流动的彩灯。
我们是不是也可以让几个LED依次按顺序亮呢?答案是肯定的!其实显示的原理很简单,就是让一个LED灭后,另一个立即亮,依次轮流下去。
假设我们有8个LED分别接在P1口的8个引脚上。
硬件连接,在P1_1--P1_7上再接7个LED即可。
例程如下:#include<reg51.h>sbit P1_0 = P1 ^ 0;sbit P1_1 = P1 ^ 1;sbit P1_2 = P1 ^ 2;sbit P1_3 = P1 ^ 3;sbit P1_4 = P1 ^ 4;sbit P1_5 = P1 ^ 5;sbit P1_6 = P1 ^ 6;sbit P1_7 = P1 ^ 7;void Delay(unsigned char a){unsigned char i;while( --a != 0){for(i = 0; i < 125; i++); //一个; 表示空语句,CPU空转。
51单片机C语言编程入门(详讲版)

中国科学技术大学业余无线电协会编目 录§1 前言 (1)§2 单片机简介 (2)2.1 数字电路简介 (2)2.2 MCS-51单片机简介 (2)2.3 Easy 51 Kit Pro简介 (5)2.4 Easy 51 Kit Pro电路功能分析 (5)§3 MCS-51单片机的C语言编程 (8)3.1 汇编语言 (8)3.2 建立你的第一个C项目 (8)3.3 生成hex文件 (12)3.4 Keil C语言 (14)3.5 单片机I/O (18)3.6 中断 (25)3.7 定时器/计数器 (27)3.8 定时器的应用举例 (29)3.9 外部中断 (34)3.10 串行通信 (38)3.11 定时器2 (43)3.12 看门狗 (47)3.13 空闲模式和掉电模式 (50)§4 MCS-51单片机C语言编程应用进阶 (51)4.1 扫描式键盘 (51)4.2 EEPROM芯片AT93C46的读写 (55)4.3 Keil C的高级使用 (63)§5 编写高质量的单片机C程序 (64)5.1 文件结构 (64)5.2 程序的版式 (66)5.3 单片机程序命名规则与变量选择 (70)5.4 表达式和基本语句 (73)5.5 函数设计 (77)5.6 单片机程序框架 (79)附图:Easy 51 Kit Pro电路图(最小系统板) (80)附图:Easy 51 Kit Pro电路图(学习板) (81)§1 前言什么是单片机,目前还没有一个确切的定义。
普通认为单片机是将CPU、RAM、ROM、定时器/计数器以及输入输出(I/O)接口电路等计算机主要部件集成在一块芯片上,这样所组成的芯片级微型计算机称为单片微型计算机(Single Chip Microcomputer)。
简称为单片微机或单片机。
利用单片机程序,可以实现对硬件系统的小型化的智能控制。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
sbit P1_0 = P1 ^ 0; sbit P1_1 = P1 ^ 1; sbit P1_2 = P1 ^ 2; sbit P1_3 = P1 ^ 3; sbit P1_4 = P1 ^ 4; sbit P1_5 = P1 ^ 5; sbit P1_6 = P1 ^ 6; sbit P1_7 = P1 ^ 7;
有了上述 3 个条件后,你就可以开始学你的单片机了。但是,真的做起来并没有我所说 的那么简单。你一定会遇到很多很多的问题。比如 为了让单片机实现某个功能,你可能不知道怎么去写某个程序。或是你看懂了资料上某个相 似的程序,你自己却写不出来。遇到类似的情况, 记住:千万不要急噪,就行!
(二)
说了这么多了,相信你也看了很多资料了,手头应该也有必备的工具了吧!(不要忘了上 面讲过几个条件的哦)。那个单片机究竟有什么 功能和作用呢?先不要着急!接下来让我们点亮一个 LED(搞电子的应该知道 LED 是什么 吧^_^)
//在 Keil 安装文件夹中,找到相应的文件,比较一下便知! sbit P1_0 = P1 ^ 0; //定义管脚 void main (void) { while(1) { P1_0 = 0;//低电平有效,如果把 LED 反过来接那么就是高电平有效 } }
就那么简单,我们就把接在单片机 P1_0 上的 LED 点亮了,当然 LED 是低电平,才能点 亮。因为我们把 LED 的正通过电阻接至 VCC。
creating hex file from "XXX"... "XXX" - 0 Error(s), 0 Waring(s). 表示编译和生成 HEX 文件成功!接下来的就是把 HEX 文件烧到单片机中,或是仿真器上, 看是否达到预先的目的! 嘿嘿!现在是否自己好有成就感了,如果让你去做个流水彩灯,开发一个简单的产品,只要 加上驱动电路,就可以做出漂亮的流动彩灯 了!到现在为止,你应该知道单片机的功能有多强大了吧,如果单纯的用数字电路或模拟电 路的知识去设计一个流动彩灯,可能要花点工夫 和时间才行,有了单片机,那就不一样了,你只要写程序控制他就行!有人说过这样一句话, 也并不无道理的,学单片机,程序思想很重要!
P1_4 = 1;
P1_5 = 0; Delay(250);
P1_5 = 1;
P1_6 = 0; Delay(250);
P1_6 = 1;
P1_7 = 0; Delay(250); P1_7 = 1; } }
sbit 定义位变量,unsigned char a 定义无符字符型变量 a,以节省单片机内部资源,其有 效值为 0~255。main 函数调用 Delay()函数。 Delay 函数使单片机空转,LED 持续点亮后,再灭,下一个 LED 亮。while(1)产生循环。
(三)
上面我们讲了如何使 LED 产生流动,但是你是否发现一个问题:写的太冗长了!能不能 再简单点呢?可以!可以使用 C51 的内部函数 INTRINS.H 实现。函数 unsigned char _crol_(unsigned char a, unsigned char n) 可以使变量 a 循环左移 n 位,如果我们先给 P1 口赋 0000 0001 那么当 n 为 1 时,便会产生和上面一样的效果! #include<intrins.h> #include<reg51.h>
P1 = _crol_(b, 1); b = P1;
Delay(250); } } }
INTRINS.H 函数中的 unsigned char _cror_(unsigned char a, unsigned char n)右移也可以实 现同样的效果!这里就不再累述。
流水灯的花样很多,我还写过那种拉幕式的流动等,程序很简单,有兴趣的朋友,可以 自己试着写写!
void Delay(unsigned char a) { unsigned char i; while( --a != 0) { for(i = 0; i < 125; i++); } }
void main(void) { unsigned char b, i; while(1) { b = 0xfe; for(i = 0; i < 8; i++) {
当你明白了单片机是这么一回事的时候,显而易见的问题出来了:我要选择那种语言为 单片机编写程序呢?这个问题,困扰了我好久。具 体选择 C51 还是 A51 呢?汇编在我们大二之前并没有开过课,虽然看着人家的讲解,很容 易明白单片机的每一时刻的具体工作情况,但是一合上 书或者资料,自己却什么也不知道了,根本不用说自己写程序了。于是,我最终还是决定学 C51,毕竟 C51 和我们课上讲的 C 语言,有些类似, 编程的思想可以说是相通的。而且 C51 还有更大的优点就是编写大程序时的优越性更不言 而喻,当然在那时,我并没有想的那么深远,C51 的特 点,还是在后来的实践过程中,渐渐体会到的!朋友如果你选择了 C51,那么请继续往下看, 如果你选择了 A51,那么你可以不要看了!因为下面讲 的全是 C 方面的,完全在浪费你的时间! 呵呵 ^_^
我一开始也不知道上面 3 个的概念和作用,嘿嘿,原本想买个实验板(不想焊板,因为不可能 为了点亮几个流水灯,而去焊个单片机的最小系统) 的,可是结果,确和我想的正好相反,人家出售的是编程器。等货物寄到后,才知道自己搞错了! 汗。。。嘿嘿。现在想想实在是又气又笑。我花 了 160 大样买了个编程器(很不幸的是,这个编程器更本用不了,一烧芯片,芯片就烧坏了) 把我给气的,这个编程器,现在还躺在我的抽屉里 呢不过,现在想想,唯一让我觉得欣慰的是,那个老板每次能解答我的问题,连那种超级幼 稚的问题,他也能不嫌麻烦地尽量帮我解答!这点让 我很感动!
的芯片(这里我们一般用到 Atmel 的 AT89C51 或 AT89C2051,点确定。 3.点 File-->New-->输入我们编写的程序,保存为.C 文件。(一般情况下,我们保存的文件名 和前面的工程名一样。)
4.展开 Target 1 -->右击 Source Group 1 -->Add Files to Group 'Source Group 1'-->选择刚才保存 的.C 文件点击 ADD 后,关闭对 话框。这样.C 文件就被加到了 Source Group 1 下。 5.右击 Target 1-->Options for 'Target 1' -->Target 中填写晶体的大小,Output 中,在 Create HEX Files 前打上钩,点确 定。 6.点 Project-->Rebuild All Traget Files ,若提示
{ while(1) { P1_0 = 0;
Delay(250); P1_0 = 1;
P1_1 = 0; Delay(250);
P1_1 = 1;
P1_2 = 0; Delay(250);
P1_2 = 1;
P1_3 = 0; Delay(250);
P1_3 = 1;
P1_4 = 0; Delay(250);
P1_0 = 0; 类似与 C 语言中的赋值语句,即把 0 赋给单片机的 P1_0 引脚,让它输出相应 的电平。那么这样就能达到了我们预先的要求了。
while(1)语句只是让单片机工作在死循环状态,即一直输出低电平。如果我们要试着点亮其 他的 LED,也类似上述语句。这里就不再讲了。
点亮了几个 LED 后,是不是让我们联想到了繁华的街区上流动的彩灯。我们是不是也可 以让几个 LED 依次按顺序亮呢?答案是肯定的!其 实显示的原理很简单,就是让一个 LED 灭后,另一个立即亮,依次轮流下去。 假设我们有 8 个 LED 分别接在 P1 口的 8 个引脚上。硬件连接,在 P1_1--P1_7 上再接 7 个 LED 即可。例程如下: #include<reg51.h>
第二,既然你想学好单片机,你必须得舍得花钱,如果不买些芯片回来自己动手焊焊拆 拆的(但是在后期会介绍给大家一个很好用的硬件 仿真软件,并不需要你用实验板和仿真器了,直接在你的 PC 上完成,但是软件毕竟是软件,从某 个特定的意义上来说是并不能代替硬件的),即使
你每天捧着本书,把那本书翻烂,也永远学不会单片机的!刚接触单片机的朋友,看了资料, 一定会对以下几个词见的比较多,但是具体的概 念还是比较模糊,现作如下说明: (1)编程器 编程器是用来烧单片机芯片的,是把 HEX 或者 BIN 文件烧到单片机 ROM 里 的,供单片机运行的。 (2)实验板 实验板是专为初学者根据某些要求而特做的板,一般上面就有一个单片机的最 小系统,使用者只需写好程序,烧好芯片,放 到上面加以验证的这么一个工具。有了实验板,对与初学者来说,省去了焊个最小系统的麻 烦。但是对于电子开发人员来说,作用并不是很大 (3)仿真器 仿真器是直接把 HEX 或者 BIN 文件暂时放在一个芯片里,再通过这个芯片的 引脚连接到实验板或者系统上工作。这样以来,可 以省去了来回插拔芯片带来的不必要麻烦。
我们在单片机最小系统上接个 LED,看我们能否点亮它!对了,上面也有好几次提到过单片 机最小系统了,所谓单片机最小系统就是在单片机 上接上最少的外围电路元件让单片机工作。一般只须连接晶体、VCC、GND、RST 即可, 一般情况下,AT89C51 的 31 脚须接高电平。