单片机 keil C51 proteus 第11-20节
KEILC51和PROTEUS的使用

KEILC51和PROTEUS的使用KEILC51是一款针对51系列单片机的集成开发环境,可以方便地进行编译、调试和仿真。
PROTEUS是一款集成电路设计软件,可以用于电路图的设计、仿真和调试。
本文将介绍KEILC51和PROTEUS的使用方法。
一、KEILC51的安装和使用2. 安装完成后,打开KEIL C51,创建一个新项目。
选择新建一个“Project”。
在对话框中输入项目名称,并选择项目的存放路径。
3.在项目内部,可以添加源文件、库文件和头文件。
可以通过右键单击项目名称,选择“添加”,然后选择相应的文件类型进行添加。
4. 在源文件中编写C语言程序。
可以使用标准的C语法进行编写,也可以使用Keil C51提供的51系列特定的语法进行编写。
5. 进行编译和生成可执行程序。
在菜单栏中选择“Project”->“Build Target”,或者使用快捷键“Ctrl+F7”进行编译。
编译完成后,会在项目目录下生成相应的可执行程序。
6. 进行调试和仿真。
在菜单栏中选择“Debug”->“Start/Stop Debug Session”,或者使用快捷键“F5”进行调试。
可以设置断点、单步执行、查看变量值等进行调试。
二、PROTEUS的安装和使用2. 安装完成后,打开PROTEUS,创建一个新电路。
选择“Schematic Capture”->“Design”创建一个新的电路图。
在电路图中添加所需的元件,例如电阻、电容、晶体管等。
3.连接元件之间的引脚,可以使用连线工具进行连线。
在连线时,可以使用自动连接功能快速连接元件之间的引脚。
4.设置仿真属性。
在电路图中选择“P”工具,然后在对话框中选择相应的仿真模型和仿真参数,例如选择51系列单片机的仿真模型。
5. 进行仿真和调试。
在菜单栏中选择“Debug”->“Start Debugging”,或者使用快捷键“F5”进行仿真。
可以查看元件的工作状态,观察电路的波形等进行调试。
Keil C51 使用详解

Keil C51使用详解V1.0第一章KEIL C51开发系统基本知识 (6)第一节系统概述 (6)第二节KEIL C51单片机软件开发系统的整体结构 (6)第三节KEIL C51工具包的安装 (7)1. C51 for Dos (7)2. C51 for Windows的安装及注意事项: (7)第四节KEIL C51工具包各部分功能及使用简介 (7)1. C51与A51 (7)2. L51和BL51 (8)3. DScope51,Tscope51及Monitor51 (8)4. Ishell及uVision (9)第二章KEIL C51软件使用详解 (10)第一节KEIL C51编译器的控制指令 (10)1.源文件控制类 (10)2.目标文件(Object)控制类: (10)3.列表文件(listing)控制类: (10)第二节DSCOPE51的使用 (11)1. dScope51 for Dos (11)2. dScope for Windows (12)第三节MONITOR51及其使用 (13)1. Monitor51对硬件的要求 (13)2. Mon51的使用 (13)3. MON51的配置 (13)4.串口连接图: (13)5. MON51命令及使用 (14)第四节集成开发环境(IDE)的使用 (14)1. Ishell for Dos的使用 (14)2. uVision for windows的使用 (15)第三章KEIL C51 VS 标准C (15)第一节KEIL C51扩展关键字 (15)第二节内存区域(MEMORY AREAS): (16)1. Pragram Area: (16)2. Internal Data Memory: (16)3. External Data Memory (16)4. Speciac Function Register Memory (16)第三节存储模式 (16)1. Small模式 (16)2. Compact模式 (17)3. large模式 (17)第四节存储类型声明 (17)第五节变量或数据类型 (17)第六节位变量与声明 (17)1. bit型变量 (17)2.可位寻址区说明20H-2FH (18)第七节KEIL C51指针 (18)1.一般指针 (18)2.存储器指针 (18)3.指针转换 (18)第八节KEIL C51函数 (19)1.中断函数声明: (19)2.通用存储工作区 (19)3.选通用存储工作区由using x声明,见上例。
第11章 Keil C51 软件的使用

