单片机教学C语言教程

合集下载

51单片机及C语言入门教程

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语言教程

51单片机C语言教程
实验电路的基础上增加几个 LED 组成的,也就是用 P1 口的全部引脚分别驱动一个 LED,电 路如图 4-1 所示。
新建一个 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语言入门教程

51单片机C语言入门教程

51单片机C语言入门教程单片机是一种集成电路,可以完成各种功能。

C语言是一种高级编程语言,可以用来编写单片机的程序。

本文将介绍51单片机C语言的入门教程。

一、选择合适的开发环境选择合适的开发环境是学习51单片机C语言的第一步。

常用的开发环境有Keil C51、SDCC、IAR Embedded Workbench等。

这些开发环境都提供了开发工具和编译器,方便编写和调试代码。

二、了解51单片机的基本结构三、学习C语言的基本语法学习C语言的基本语法是学习51单片机C语言的基础。

C语言包括数据类型、变量、运算符、控制流语句等等。

学习C语言的基本语法可以参考相关的C语言教程。

四、掌握51单片机的特殊功能寄存器51单片机具有一些特殊功能寄存器,可以实现各种功能。

例如,P0是一个I/O口,可以用来控制外部设备的输入和输出;TMOD和TCON分别是定时器/计数器的模式和控制寄存器,可以实现定时和计数功能。

掌握这些特殊功能寄存器可以为后面的单片机编程做好准备。

五、编写第一个51单片机C语言程序编写第一个51单片机C语言程序可以帮助巩固前面学习的知识。

可以从简单的LED闪烁程序开始,逐步扩展到其他功能。

编写程序的过程中要注意语法的正确性和逻辑的合理性。

六、调试程序调试程序是保证程序正确运行的关键。

可以使用仿真器或者调试器对程序进行调试。

调试程序可以查看程序的运行状态、变量的值等等,帮助定位错误并进行修复。

七、深入学习更高级的C语言特性一旦掌握了基本的51单片机C语言编程,可以深入学习更高级的C语言特性。

例如,函数的使用、数组的应用、结构体和指针等等。

这些高级特性可以使程序更加模块化和灵活。

八、练习和实践练习和实践是巩固51单片机C语言编程知识的最好方法。

可以选择一些小项目或者例程进行练习,将理论知识应用于实际。

总结:通过以上的步骤,我们可以初步学习和掌握51单片机C语言的编程。

当然,这仅仅是入门级别的教程,还有很多更深入的知识需要进一步学习和探索。

单片机c语言教程全集

单片机c语言教程全集
图 1-8 调试运行程序
sylar源于heros
lize314于2010-05-06给此贴评了10分
看推荐视频,得100元卓越礼品券
回复 回复本帖 回到顶端??
单片机c语言教程第二课 C51HEX文件的生成和单片机最小系统??发表于 2009-07-30 15:03:51??我想评分
·C语言提供复杂的数据类型(数组、结构、联合、枚举、指针等),极大地增强了程序处理能力和灵活性;
·提供small、compact、large等编译模式,以适应片上存储器的大小;
·中断服务程序的现场保护和恢复,中断向量表的填写,是直接与单片机相关的,都由C编译异常的重要因素。C语言对数据进行了许多专业性的处理,避免了运行中间非异步的破坏
图 1-6 把文件加入到项目文件组中
(5)C程序文件已被加到了项目中了,下面就剩下编译运行了。这个项目只是用做学 习新建程序项目和编译运行仿真的基本方法,所以使用软件默认的编译设置,它不会生成用 于芯片烧写的 HEX 文件。先来看图 1-7 吧,图中 1、2、3 都是编译按钮,不一样是 1 是用 于编译单个文件。2 是编译链接当前项目,如果先前编译过一次之后文件没有做动编辑改动, 这个时候再点击是不会再次重新编译的。3 是重新编译,每点击一次均会再次编译链接一次,不 管程序是否有改动。在 3 右边的是停止编译按钮,只有点击了前三个中的任一个,停止按钮 才会生效。5 是菜单中的它们。在 4 中能看到编译的错误信息和使用的系统资源情况等, 以后我们要查错就靠它了。6 是有一个小放大镜的按钮,这就是开启\关闭调试模式的按钮, 它也存在于菜单 Debug-Start\Stop Debug Session,快捷键为 Ctrl+F5。

