动力工作窒 51单片机C语言入门教程 http://edle.126.com File Edit View Project Debug Peripherals Tools SvCS Window Help 回娜易 A%%形图 國口网兔题画 蹄9刊1|中龄时愿插口断入 Register 目M管上xsel#1 A/ATOaVC1 T include Hello World *include <stdio. h>=Hello World! Hello worlds r2 void main(void) HelloWorld HelloWorld AsCo=0x50:串一 Hello World! TM∩n=nv2n Ual 1A lamla … 自test1. c sErial#l xl Load"D: \\Max Name xdr ess 图1-8调试运行程序 第二课初步认识51芯片 上一课我们的第一个项目完成了,可能有懂C语言的朋友会说,“这和PC机上的C语言 没有多大的区别呀”。的确没有太大的区别,C语言只是一种程序语言的统称,针对不同的 处理器相关的C语言都会有一些细节的改变。编写PC机的C程序时,如要对硬件编程您就 必须对硬件要有一定的认识,51单片机编程就更是如此,因它的开发应用是不可与硬件脱 节的,所以我们先要来初步认识一下51苾片的结构和引脚功能。MSC51架构的芯片种类很 多,具体特点和功能不尽相同(在以后编写的附录中会加入常用的一些51芯片的资料列表), 在此后的教程中就以Atme公司的AT89c51和AT89c2051为中心对象来进行学习,两者是 AT89系列的典型代表,在爱好者中使用相当的多,应用资料很多,价格便宜,是初学51的 首选芯片。嘿嘿,口水多多有点卖广告之嫌了。:P 0:165432 RST/PP (RXD) P3.0 (TXD)P3.1 18P16 (AD7 XTAL2 (HXD) P3o TxD) P3. 30 F ALE/PROG XTAL1 16P14 (INTO) 7《A15 764 (INT 1)P3.3 14P12 13|P1.1(AN1) (WR) P3.6 (T1)P35 12P1.0ANo) AT89C51 AT89c2051 图2-1AT89C51和AT89C2051引脚功能图
51 单片机 C 语言入门教程 - 6 - 图 1-8 调试运行程序 第二课 初步认识 51 芯片 上一课我们的第一个项目完成了,可能有懂 C 语言的朋友会说,“这和 PC 机上的 C 语言 没有多大的区别呀”。的确没有太大的区别,C 语言只是一种程序语言的统称,针对不同的 处理器相关的 C 语言都会有一些细节的改变。编写 PC 机的 C 程序时,如要对硬件编程您就 必须对硬件要有一定的认识,51 单片机编程就更是如此,因它的开发应用是不可与硬件脱 节的,所以我们先要来初步认识一下 51 苾片的结构和引脚功能。MSC51 架构的芯片种类很 多,具体特点和功能不尽相同(在以后编写的附录中会加入常用的一些 51 芯片的资料列表), 在此后的教程中就以 Atmel 公司的 AT89C51 和 AT89C2051 为中心对象来进行学习,两者是 AT89 系列的典型代表,在爱好者中使用相当的多,应用资料很多,价格便宜,是初学 51 的 首选芯片。嘿嘿,口水多多有点卖广告之嫌了。:P 图 2-1 AT89C51 和 AT89C2051 引脚功能图
动力工作窒 51单片机C语言入门教程 http://edle.126.com AT89C51 AT89c2051 AKB可编程Fash存储器(可擦写1000次)|2KB可编程 Flash存储器(可擦写1000次) 三级程序存储器保密 两级程序存储器保密 静态工作频率:0Hz24MHz 静态工作频率:OHz24M 128字节内部RAM 128字节内部RAM 2个16位定时/计数器 2个16位定时/计数器 一个串行通讯口 个串行通讯口 6个中断源 6个中断源 32条I/0引线 15条1/0引线 片内时种振荡器 1个片内模拟比较器 表2-1AT89C51和AT89C2051主要性能表 图2-1中是AT89C51和AT89C2051的引脚功能图。而表2-1中则是它们的主要性能表 以上可以看出它们是大体相同的,由于AT89C2051的I0线很少,导致它无法外加RAM和程 序ROM,片内 Flash存储器也少,但它的体积比AT89C51小很多,以后大家可根据实际需要 来选用。它们各有其特点但其核心是一样的,下面就来看看AT89C51的引脚具体功能 1.电源引脚 Vcc40电源端 GND20接地端 ★工作电压为5V,另有AT89LV51工作电压则是2.7-6V,引脚功能一样。 2.外接晶体引脚 C2 XTAL2 悬空 XTAL2 C1 XT^AL1外部振荡 信号 GND 内部方式 2.外部方式 图2-2外接晶体引脚 XTAL1 19 XTAL2 18 XTAL1是片内振荡器的反相放大器输入端,ⅩTAL2则是输出端,使用外部振荡器 时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振 荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHzs晶振的频率可以在1MHz-24MHz 内选择。电容取30PF左右
51 单片机 C 语言入门教程 - 7 - AT89C51 AT89C2051 4KB 可编程 Flash 存储器(可擦写 1000 次) 2KB 可编程 Flash 存储器(可擦写 1000 次) 三级程序存储器保密 两级程序存储器保密 静态工作频率:0Hz-24MHz 静态工作频率:0Hz-24MHz 128 字节内部 RAM 128 字节内部 RAM 2 个 16 位定时/计数器 2 个 16 位定时/计数器 一个串行通讯口 一个串行通讯口 6 个中断源 6 个中断源 32 条 I/O 引线 15 条 I/O 引线 片内时种振荡器 1 个片内模拟比较器 表 2-1 AT89C51 和 AT89C2051 主要性能表 图 2-1 中是 AT89C51 和 AT89C2051 的引脚功能图。而表 2-1 中则是它们的主要性能表。 以上可以看出它们是大体相同的,由于 AT89C2051 的 IO 线很少,导致它无法外加 RAM 和程 序 ROM,片内 Flash 存储器也少,但它的体积比 AT89C51 小很多,以后大家可根据实际需要 来选用。它们各有其特点但其核心是一样的,下面就来看看 AT89C51 的引脚具体功能。 1.电源引脚 Vcc 40 电源端 GND 20 接地端 *工作电压为 5V,另有 AT89LV51 工作电压则是 2.7-6V, 引脚功能一样。 2.外接晶体引脚 图 2-2 外接晶体引脚 XTAL1 19 XTAL2 18 XTAL1 是片内振荡器的反相放大器输入端,XTAL2 则是输出端,使用外部振荡器 时,外部振荡信号应直接加到 XTAL1,而 XTAL2 悬空。内部方式时,时钟发生器对振 荡脉冲二分频,如晶振为 12MHz,时钟频率就为 6MHz。晶振的频率可以在 1MHz-24MHz 内选择。电容取 30PF 左右
磁动力工作窒 51单片机C语言入门教程 http://edle.126.com 型号同样为AT89C51的芯片,在其后面还有频率编号,有12,16,20,24MHz可选。 大家在购买和选用时要注意了。如A89C5124PC就是最高振荡频率为24MHz,40P6封 装的普通商用芯片 3.复位RST9 在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿 时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后P-P3口 均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚由 高电平变为低电平时,芯片为ROM的0OH处开始运行程序。常用的复位电路如图2 3所示 ★复位操作不会对内部RAM有所影响 RESET 图2-3常用复位电路 4输入输出引脚 (1)P0端口[P0.0-P0.]P0是一个8位漏极开路型双向I/0端口,端口置1(对端 口写1)时作高阻抗输入端。作为输出口时能驱动8个TTL 对内部 Flash程序存储器编程时,接收指令字节校验程序时输出指令字节,要 求外接上拉电阻。 在访问外部程序和外部数据存储器时,P0口是分时转换的地址低8位)数据 总线,访问期间内部的上拉电阻起作用。 (2)Pl端口P10-P17P1是一个带有内部上拉电阻的8位双向0端口。输出时 可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。 对内部Fash程序存储器编程时,接收低8位地址信息 (3)P2端口[P20-P27P2是一个带有内部上拉电阻的8位双向0端口。输出时 可驱动4个TIL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用 对内部 Flash程序存储器编程时,接收高8位地址和控制信息。 在访问外部程序和16位外部数据存储器时,P2口送出高8位地址。而在访问8 位地址的外部数据存储器时其引脚上的内容在此期间不会改变
51 单片机 C 语言入门教程 - 8 - *型号同样为 AT89C51 的芯片,在其后面还有频率编号,有 12,16,20,24MHz 可选。 大家在购买和选用时要注意了。如 AT89C51 24PC 就是最高振荡频率为 24MHz,40P6 封 装的普通商用芯片。 3.复位 RST 9 在振荡器运行时,有两个机器周期(24 个振荡周期)以上的高电平出现在此引腿 时,将使单片机复位,只要这个脚保持高电平,51 芯片便循环复位。复位后 P0-P3 口 均置 1 引脚表现为高电平,程序计数器和特殊功能寄存器 SFR 全部清零。当复位脚由 高电平变为低电平时,芯片为 ROM 的 00H 处开始运行程序。常用的复位电路如图 2- 3 所示。 *复位操作不会对内部 RAM 有所影响。 图 2-3 常用复位电路 4.输入输出引脚 (1) P0 端口[P0.0-P0.7] P0 是一个 8 位漏极开路型双向 I/O 端口,端口置 1(对端 口写 1)时作高阻抗输入端。作为输出口时能驱动 8 个 TTL。 对内部 Flash 程序存储器编程时,接收指令字节;校验程序时输出指令字节,要 求外接上拉电阻。 在访问外部程序和外部数据存储器时,P0 口是分时转换的地址(低 8 位)/数据 总线,访问期间内部的上拉电阻起作用。 (2) P1 端口[P1.0-P1.7] P1 是一个带有内部上拉电阻的 8 位双向 I/0 端口。输出时 可驱动 4 个 TTL。端口置 1 时,内部上拉电阻将端口拉到高电平,作输入用。 对内部 Flash 程序存储器编程时,接收低 8 位地址信息。 (3) P2 端口[P2.0-P2.7] P2 是一个带有内部上拉电阻的 8 位双向 I/0 端口。输出时 可驱动 4 个 TTL。端口置 1 时,内部上拉电阻将端口拉到高电平,作输入用。 对内部 Flash 程序存储器编程时,接收高 8 位地址和控制信息。 在访问外部程序和 16 位外部数据存储器时,P2 口送出高 8 位地址。而在访问 8 位地址的外部数据存储器时其引脚上的内容在此期间不会改变