3."Listing"标签属性 Listing"标签属性 "Listing"标签页用于调整生成的列表文件选项,一般常设置成如 图11-17所示.
图11-17 "Listing"属性标签
Select Folder for Listings:选择列表文件存放的目录, 默认为工程文件所在的目录. *.lst *.m51文件对了解程序用到了那些idata,data,bit, xdata,code,RAM,ROM,Stack等有很重要的作用. Assembly Code生成汇编的代码,根据需要决定是否选择. 4."C51"标签页 C51"标签页 "C51"标签页用于对Keil的C51编译器编译过程进行控制,其 中比 较常用的是"Code Optimization"组,如图11-18所示. 该组中"Level"是优化等级,C51在对源程序进行编译时可 以对代码多至9级优化,默认使用第8级,一般不必修改.如果在 编译中出现一些问题可以降低优化级别试一试. "Emphasis"是选择编译优先方式,第一项是代码量优化(最 终生成的代码量小),第二项是速度优先(最终生成的代码速度 快),第三项是默认的,是速度优先,可根据需要更改.
第11章 Keil C51 软件的使用 11章
11.1 工程文件的建立及设置 11.2 程序调试 11.3 Keil 程序调试窗口
Keil C51 uVision2是目前最流行的C51集成开发环境(IDE),集 编辑,编译,仿真于一体,支持C51及汇编编程,界面友好,易学易 用.下面通过简单的编程,调试,说明Keil C51软件的基本使用方法 和基本的调试技巧. 进入Keil C51后,屏幕如图11-1所示.几秒后出现Keil C51应用程 序界面,如图11-2所示.
单片机Keil C51编程入门(49页)

平凡单片机工作室 Copyright 2003 pingfan's mcustudio All rights Reserved 作者:周坚 dddl.c 单灯点亮程序 *************************************************/
本书共分六章,每章一个专题,以一些待完成的任务为中心,围绕该任务介绍 C 语言 的一些知识,每一个任务都是可以独立完成的,每完成一个任务,都能掌握一定的知识,等 到所有的任务都完成后,即可以完成 C 语言的入门工作。
第 1 章 C 语言概述及其开发环境的建立
学习一种编程语言,最重要的是建立一个练习环境,边学边练才能学好。Keil 软件是目 前最流行开发 80C51 系列单片机的软件,Keil 提供了包括 C 编译器、宏汇编、连接器、库 管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境 (µVision)将这些部份组合在一起。
如果 P1.0 是高电平,取反后,P1.0 就是低电平,这条指令被反复地执行,接在 P1.0 上灯就
会不断“亮”、“灭”。
该条指令会被反复执行的关键就在于 main 中的第一行程序:for(;;),这里不对此作详细 的介绍,读者暂时只要知道,这行程序连同其后的一对大括号“{}”构成了一个无限循环语
C51单片机教程-PPT精品文档24页

26.09.2019
例說89S51-C語言89S51-C语言
2-10
yiher
成功完成生成
26.09.2019
例說89S51-C語言89S51-C语言
2-11
yiher
确定对话框
26.09.2019
例說89S51-C語言89S51-C语言
2-12
yiher
调试/仿真工具栏
26.09.2019
例說89S51-C語言89S51-C语言
yiher
Keil C基本操作
第二章
26.09.2019
例說89S51-C語言89S51-C语言
2-1
yiher
本章内容
26.09.2019
例說89S51-C語言89S51-C语言
2-2
yiher
Keil μVision 3 窗口
26.09.2019
例說89S51-C語言89S51-C语言
2-3
2-13
yiher
调试/仿真状态下 的 Peripherals菜单
26.09.2019
例說89S51-C語言89S51-C语言
2-14
yiher
中断系统对话框
26.09.2019
例說89S51-C語言89S51-C语言
2-15
yiher
输入/输出口菜单
26.09.2019
例說89S51-C語言89S51-C语言
2-22
Keil C基本操作
Bye Bye…
26.09.2019
例說89S51-C語言
2-23
谢谢!
xiexie!
yiher
小提示
26.09.2019
单片机KEIL51和proteus仿真软件的使用