51单片机c语言教程

51单片机c语言教程

51单片机c语言教程单片机是一种集成了处理器、存储器和各种输入输出接口的微型计算机。

它可以用来完成各种任务,如控制电机、采集数据、控制显示等。

在单片机中,C语言是一种常用的编程语言,通过使用C语言来编写单片机程序,可以更加方便快捷地完成各种功能。

单片机使用C语言进行编程的主要流程如下:首先,需要搭建一个适合的开发环境。

在使用C语言编写单片机程序之前,需要安装相应的开发工具,如Keil C51、IAR Embedded Workbench等。

这些开发工具可以提供编译、调试等功能,方便我们进行程序开发和调试。

接下来,需要了解单片机的硬件平台。

在编写单片机程序之前,需要了解单片机的硬件结构和各个引脚的功能。

单片机的硬件平台通常包括定时器、串口、数字转换等模块,通过对这些模块的理解,可以更好地利用它们完成各种任务。

然后,可以开始编写C语言程序。

C语言是一种结构化的高级语言,通过使用C语言,可以更方便地完成单片机程序的编写。

在编写C语言程序之前,需要了解C语言的语法和常用的函数库,如输入输出函数库、定时器函数库等。

通过灵活地使用这些函数,可以更加快速地实现想要的功能。

在编写C语言程序时,需要注意一些常见的问题。

比如,需要合理地分配内存空间,避免内存溢出等问题;需要注意函数的调用顺序,保证程序的正确执行;需要考虑编程的效率,避免不必要的计算和资源浪费;需要进行适当的程序调试,确保程序的正确性等。

最后,需要进行程序的下载和调试。

在编写完成单片机程序后,需要将程序下载到单片机的存储器中,并进行相应的调试工作,确保程序能够正常运行。

调试过程中,可以通过调试工具查看程序的执行过程,可以进行单步调试、变量跟踪等操作,帮助我们找出程序中的错误和问题,并进行修正。

通过以上步骤,可以更加方便地使用C语言来编写单片机程序。

当然,单片机的应用非常广泛,不仅仅限于C语言的编程,还可以使用汇编语言、基于图形化编程语言的开发工具等。

单片机c语言教程pdf版

单片机c语言教程pdf版

单片机c语言教程pdf版标题:单片机C语言教程PDF版引言概述:单片机是一种集成电路,具备处理和控制功能,广泛应用于各个领域。

而C语言是单片机编程的重要基础,掌握C语言对于学习和应用单片机至关重要。

本文将介绍一本单片机C语言教程的PDF版本,内容详实且专业,有助于读者学习和掌握单片机编程。

正文内容:1. 引言1.1 单片机的基本概念1.2 C语言在单片机编程中的重要性2. 单片机C语言教程PDF版的特点2.1 详细的基础知识讲解2.2 实例驱动的学习方法2.3 丰富的实践项目案例3. 单片机C语言教程PDF版的内容3.1 C语言基础语法3.1.1 变量和数据类型3.1.2 控制结构和循环3.1.3 函数和指针3.2 单片机的基本概念和架构3.2.1 单片机的组成和工作原理3.2.2 寄存器和IO口的使用3.2.3 中断和定时器的应用3.3 单片机编程实践3.3.1 LED灯控制3.3.2 数码管显示3.3.3 按键输入和中断控制3.4 进阶应用3.4.1 ADC和DAC的使用3.4.2 串口通信3.4.3 蓝牙和WiFi模块的应用4. 单片机C语言教程PDF版的优势4.1 方便的学习和查阅4.2 适合初学者和进阶者4.3 丰富的实践案例5. 总结5.1 单片机C语言教程PDF版提供了系统而全面的单片机编程知识5.2 通过学习该教程,读者能够掌握C语言和单片机编程的基础和应用5.3 该教程的实践案例能够帮助读者深入理解和应用所学知识总结:单片机C语言教程PDF版是一本内容丰富、专业详实的教程,涵盖了单片机和C语言的基础知识、编程实践和进阶应用。

通过学习该教程,读者能够全面掌握单片机编程所需的知识和技能。

该教程的优势在于方便的学习和查阅方式,适合初学者和进阶者,且提供了丰富的实践案例,帮助读者深入理解和应用所学知识。

单片机C语言入门教程

单片机C语言入门教程

单片机C语言入门教程学习一种编程语言,最重要的是建立一个练习环境,边学边练才能学好。

下面是分享的单片机C语言入门教程,一起来看一下吧。

Keil软件是目前最流行开发80C51系列单片机的软件,Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(Vision)将这些部份组合在一起。

学习之前请先安装KEILC51软件,在学会使用汇编语言后,学习C 语言编程是一件比较容易的事,我们将通过一系列的实例介绍C语言编程的方法。

所示电路图使用89c51单片机作为主芯片,这种单片机性属于80C51系列,其内部有8K的FLASHROM,可以反复擦写,非常适于做实验。

89c51的P1引脚上接8个发光二极管,P3.2~P3.4引脚上接4个按钮开关,我们的任务是让接在P1引脚上的发光二极管按要求发光。

简单的C程序介绍例1-1:让接在P1.0引脚上的LED发光。

单灯闪烁程序#include"reg51.h"//这一句是将51的常用端口,内部寄存器等的定义文件包含进这段程序sbitP1_0=P1^0;voidmain(){ P1_1=0;}这个程序的作用是让接在P1.0引脚上的LED点亮。

下面来分析一下这个C语言程序包含了哪些信息。

1)"文件包含"处理。

程序的第一行是一个"文件包含"处理。

所谓"文件包含"是指一个文件将另外一个文件的内容全部包含进来,所以这里的程序虽然只有4行,但C编译器在处理的时候却要处理几十或几百行。

这里程序中包含REG51.h文件的目的是为了要使用P1这个符号,即通知C编译器,程序中所写的P1是指80C51单片机的P1端口而不是其它变量。

这是如何做到的呢?打开reg51.h可以看到这样的一些内容:sfrP0=0x80;sfrP1=0x90;sfrP2=0xA0;sfrP3=0xB0;sfrPSW=0xD0;sfrACC=0xE0;sfrB=0xF0;sfrSP=0x81;sfrDPL=0x82;sfrDPH=0x83;sfrPCON=0x87;sfrTMOD=0x89; sfrTL0=0x8A; sfrTL1=0x8B; sfrTH0=0x8C; sfrTH1=0x8D; sfrIE=0xA8; sfrIP=0xB8; sfrSCON=0x98; sfrSBUF=0x99; sbitCY=0xD7; sbitAC=0xD6; sbitF0=0xD5; sbitRS1=0xD4; sbitRS0=0xD3; sbitOV=0xD2; sbitP=0xD0; sbitTF1=0x8F; sbitTR1=0x8E; sbitTF0=0x8D; sbitTR0=0x8C; sbitIE1=0x8B;sbitIE0=0x89; sbitIT0=0x88; sbitEA=0xAF; sbitES=0xAC; sbitET1=0xAB; sbitEX1=0xAA; sbitET0=0xA9; sbitEX0=0xA8; sbitPS=0xBC; sbitPT1=0xBB; sbitPX1=0xBA; sbitPT0=0xB9; sbitPX0=0xB8; sbitRD=0xB7; sbitWR=0xB6; sbitT1=0xB5; sbitT0=0xB4; sbitINT1=0xB3; sbitINT0=0xB2; sbitTXD=0xB1; sbitRXD=0xB0;sbitSM1=0x9E;sbitSM2=0x9D;sbitREN=0x9C;sbitTB8=0x9B;sbitRB8=0x9A;sbitTI=0x99;sbitRI=0x98;熟悉80C51内部结构的读者不难看出,这里都是一些符号的定义,即规定符号名与地址的对应关系。

PIC单片机C语言教程

PIC单片机C语言教程

PIC单片机C语言教程PIC单片机(Peripheral Interface Controller)是德州仪器(Texas Instruments)公司生产的一款微控制器芯片。

它具有高性能、低功耗、易编程等特点,因此被广泛应用于各种电子设备中。

PIC单片机的编程语言主要是C语言。

C语言是一种广泛使用的高级程序设计语言,它结构简洁、表达能力强、可移植性好。

通过使用C语言,我们可以轻松地编写控制PIC单片机的程序,并且可以充分发挥PIC单片机的特性和功能。

在PIC单片机的C语言教程中,首先需要了解C语言的基础知识,包括变量、数据类型、运算符、控制语句等。

接下来,我们需要学习如何使用C语言编写PIC单片机的程序。