实验:KEIL51和proteus仿真软件的使用一、实验目的1、掌握KEIL51软件的使用方法2、掌握proteus仿真软件的使用方法二、实验设备及软件1、单片机实验板2、PC机3、KEIL514、proteus三、实验任务KEILC和proteus仿真软件的使用方法四、实验步骤1、Proteus ISIS 设计单片机电路的基本步骤:(1) 新建设计文件夹或打开一个现有的设计文件。
(2) 选择元器件(通过关键字或分类检索)。
(3) 将元器件放入设计窗口。
(4) 添加其他模型(电源、地线、信号源等)和相关的虚拟仪器。
(5) 编辑和连接电路。
(6) 编写单片机所需的源程序。
(7) 加入源程序,并通过构造,得到仿真程序或目标程序。
(8) 根据需要,设置对象的属性,如将单片机的”Program File”属性设置为上述仿真调试程序或目标程序。
(9) 启动仿真功能,对电路进行仿真操作,验证其功能。
2、Keil 51基本步骤(1)单击Project菜单项,选择New Project项。
此时弹出Create New Project对话框,选择合适的路径口,在文件名一栏中填入新工程的名字。
单击保存。
(2)根据所用的器件,选择CPU的型号,单击确定。
(3)Keil51询问是否生成默认的配置文件,这个可选可不选。
单击NO,观察项目文件管理窗口的变化。
(4)在File菜单下单击New选项,新建文件。
此时在代码窗口出现一“Text1”空白文档。
(5)在“Text1”中编辑完代码后,单击File菜单中的保存项,弹出保存对话框。
注意在对文件命名时必须加扩展名.asm。
(6) 在项目导航栏中Source Group 上单击右键,选Add File to Group ‘Source Group 1’。
弹出Add File 对话框。
选中刚才保存的xxxx.asm.文件,单击Add,然后关闭对话框。
此时在项目文件管理窗口中就会出现刚才所添加的文件xxxt.asm。
基于Proteus和Keil C51的单片机设计与仿真
读书笔记模板
01 思维导图
03 目录分析 05 读书笔记
目录
02 内容摘要 04 作者介绍 06 精彩摘录
思维导图
本书关键字分析思维导图
开发
仿真
单片
集成
应用
简介
芯片
仿真
软件
实例 单片
连接
单片
注意事项
第章
转换器 器
软件
调试
内容摘要
本书是用Proteus软件调试和仿真51系列单片机及外围电路的实例集。所用软件是Proteus 7.5版本。本书 首先介绍和Proteus软件配套使用的Keil C51单片机的集成开发环境及使用方法;然后介绍单片机交互可视化仿 真软件Proteus的使用方法;之后是使用这两个集成开发工具开发单片机系统的实例。本书对每一种单片机和芯 片接口提供了汇编语言程序和C51语言程序两种不同的程序,使用汇编语言编程序和用C51语言编程序的人,都可 以借鉴本书。
22.1 74HC251 数据选择器的 应用
22.2 74HC257 数据选择器的 应用
23.2 CD4053模拟 电子开关的应用
23.1 CD4051模拟 电子开关的应用
23.3 CD4066模拟 电子开关的应用
作者介绍
这是《基于Proteus和Keil C51的单片机设计与仿真》的读书笔记模板,暂无该书作者的介绍。
5 10.8使用
MAX517的注意 事项
11.1 MAX515简介
11.2 MAX515和单片 机AT89C52的连接
11.3汇编语言程序 11.4 C51语言程序
11.5用 Proteus软件
Keilc51单片机仿真机使用说明
K51U/Keil_CPU单片机仿真机使用说明K51U/Keil_CPU是一个支持keil c51 设计软件的软件断点仿真机。
使用一片SST89C58 单片机和一片AT90S8515 单片机来实现仿真功能(主CPU 和用户CPU),两片CPU 之间通过一根I/O 引脚通讯(通讯速率在33 兆晶振时约100KBPS),主CPU 负责跟keil c51 通讯,用户CPU 只跟主CPU 通讯.结构框图:一,主要功能和特性:1 支持串口的仿真功能2 串口中断用户可以使用3 不占用定时器24 完全仿真p0 p2 口5 支持89C52 等嵌入式CPU 仿真6 占用1 条I/O : P3.57 ISP 在线编程,在线下载8 仿真频率最高33 兆9 支持同时最多10 个断点10 支持单步,断点,全速运行11 支持汇编,c 语言,混合调试12 支持KEIL C51 的IDE 开发仿真环境UV1 UV2(V5.20 V6.02 V6.10 V6.12 V6.14)13 单步执行时间(60 毫秒)14 程序代码载入(可以重复装载,无需预先擦除用户程序空间)15 SFR 读取速度(128 个)200 毫秒16 跟踪记录(trace record)256 条17 可以仿真标准的89c51 89c52 89c58 等51 内核的单片机仿真二,如何使用:1 如何接仿真机的接线把K51U/Keil_CPU按CPU正视方向插入用户板CPU/实验仪CPU插卡区。
系统通信口:要接到你的电脑的串口,这是跟keil c51 进行通讯的接口,keil c51 通过这个串口发命令到仿真机。
(实验仪通信开关:KB6->51)用户通信口:是连接到你的仿真CPU 的串口的,用来监视你的CPU 的串口发出的数据的.如果你的程序没有用到串口,就不用接到电脑的串口. 如果你想看你的单片机的串口发出的数据,就要连接到你的电脑的串口(这时需要使用你的电脑的两个串口.)2 如何设置Keil C51 仿真机的工作参数?这里拿keil c51 V6.14 来说明keil c51,v6.02,v6.10,v6.12 的设置跟v6.14是一样的.1.先打开一个工程文件,如果你没有工程文件就要先建立一个,这里拿keil c51提供的hello.prj 为例子说明用鼠标点击菜单的project 选择open project 如图:2.选择keil\c51\examples\hello\hello,点击打开如图:3 选择菜单的Project->Option for Target 'Simulator',如图:3.1,选择C51 栏的设置如图:删掉define:里的MONITOR51 这几个字母,如果define 栏是空的可以跳过这一步:删掉MONTOR51 之后的设置如下图,不要点击确定,因为还要进行其他设置:附注:3.1 的步骤是调试keil 提供的这个Hello 工程才需要做的,对你自己建立的工程不需要这个设置,你自己的工程可以跳过这步,直接进行下一个设置.在这里用红色来写这个说明,是需要引起用户注意,一些用户买回仿真机之后,然后说调试到第二步就死机了.把仿真机退回换一个新的,结果还是这样,我检查了退回的仿真机,仿真机没有问题.而是忽略了要做这一步的设置.这是我的说明文件漏掉了这一步的说明,特此更正.4 选择debug 栏的设置项目Us e:Keil Monitor-51 DriverLoad Application at Star t:选择这项之后keil 才会自动装载你的程序代码Go till mai n:调试c 语言程序时可以选择这一项,pc会自动运行到main 程序处点击上图的Settings,打开新的窗口,Port:设置你的串口号为仿真机的串口连接线所连接的串口Baudrate:设置为57600 仿真机固定使用57600bps 跟keil 通讯Serial Interrupt:选中它Cache Options: 可以选也可以不选,推荐选它这样仿真机会运行的快一点,最后点击ok 和确定关闭你的设置5 编译你的程序选择Project -> Rebuild all target files6.编译完毕之后选择Debug->Start/Stop Debug Session,就进入仿真了7 装载代码之后在左下角显示如图Connected to Monitor-51 V1.0表示连接到仿真机仿真机的版本号为1.0 这是我的第一个版本Load "C:\\Keil\\C51\EXAMPLES\\HELLO\\HELLO"表示代码装载成功8 其他的调试方法跟软件仿真是一样的三,K51U/Keil_CPU开关设置1,如何使用用户板的晶振答:板上有一个拨码开关是8 路的默认的设置如上图设置的位置如下1 ON2 OFF3 OFF4 OFF5 OFF6 OFF7 OFF8 ON拨码开关拨到右边为ON, 左边为OFF其中的123 路拨码开关是设置使用仿真板的晶振还是用用户板的晶振默认是用仿真板上的晶振为11059200 hz 的要使用用户板的晶振请将123 路设置为1 OFF2 ON3 ON2,如何使用用户板的复位其中的第4 路拨码开关是设置使用仿真板的复位RESET 还是用用户板的复位(RESET),默认是用仿真板上的复位,就是SST89C58 的RESET 脚不连到用户板,要使用用户板的复位就是SST89C58 的RESET 脚连到用户板,请将第4 路设置:4 ON使用看门狗复位时最好设置为OFF .3,如何在仿真板脱机运行用户程序1 ON2 OFF3 OFF4 OFF5 OFF6 OFF7 ON8 ON4,如何使用板上的电平转换电路其中的第5 6 路拨码开关是设置使用仿真板的MAX232 做为电平转换还是用用户板的电平转换,默认是用用户板上的转换,要使用仿真板的串口将第5 6 路设置为5 ON6 ON这时才可以通过我提供的第二条串口线来查看串口的输入输出5, 我的程序可以使用P3.5 吗答:由于监控系统要使用P3.5 来进行通讯,最好不要使用。
单片机仿真软件Keil C51软件的使用教程(中文版)
单片机仿真软件Keil C51软件的使用教程(中文版)keil uvision2 C51软件是目前功能最强大的单片机c语言集成开发环境,本软件及视频教程可以本站下载。
下面我们通过图解的方式来Keil C51软件的使用教程,学习最简单的,如何输入源程序→ 新建工程→ 工程详细设置→ 源程序编译得到目标代码文件。
第一步:双击Keil uVision2的桌面快捷方式(图1),启动Keil集成开发开发软件。
软件启动后的界面如图2所示。
图1:启动Keil uVision2单片机集成开发环境图2:软件启动后的界面第二步:新建文本编辑窗。
点击工具栏上的新建文件快捷按键,即可在项目窗口的右侧打开一个新的文本编辑窗,见图3所示。
图3:新建文本编辑窗第三步:输入源程序。
在新的文本编辑窗中输入源程序,可以输入C语言程序,也可以输入汇编语言程序,见图4。
图4:输入源程序第四步:保存源程序。
保存文件时必须加上文件的扩展名,如果你使用汇编语言编程,那么保存时文件的扩展名为“.asm”,如果是C语言程序,文件的扩展名使用“*.C ”。
图5:保存源程序注:第3步和第4步之间的顺序可以互换,即可以先输入源程序后保存,也可以先保存后输入源程序。
第五步:新建立Keil工程。
如图6所示,点击 "工程" → "新建工程" 命令,将出现保存对话框(图7)。
图6:新建工程图7:保存工程对话框在保存工程对话框中输入你的工程的文件名,Keil工程默认扩展名为".uv2",工程名称不用输入扩展名(见图7),一般情况下使工程文件名称和源文件名称相同即可,输入名称后保存,将出现"选择设备"对话框(图8),在对话框中选择CPU的型号。
第六步:选择CPU型号。
如图8所示,为工程选择CPU型号,本新建工程选择了ATMEL公司的AT89C51单片机。
图8:选择CPU型号对话框第七步:加入源程序到工程中。
单片机原理及应运-c51编程+proteus仿真课后答案
第一章单片机的概述1-1.除了单片机这一名称外,单片机还可称为(微控制器)和(嵌入式控制器)。
参P11-2.单片机与普通微型计算机的不同之处在于其将(CPU)、(存储器)和(I/O口)三部分,通过内部(总线)连接在一起,集成于一块芯片上。
参P11-3.在家用电器中使用单片机应属于微型计算机的(B)。
参P3A. 辅助设计应用B. 测量、控制应用C. 数值计算应用D. 数据处理应用1-4.微处理器、微计算机、微处理机、CPU、单片机、嵌入式处理器它们之间有何区别?参P1、参P12答:微处理器、微处理机和CPU它们都是中央处理器的不同称谓,微处理器芯片本身不是计算机。
而微计算机、单片机它们都是一个完整的计算机系统,单片机是集成在一个芯片上的用于测控目的的单片微计算机。
嵌入式处理器一般意义上讲,是指嵌入系统的单片机、DSP、嵌入式微处理器。
目前多把嵌入式处理器多指嵌入式微处理器,例如ARM7、ARM9等。
嵌入式微处理器相当于通用计算机中的CPU。
与单片机相比,单片机本身(或稍加扩展)就是一个小的计算机系统,可独立运行,具有完整的功能。
而嵌入式微处理器仅仅相当于单片机中的中央处理器。
为了满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上和标准微处理器基本是一样的,但在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强。
1-5.MCS-51系列单片机的基本型芯片分别为哪几种?它们的差别是什么?参P6答:MCS-51系列单片机的基本型芯片分别为:8031、8051和8751。
它们的差别是在片内程序存储器上。
8031无片内程序存储器、8051片内有4K 字节的程序存储器ROM,而8751片内有集成有4K字节的程序存储器EPROM。
1-6.为什么不应当把8051单片机称为MCS-51系列单片机?参P6答:因为MCS-51系列单片机中的“MCS”是Intel公司生产的单片机的系列符号,而51系列单片机是指世界各个厂家生产的所有与8051的内核结构、指令系统兼容的单片机。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
//头文件 //宏定义PI=3.14159 //带参数的宏定义,用于计算周长 //带参数的宏定义,用于计算面积 //主函数
//输出周长 //输出面积 //取消宏定义 //取消宏定义 //取消宏定义 //输出周长 //输出面积 北京源智天下科技有限公司
联系方式:
北京源智天下科技有限公司
1-5
联系方式:
宏定义指令
• 宏定义指令是采用用户自定义的标识符来代替一些 符号、常量以及表达式等。 • C51语言的宏定义指令包括#define和#undef,具 体可以分为如下几个:
– #define指令 – 带参数的#define指令 – #und编译指令
• 双分支条件编译指令的一般形式如下:
#if 表达式 语句段; #else 语句段; #endif
• 注意:跟在#if后面的表达式必须仅含常量及已定义 过的标识符
北京源智天下科技有限公司
1-16
联系方式:
北京源智天下科技有限公司
1-9
联系方式:
带参数的#define指令
• 宏定义指令#define还可以带参数表,其一般形式 如下:
– #define 标识符(参数表) 替换对象
• 带参数的宏定义和函数的作用很相似。
北京源智天下科技有限公司
1-10
联系方式:
#error指令
• #error指令用来强制停止编译并输出错误信息。 • #error指令使用的一般形式如下:
– #error “message”
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 #include <stdio.h> void main() { #ifdef SCORE if(SCORE>90) printf("Very Good!\n"); else if(SCORE>80) printf("Good!"); else if(SCORE>60) printf("Pass!"); else printf("Lost!"); #else #error "No SCORE!\n" #endif } //头文件 //主函数
宏名判断指令
• 宏名判断指令用于判断宏名是否被定义,包括 #ifdef指令与#ifndef指令。
#ifdef 宏名 语句段; #endif #ifndef宏名 语句段; #endif
北京源智天下科技有限公司
1-18
联系方式:
#line指令
• #line指令用于改变当前行的行号,也就是 __LINE__的内容。 • 其一般形式如下:
• 通用寄存器区(00H~1FH) • 可位寻址区(20H~2FH) • 用户RAM区(30H~7FH)
北京源智天下科技有限公司
联系方式:
存储类型
• 单片机C51语言中支持的存储类型有:
– – – – – – – – – – data bdata idata pdata xdata code sfr sfr16 sbit bit
源智天下
北京源智天下科技有限公司
联系方式:
21天学51单片机开发
第十二讲:C51的存储结构
北京源智天下科技有限公司
联系方式:
课程安排
• • • • 单片机存储结构 存储类型 存储模式 存储器指针
预处理命令概述
• 预处理命令,顾名思义,便是在程序编译和执行前 首先执行的命令。 • 预处理命令在功能上有点类似于单片机汇编语言的 伪指令。 • C51语言中的预处理命令包括文件包含指令、宏定 义指令、条件编译指令以及一些程序调试指令。 • 预处理命令前要加一个“#” 。
北京源智天下科技有限公司
1-3
两种使用区别
• 使用#include时,文件的包含可以采用两种方式:
– 文件的包含采用双引号 – 文件的包含采用尖括号
北京源智天下科技有限公司
1-13
联系方式:
常用的头文件
• • • • • • • • • • •
absacc.h asscert.h ctype.h intrins.h math.h reg51.h setjmp.h stdarg.h stdlib.h stdio.h string.h
北京源智天下科技有限公司
联系方式:
单片机存储结构
• 51系列单片机划分为如下4个存储区:
– – – – 片内数据存储区 片外数据存储区 片内程序存储区 片外程序存储区
北京源智天下科技有限公司
联系方式:
片内低128字节RAM区
北京源智天下科技有限公司
联系方式:
bdata存储类型
• bdata存储类型可位寻址片内数据存储区(16字节 ),允许位与字节混合访问。 • 将一个变量设置为bdata类型的一般形式如下:
– #line 数字
01#include <stdio.h> //头文件 02void main() 03{ 04 #line 100 //初始化行计数器 05 printf("Line Number=%d\n",__LINE__); //行号100 06}
北京源智天下科技有限公司
1-19
联系方式:
联系方式:
预处理命令
• 单片机C51语言中的预处理命令包括以下几个:
– – – – – – – – – – – – #define #error #include #if #else #elif #endif #ifdef #ifndef #undef #line #pragma
#undef指令
• #undef指令的一般形式如下:
– #undef 宏名
01 #include <stdio.h> 02 #define PI 3.14159 03 #define L(R) 2*PI*R 04 #define S(R) PI*R*R 05 void main() 06 { 07 int r; 08 r=2; 09 printf("r=%d,L=%f\n",r,L(r)); 10 printf("r=%d,S=%f\n",r,S(r)); 11 #undef PI 12 #undef L 13 #undef S 14 printf("r=%d,L=%f\n",r,L(r)); 15 printf("r=%d,S=%f\n",r,S(r)); 16 }
多分支条件编译指令
• 多分支条件编译指令的一般形式如下:
#if 表达式0 语句段; #elif 表达式1 语句段; #elif 表达式2 语句段; #elif 表达式3 语句段; … #elif 表达式n 语句段; #endif
北京源智天下科技有限公司
1-17
联系方式:
•
也就是说,如果在源代码中,遇到TURE就用1代替, FALSE就用0代替,str用hello!代替,PI就用3.14代替。
北京源智天下科技有限公司
1-7
联系方式:
宏定义指令的好处
• 在程序中使用宏定义指令的好处是:
– 可以采用较短的字符串来代替较长的字符串,从而减少 程序中字符串输入的工作量。 – 可以提高程序的可移植性。 – 便于整体修改一个程序中经常使用的常量或者字符串, 方便了程序的调试和修改。 – 宏定义可以表示数组的大小,这样便于程序的修改。示 例如下: #define SIZE 10 int ch[SIZE];
北京源智天下科技有限公司
联系方式:
data存储类型
• data存储类型可以直接寻址片内数据存储区(128 字节),访问速度快。 • 将一个变量设置为data存储类型的一般形式如下:
– 标识符 data 变量名
• 在51单片机系统中,对data区寻址是最快的。
北京源智天下科技有限公司
1-4
联系方式:
分类
• 这里,按照功能来讲:
– – – – #define和#undef属于宏定义类指令 #if、#else、#ifdef、#ifndef和#endif属于条件编译类指令 #include属于文件包含类指令 #line、#error和#pragma用于其他用途的预处理指令。
21天学51单片机开发
第十一讲:C51的预处理
北京源智天下科技有限公司
联系方式:
课程安排
• • • • • 预处理命令概述 宏定义指令 文件包含指令 条件编译指令 其他预处理指令
北京源智天下科技有限公司
1-2
联系方式:
北京源智天下科技有限公司
1-8
联系方式:
宏定义指令的注意事项
• 在程序中使用宏定义指令时,应注意以下几点:
– 宏定义指令应该放到程序文件的开始处。 – 宏定义指令后面不需要加分号。 – 如果程序中宏定义指令较多,可将其放到独立的文件中 ,保存为*.h文件,然后用#include指令来访问。 – 宏名的定义需要满足C51标识符的命名规则。 – 可以分为多行来书写。 – 宏定义的宏名可以嵌套使用。
北京源智天下科技有限公司
1-6
联系方式:
#define指令
• #define指令的使用格式如下:
– #define 标识符 替换对象
•
宏定义指令一般放在程序的开头,典型的宏定义指令示例 如下:
– – – – #define TURE 1 #define FALSE 0 #define str hello! #define PI 3.14
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 1-21 #include <REG51.h> void main() { while(1) { P1=0x00; #pragma asm NOP NOP SETB P1.7 NOP NOP #pragma endasm P1=0x01; } }