1.引脚配置:在PIC单片机的程序中,我们需要配置引脚的状态,包括输入输出模式、电平状态等。

通过使用C语言,我们可以方便地配置引脚,实现与外部器件的连接和通信。

2.中断编程:中断是PIC单片机的重要特性之一,可以使控制器在特定条件下停止当前任务执行,转而执行中断服务程序。

通过使用C语言,我们可以编写中断服务程序,实现特定条件下的任务切换和响应。

3.定时器编程:定时器是PIC单片机的另一个重要功能,可以实现一定时间间隔内的定时操作。

通过使用C语言,我们可以编程设置定时器的参数,以实现特定的定时操作。

4.串口通信:PIC单片机具有串口通信功能,可以与其他设备进行数据交换。

通过使用C语言,我们可以编写串口通信的程序,实现与其他设备的数据传输和交互。

5.外设控制:PIC单片机可以连接各种外设,如LCD显示屏、键盘、驱动器等。

通过使用C语言,我们可以编写控制程序,实现与外设的连接和控制。

以上只是PIC单片机C语言教程的一部分内容。

除了上述内容,我们还可以学习其他更高级的主题,如编码技巧、优化技术等。

通过系统学习和实践,我们可以掌握PIC单片机的C语言编程技巧,实现各种功能和应用。

总的来说,PIC单片机的C语言教程是一个庞大而丰富的话题,需要通过实践和深入学习来掌握。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一课建立您的第一个C项目使用C语言肯定要使用到C编译器,以便把写好的C程序编译为机器码,这样单片机才能执行编写好的程序;KEIL uVISION2是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM,汇编和C语言的程序设计,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能;因此很多开发51应用的工程师或普通的单片机爱好者,都对它十肥也欢;以上简单介绍了KEIL51软件,要使用KEIL51软件,必需先要安装它;KEIL51是一个商业的软件,对于我们这些普通爱好者可以到KEIL中国代理周立功公司的网站上下载一份能编译2K的DEMO版软件,基本可以满足一般的个人学习和小型应用的开发;安装的方法和普通软件相当这里就不做介绍了安装好后,你是不是迫不及待的想建立自己的第一个C程序项目呢下面就让我们一起来建立一个小程序项目吧;或许你手中还没有一块实验板,甚至没有一块单片机,不过没有关系我们可以通过KEIL软件仿真看到程序运行的结果;首先当然是运行KEIL51软件;怎么打开噢,天那你要从头学电脑了;呵呵,开个玩笑,这个问题我想读者们也不会提的了:P;运行几秒后,出现如图1-1的屏幕;图1-1 启动时的屏幕接着按下面的步骤建立您的第一个项目:1点击Project菜单,选择弹出的下拉式菜单中的New Project,如图1-2;接着弹出一个标准Windows文件对话窗口,如图1-3,这个东东想必大家是见了N次的了,用法技巧也不是这里要说的,以后的章节中出现类似情况将不再说明;在"文件名"中输入您的第一个C程序项目名称,这里我们用"test",这是笔者惯用的名称,大家不必照搬就是了,只要符合Windows文件规则的文件名都行;"保存"后的文件扩展名为uv2,这是KEIL uVision2项目文件扩展名,以后我们可以直接点击此文件以打开先前做的项目;图1-2 New Project菜单图1-3 文件窗口2选择所要的单片机,这里我们选择常用的Ateml公司的AT89C51;此时屏幕如图1-4所示;AT89C51有什么功能、特点呢不用急,看图中右边有简单的介绍,稍后的章节会作较详细的介绍;完成上面步骤后,我们就可以进行程序的编写了;3首先我们要在项目中创建新的程序文件或加入旧程序文件;如果你没有现成的程序,那么就要新建一个程序文件;在KEIL中有一些程序的Demo,在这里我们还是以一个C程序为例介绍如何新建一个C程序和如何加到您的第一个项目中吧;点击图1-5中1的新建文件的快捷按钮,在2中出现一个新的文字编辑窗口,这个操作也可以通过菜单File-New或快捷键Ctrl+N来实现;好了,现在可以编写程序了,光标已出现在文本编辑窗口中,等待我们的输入了;第一程序嘛,写个简单明了的吧;下面是经典的一段程序,呵,如果你看过别的程序书也许也有类似的程序:include <>include <>void mainvoid {SCON = 0x50;源引脚Vcc40电源端GND20接地端工作电压为5V,另有A T89LV51工作电压则是, 引脚功能一样;2.外接晶体引脚图2-2外接晶体引脚XTAL119XTAL218XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空;内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz;晶振的频率可以在1MHz-24MHz内选择;电容取30PF左右;型号同样为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是一个8位漏极开路型双向I/O端口,端口置1对端口写1时作高阻抗输入端;作为输出口时能驱动8个TTL;对内部Flash程序存储器编程时,接收指令字节;校验程序时输出指令字节,要求外接上拉电阻;在访问外部程序和外部数据存储器时,P0口是分时转换的地址低8位/数据总线,访问期间内部的上拉电阻起作用;2 P1端口-P1是一个带有内部上拉电阻的8位双向I/0端口;输出时可驱动4个TTL;端口置1时,内部上拉电阻将端口拉到高电平,作输入用;对内部Flash程序存储器编程时,接收低8位地址信息;3 P2端口-P2是一个带有内部上拉电阻的8位双向I/0端口;输出时可驱动4个TTL;端口置1时,内部上拉电阻将端口拉到高电平,作输入用;对内部Flash程序存储器编程时,接收高8位地址和控制信息;在访问外部程序和16位外部数据存储器时,P2口送出高8位地址;而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变;4 P3端口-P2是一个带有内部上拉电阻的8位双向I/0端口;输出时可驱动4个TTL;端口置1时,内部上拉电阻将端口拉到高电平,作输入用;对内部Flash程序存储器编程时,接控制信息;除此之外P3端口还用于一些专门功能,具体请看表2-2.;P1-3端口在做输入使用时,因内部有上接电阻,被外部拉低的引脚会输出一定的电流;P3引脚兼用功能串行通讯输入RXD串行通讯输出TXD外部中断0 INT0外部中断1INT1定时器0输入T0表2-2P3端口引脚兼用功能表呼一口气说了那么多,停一下吧;嗯,什么什么叫上拉电阻上拉电阻简单来说就是把电平拉高,通常用-10K的电阻接到Vcc电源,下拉电阻则是把电平拉低,电阻接到GND地线上;具体说明也不是这里要讨论的,接下来还是接着看其它的引脚功能吧;5.其它的控制或复用引脚1 ALE/PROG 30 访问外部存储器时,ALE地址锁存允许的输出用于锁存地址的低位字节;即使不访问外部存储器,ALE端仍以不变的频率输出脉冲信号此频率是振荡器频率的1/6;在访问外部数据存储器时,出现一个ALE脉冲;对Flash 存储器编程时,这个引脚用于输入编程脉冲PROG2 PSEN 29 该引是外部程序存储器的选通信号输出端;当A T89C51由外部程序存储器取指令或常数时,每个机器周期输出2个脉冲即两次有效;但访问外部数据存储器时,将不会有脉冲输出;3 EA/Vpp 31 外部访问允许端;当该引脚访问外部程序存储器时,应输入低电平;要使A T89C51只访问外部程序存储器地址为0000H-FFFFH,这时该引脚必须保持低电平,而要使用片内的程序存储器时该引脚必须保持高电平;对Flash存储器编程时,该引脚用于施加Vpp编程电压;Vpp电压有两种,类似芯片最大频率值要根据附加的编号或芯片内的特征字决定;具体如表2-3所列;表2-3Vpp与芯片型号和片内特征字的关系看到这您对A T89C51引脚的功能应该有了一定的了解了,引脚在编程和校验时的时序我们在这里就不做详细的探讨,通常情况下我们也没有必要去撑握它,除非你想自己开发编程器;下来的课程我们要开始以一些简单的实例来讲述C程序的语法和编写方法技巧,中间穿插相关的硬件知识如串口,中断的用法等等;第三课生成HEX文件和最小化系统在开始C语言的主要内容时,我们先来看看如何用KEIL uVISION2来编译生成用于烧写芯片的HEX文件;HEX文件格式是Intel公司提出的按地址排列的数据信息,数据宽度为字节,所有数据使用16进制数字表示, 常用来保存单片机或其他处理器的目标程序代码;它保存物理程序存储区中的目标代码映象;一般的编程器都支持这种格式;我们先来打开第一课做的第一项目,打开它的所在目录,找到的文件就可以打开先前的项目了;然后右击图3-1中的1项目文件夹,弹出项目功能菜单,选Options for Target'Target1',弹出项目选项设置窗口,同样先选中项目文件夹图标,这时在Project菜单中也有一样的菜单可选;打开项目选项窗口,转到Output选项页图3-2所示,图中1是选择编译输出的路径,2是设置编译输出生成的文件名,3则是决定是否要创建HEX文件,选中它就可以输出HEX文件到指定的路径中;选好了好,我们再将它重新编译一次,很快在编译信息窗口中就显示HEX文件创建到指定的路径中了,如图3-3;这样我们就可用自己的编程器所附带的软件去读取并烧到芯片了,再用实验板看结果,至于编程器或仿真器品种繁多具体方法就看它的说明书了,这里也不做讨论;技巧:一、在图3-1中的1里的项目文件树形目录中,先选中对象,再单击它就可对它进行重命名操作,双击文件图标便可打开文件;二、在Project下拉菜单的最下方有最近编辑过的项目路径保存,这里可以快速打开最近在编辑的项目;图3-1项目功能菜单图3-2 项目选项窗口图3-3 编译信息窗口或许您已把编译好的文件烧到了芯片上,如果您购买或自制了带串口输出元件的学习实验板,那您就可以把串口和PC 机串口相联用串口调试软件或Windows的超级终端,将其波特率设为1200,就可以看到不停输出的"Hello World"字样;也许您还没有实验板,那这里先说说AT89C51的最小化系统,再以一实例程序验证最小化系统是否在运行,这个最小化系统也易于自制用于实验;图3-4便是AT89C51的最小化系统,不过为了让我们可以看出它是在运行的,我加了一个电阻和一个LED,用以显示它的状态,晶振可以根据自己的情况使用,一般实验板上是用或12MHz,使用前者的好外是可以产生标准的串口波特率,后者则一个机器周期为1微秒,便于做精确定时;在自己做实验里,注意的是VCC是+5V的,不能高于此值,否则将损坏单片机,太低则不能正常工作;在31脚要接高电平,这样我们才能执行片内的程序,如接低电平则使用片外的程序存储器;下面,我们建一个新的项目名为OneLED来验证最小化系统是否可以工作所有的例程都可在我的主页下面下载到,网址:或 ;程序如下:include <>字e±数字,中的内容为可选项,其中内容根据具体情况可有可无,但其余部分必须有,如125e3,7e9,;3.字符型常量是单引号内的字符,如'a','d'等,不可以显示的控制字符,可以在该字符前面加一个反斜杠"\"组成专用转义字符;常用转义字符表请看表5-1;4.字符串型常量由双引号内的字符组成,如"test","OK"等;当引号内的没有字符时,为空字符串;在使用特殊字符时同样要使用转义字符如双引号;在C中字符串常量是做为字符类型数组来处理的,在存储字符串时系统会在字符串尾部加上\o转义字符以作为该字符串的结束符;字符串常量"A"和字符常量'A'是不同的,前者在存储时多占用一个字节的字间;5.位标量,它的值是一个二进制;转义字符含义ASCII码16/10进制\o 空字符NULL 00H/0\n 换行符LF 0AH/10\r 回车符CR 0DH/13\t 水平制表符HT 09H/9\b 退格符BS 08H/8\f 换页符FF 0CH/12\' 单引号27H/39\" 双引号22H/34\\ 反斜杠5CH/92表5-1 常用转义字符表常量可用在不必改变值的场合,如固定的数据表,字库等;常量的定义方式有几种,下面来加以说明; difine False 0x0;明浩 E-mail----------------------------------------/include <>static unsigned char data CN4;static unsigned char data CT;unsigned char TS8 = {254,252,248,240,224,192,128,0}; void mainvoid{void InitComunsigned char BaudRate;void ComOutCharunsigned char OutData;void CSToOutvoid;void CNToOutvoid;unsigned int a;CT = 0;All rights reserved附录一C51中的关键字附表1-1 ANSIC标准关键字附表1-2 C51编译器的扩展关键字附录二AT89C51特殊功能寄存器列表适用于同一架构的芯片带号的特殊功能寄存器都是可以位寻址的寄存器附录三运算符优先级和结合性。

相关文档
最新文档