单片机Keil C51编程入门(49页)
keil c51 详细中文手册
Keil C51使用详解V1.0第一章 Keil C51开发系统基本知识 (6)第一节系统概述 (6)第二节Keil C51单片机软件开发系统的整体结构 (6)1. C51 for Dos 72. C51 for Windows的安装及注意事项: (7)第四节Keil C51工具包各部分功能及使用简介 (7)1. C51与A51. 72. L51和BL51. 83. DScope51,Tscope51及Monitor51. 84. Ishell及uVision. 9第二章 Keil C51软件使用详解 (10)第一节Keil C51编译器的控制指令 (10)1. 源文件控制类 (10)2. 目标文件(Object)控制类: (10)3. 列表文件(listing)控制类: (10)第二节dScope51的使用 (11)1. dScope51 for Dos 112. 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第二节内存区域(Memory Areas): (16)1. Pragram Area: (16)2. Internal Data Memory: 163. External Data Memory. 164. 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声明,见上例。
Keil C51使用详解
Keil C51使用详解keilc51使用详解v1.0电子设计世界!版权所有,热烈欢迎贴文,切勿修正并标明原文。
留存一切权利。
第一章keilc51开发系统基本知识 (6)1第一节系统概述 (6)第二节keilc51单片机软件开发系统的整体结构...6第三节keilc51工具包的加装...71.c51fordos72.c51forwindows的安装及注意事项:...7第四节keilc51工具包各部分功能及使用简介...71.c51与a51.72.l51和bl51.83.dscope51,tscope51及monitor51.84.ishell及uvision.9第二章keilc51软件使用详解 (10)第一节keilc51编译器的控制指令...101.源文件掌控类 (10)2.目标文件(object)控制类:...103.列表文件(listing)控制类:...10第二节dscope51的使用...111.dscope51fordos112.dscopeforwindows12第三节monitor51及其使用...131.monitor51对硬件的要求...132.mon51的使用...133.mon51的配置...134.串口连接图:...135.mon51命令及使用...14第四节集成开发环境(ide)的使用...141.ishellfordos的使用 (14)22.uvisionforwindows的使用 (15)第三章keilc51vs标准c..15第一节keilc51扩展关键字...15第二节内存区域(memoryareas):...161.pragramarea:...162.internaldatamemory:163.externaldatam emory.162.可位串行区表明20h-2fh..18第七节keilc51指针...181.通常指针...182.存储器指针...183.指针切换...18第八节keilc51函数...191.中断函数声明:...192.通用型存储工作区 (19)3.选通用存储工作区由usingx声明,见上例。
(周立功)keil C51开发手册
第三章 8051 产品系列
Keil 提供工业用的 8051 开发工具 为了帮助你熟悉我们是如何分配工具的 下面介绍工具套件的 概念 工具套件是几个应用程序的集合 这些程序用来创建 8051 应用系统 使用汇编器汇编 8051 汇 编程序 使用编译器将 C 源代码编译成目标文件 使用连接器创建一个绝对目标文件模块供仿真器使 用
此外还需要足够的
CONFIG.SYS 文件应当和下列格式相似
BUFFERS 20
FILES 20
SHELL C:\/e: 1024/p 如果在 DOS 下收到信息 Out of environment space 境空间数量 详情参考 DOS 用户指南 备份磁盘
就需要通过增加示例中 1024 的值以增加环
在创建适当的目录后 安装程序将开发工具复制到下列子目录中
子目录
ASM BIN DS51 EXAMPLES RTX51 RTX_TINY INC LIB MON51 TS51
描述 汇编器包含文件 可执行文件 dScope-51 DOS IOF 驱动器 示例应用程序
RTX 51
RTX 51 C 编译器文件 C 编译器库文件和启动代码 目标监控文件 tScope-51 DOS IOT 驱动器
强烈建议用户将安装磁盘拷贝到一个备份盘上 然后用备份磁盘来安装软件 将原磁盘妥善保存
以防止备份磁盘丢失或损坏
安装 DOS 版产品 要安装 DOS 版 将第一个安装盘插入驱动器 A 并在 DOS 提示符下键入以下命令
A INSTALL 然后按安装程序的提示继续安装
keil C51 应用入门
keil C51 应用入门keil C51软件是众多单片机应用开发的优秀软件之一,它集编辑、编译、仿真于一体,支持汇编和C 语言的程序设计,界面友好,易学易用。
本章主要介绍keil C51的安装、开发环境和程序调试及仿真方法。
一keil C51软件的安装下面以keil C51 V7.50a版本为例,介绍如何安装keil µVision3集成开发环境。
先安装keil µVision2,然后安装升级版本keil µVision3。
图1-1安装初始化图1-2 安装向导对话框(1)把光盘放入光驱中(假定为F盘),进入F:keil 51V7.50a\setup目录下,这时会看到SETUP.EXE文件,双击该文件即可开始安装。
(2)这时会出现如图1-1所示的安装初始化画面,稍后弹出一个如图1-2所示的安装向导对话框,询问用户是安装、更新还是卸载软件,当然选择第一项“Install Support for Additional Microcontroller Architectures”安装该软件。
(3)单击Next钮,这时会出现如图1-3所示的安装询问对话框,提示用户是安装完全版还是评估版。
如果买了正版的keil C51就可选择Full V ersion,否则选择Eval V ersion。
图1-3 安装询问对话框(4)此后在弹出的几个确认对话框中选择Next,这是会出现如图1-4所示的安装路径设置对话框,默认路径是C:/KEIL。
当然用户可以单击选择适合自己安装的目录。
图1-4 安装路径设置对话框(5)在接下来的询问对话框中选择Next命令按钮加以确认,即可出现如图1-5所示的安装进度指示画面。
(6)接下来就是等待安装。
安装完成后单击Finish加以确认,此时可以在桌面上可看到keil µVision2软件的快捷图标,如图1-6所示。
双击它就可进入keil C51集成开发环境。
keil C51入门教程
第三章 C51语言作者:彭保基 西安交通大学 电信学院 电子2002级 版本:V1.1 写作时间:2004年12月---2005年3月本章主要介绍在Keil 的集成环境下用C 语言编程,并对C51语言与标准的C 语言的异同进行比较。
由于篇幅有限并考虑到读者大部分已经学过标准的C 语言,不再对C 语言进行深入的讲解;如果读者想深入了解和掌握C 语言,则可查阅和参考其他相关资料。
第一节 C51简介汇编语言是编写单片机程序的常用语言之一,很多老的单片机开发者使用汇编语言已经成为了一种习惯;汇编语言编写的程序所生成的代码效率很高,能直接操作硬件,指令的执行速度快。
但其指令系统的固有格式受硬件结构的限制很大,且难于编写与调试,可移植性也差。
随着单片机硬件性能的提高,其工作速度越来越快,因此在编写单片机应用系统程序时,更着重于程序本身的编写效率。
与汇编语言相比,C 语言在功能、结构、可读性和可维护性上有明显的优势,因而易学易用;在开发大型软件时更能体现其高级语言的优势。
因此,近些年来越来越多地人喜欢用C 语言来编写单片机的应用程序。
本章所说的C51语言就是标准C 语言的变种,是标准C 语言的扩展;关于两者的区别,将在下一节中详细的介绍。
第二节 C51与ANSI C 的比较Keil C51编译器是一个完全支持ANSI 标准C 语言的编译器,除了少数关键的地方之外,Keil C51和标准ANSI C 语言是基本类似的;但由于51单片机的特殊性,Keil C51在标准C 语言基础上进行了扩展,使其能够更有效地利用单片机各种有限的资源。
深入理解和掌握C51对标准C 语言的扩展,是学好C51语言的关键。
一、 Keil C51扩展关键字关键字 用 途 说 明bit 声明一个位标量或位类型的函数sbit 位标量声明声明一个可位寻址变量 Sfr 声明一个特殊功能寄存器 Sfr16 特殊功能寄存器声明声明一个16位的特殊功能寄存器 data 直接寻址的内部数据存储器 bdata可位寻址的内部数据存储器idata 间接寻址的内部数据存储器 pdata 分页寻址的外部数据存储器xdata 外部数据存储器 code 存储器类型说明 程序存储器interrupt 中断函数说明 定义一个中断函数 reentrant 再入函数说明 定义一个再入函数 using 寄存器组定义定义芯片的工作寄存器_at_ 绝对定位_task_ alien small compact large存储模式附表3- C51编译器的扩展关键字二、 数据类型Keil C51编译器支持下表列出的数据类型。
KEli C51软件入门
keil软件的使用有关“Keil uVision2”软件的使用:开发单片机的第一步就是用Keil软件编写汇编程序,并形成最终的“*.hex”目标文件,然后用编程器将该文件烧写到单片机中就行了,最后将烧写好的单片机插到电路板上,一接通电源就可以工作了。
下面以编写小灯闪烁的程序为例介绍KILL软件的使用方法:1、双击桌面上的图标,打开以下窗口:点“工程”,新建工程:给工程起一个名字,我用“xiaodeng”就是小灯的意思,然后点保存:选择你使用的芯片型号,我用的是Atmel公司生产的89s51,双击Atmel:在下面找到At89S51后,点击它,然后确定:点击确定后,接下来再为你的工程新建一个文件弹出以下窗口:在弹出的窗口里面写入你的汇编程序:然后点文件,另存为:为你的文件起一个名字,我这里名字为“xiaodeng.asm”。
注意文件的扩展名不能省略,而且必须是“.asm”:点击保存,出现以下界面:将左边Target 1前面的“+”号展开,在它下面的字符“Source Group 1”上点击鼠标右键,再点击增加文件到组:在文件类型中点击asm源文件:在文件中找到你刚才新建的xiaodeng.asm文件,然后点击Add加入:只需要加入一次就够了,如果再次加入,将出现以下画面,不要紧,点确定就好了:这时候,左边的文件夹“Source Group 1”前面就有了一个“+”号:点击该“+”号展开后,下面就出现了一个名为“Xiakdeng.asm”的文件,说明已经将文件加进来了。
接下来将鼠标移到“Target 1”上,点击右键,再点击“目标‘Target 1’属性”:弹出以下窗口:点“输出”,在新弹出的窗口中,一定要确保“E生成 HEX文件”前面的小方格内有一个勾“√”,即选中该项,然后再点击“确定”:最后点击下面的符号:即“构造所有目标文件夹”,当出现以下画面时,说明目标文件“xiaodeng.hex”文件已经生成了:。
Keil C51使用详解
Keil C51使用详解第一章Keil C51开发系统基本知识 (6)第一节系统概述 (6)第二节Keil C51单片机软件开发系统的整体结构 (6)第三节Keil C51工具包的安装 (7)1. C51 for Dos 72. C51 for Windows的安装及注意事项: (7)第四节Keil C51工具包各部分功能及使用简介 (7)1. C51与A51. 72. L51和BL51. 83. DScope51,Tscope51及Monitor51. 84. Ishell及uVision. 9第二章Keil C51软件使用详解 (10)第一节Keil C51编译器的控制指令 (10)1. 源文件控制类 (10)2. 目标文件(Object)控制类: (10)3. 列表文件(listing)控制类: (10)第二节dScope51的使用 (11)1. dScope51 for Dos 112. 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: 163. External Data Memory. 164. 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声明,见上例。
KeilC51使用教程
Keil C语言程序设计示例教程(开发C8051F310)使用汇编语言或C语言要使用编译器,以便把写好的程序编译为机器码,才能把HEX可执行文件写入单片机内。
KEIL uVISION是众多单片机应用开发软件中最优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,甚至ARM,它集编辑,编译,仿真等于一体,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。
因此很多开发51应用的工程师或普通的单片机爱好者,都对它十分喜欢。
在这里以51单片机并结合C程序为例(汇编操作方法类似,唯一不同的是汇编源程序文件名后缀为“.ASM ”),图文描述工程项目的创建和使用方法。
1.首先我们要养成一个习惯:最好先建立一个空文件夹,把您的工程文件放到里面,以避免和其他文件混合,如下图, 创建了一个名为“PRJ_C8051”文件夹2.点击桌面上的Keil uVision4图标,出现启动画面:3.点击“project --- New uVision Project”新建一个工程:4.在对话框,选择放在刚才建立的“PRJ_C8051”文件夹下,给这个工程取个名为Test_C8051F310, 然后保存,工程的后缀为uvporj。
5.弹出一个框,在CPU类型下我们找到并选中“Silicon Laboratories. Inc.”下的C8051F3106.加入C8051起动码7.建立一个源程序文本8.在下面空白区别写入或复制一个完整的C程序:9.输入源程序文件名名称,示例输入“Test_C8051F310.c”,然后保存:10.把刚创建的源程序文件加入到工程项目文件中。
11.设置---目标(第1步~ 第4步)15.工程项目创建和设置全部完成!点击保持并编译16.在C8051F310中的C语言程序示例//-----------------------------------------------------------------------------// Includes// 在c8051f310.h在头文件中定义了C8051F310的寄存器、输入/输出的端口//-----------------------------------------------------------------------------#include <c8051f310.h> // SFR declarations//-----------------------------------------------------------------------------// 16-bit SFR Definitions for 'F30x//-----------------------------------------------------------------------------sfr16 TMR2RL = 0xca; // Timer2 reload valuesfr16 TMR2 = 0xcc; // Timer2 counter//-----------------------------------------------------------------------------// Global CONSTANTS//-----------------------------------------------------------------------------#define SYSCLK 24500000 / 8 // SYSCLK frequency in Hzsbit LED = P0^0; // LED='1' means ON//-----------------------------------------------------------------------------// Function PROTOTYPES//-----------------------------------------------------------------------------void SYSCLK_Init (void);void PORT_Init (void);void Timer2_Init (int counts);void Timer2_ISR (void);//-----------------------------------------------------------------------------// MAIN Routine//-----------------------------------------------------------------------------void main (void){// disable watchdog timerPCA0MD &= ~0x40; // WDTE = 0 (clear watchdog timer// enable)SYSCLK_Init (); // Initialize system clock to// 24.5MHzPORT_Init (); // Initialize crossbar and GPIOTimer2_Init (SYSCLK / 12 / 10); // Init Timer2 to generate// interrupts at a 10Hz rate.EA = 1; // enable global interruptswhile (1) // spin forever{}}//-----------------------------------------------------------------------------// SYSCLK_Init//-----------------------------------------------------------------------------//// This routine initializes the system clock to use the internal 24.5MHz / 8// oscillator as its clock source. Also enables missing clock detector reset.//void SYSCLK_Init (void){OSCICN = 0x80; // configure internal oscillator for// its lowest frequency RSTSRC = 0x04; // enable missing clock detector }//-----------------------------------------------------------------------------// PORT_Init//-----------------------------------------------------------------------------//// Configure the Crossbar and GPIO ports.// P3.3 - LED (push-pull)//void PORT_Init (void){// assignmentsXBR0 = 0x00; // no digital peripherals selectedXBR1 = 0x40; // Enable crossbar and weak pull-ups//P3MDOUT |= 0x08;P0MDOUT |= 0x03; // enable LED as a push-pull output}//-----------------------------------------------------------------------------// Timer2_Init//-----------------------------------------------------------------------------//// Configure Timer2 to 16-bit auto-reload and generate an interrupt at// interval specified by <counts> using SYSCLK/48 as its time base.//void Timer2_Init (int counts){TMR2CN = 0x00; // Stop Timer2; Clear TF2;// use SYSCLK/12 as timebase CKCON &= ~0x60; // Timer2 clocked based on T2XCLK;TMR2RL = -counts; // Init reload valuesTMR2 = 0xffff; // set to reload immediatelyET2 = 1; // enable Timer2 interruptsTR2 = 1; // start Timer2}//-----------------------------------------------------------------------------// Interrupt Service Routines//-----------------------------------------------------------------------------//-----------------------------------------------------------------------------// Timer2_ISR//-----------------------------------------------------------------------------// This routine changes the state of the LED whenever Timer2 overflows.//void Timer2_ISR (void) interrupt 5{TF2H = 0; // clear Timer2 interrupt flagLED = ~LED; // change state of LED}17.KEIL C语言与汇编语言的混合编程方法C语言中加入汇编语言模块的方法:例子:void func(){C语言代码……#pragma asmMOV R6,#23DELAY2: MOV R7,#191DELAY1: DJNZ R7,DELAY1DJNZ R6,DELAY2RET#pragma endasmC语言代码……}汇编部分需要用#pragma asm和#pragma endasm包起来18.KEIL C混合编程中的错误与解决方法1)Keil提示“asm/endasm”出错的解决方法如果只是像1中那样直接加入汇编代码的话,编译将会报错,错误如下:compiling sendata.c...sendata.c(81): error C272: 'asm/endasm' requires src-control to be active sendata.c(87): error C272: 'asm/endasm' requires src-control to be active Target not created解决方法如下:首先project workspace窗口右键单击包含有汇编部分的c语言文件名,然后在如上图所示的菜单中选择带有红色方框的选项在弹出的对话框中,将上图中红色方框选中的两项打上勾(默认的情况下,前面的勾是灰色的,要让这两项前的勾变为黑色的),点击确定。
单片机开发与仿真软件keilc51的使用
单片机开发与仿真软件Keil C51的使用一、Keil C51 操作入门Keil C51 简介Keil C51 是德国知名软件公司Keil(现已并入ARM 公司)开发的基于8051 内核的微控制器软件开发平台,是目前开发8051 内核单片机的主流工具。
Keil 51支持汇编语言、C语言等各种开发语言。
其中,uVision2集成开发环境包含项目管理、源代码编辑和强大的程序调试环境。
uVision2调试器是一个强大的全特性调试器,允许用户在PC机上完全模拟目标程序、指令集和片内外围功能。
实验所用的是Keil C51 评估版。
Keil C51 的启动双击桌面上的“Keil uVision2”图标,启动Keil C51程序,启动界面如图1所示。
图1 Keil C51的启动界面建立第1 个Keil C51 程序Keil C51 是一个功能很强大的软件,但是使用起来并不复杂。
现在就通过建立一个简单的LED(发光二极管)闪烁发光的实例来初步掌握Keil C51的基本用法。
硬件电路参见图2,单片机I/O 输出低电平可点亮LED。
图2 LED 闪烁发光电路●新建工程。
执行Keil C51 软件的菜单“Project | N ew Project…”,弹出一个名为“Create New Project”的对话框。
先选择一个合适的文件夹准备来存放工程文件,比如“E:\Project\LedFlash”,其中“LedFlash”是新建的文件夹。
建议:今后每新建一个工程都要在适当的磁盘位置新建一个文件夹用来保存工程文件,以方便管理,并养成良好的习惯。
最后,为工程取名为“LedFlash”,并保存。
参见图3。
图3 新建Keil C51 工程●选择CPU。
紧接着,Keil C51 提示选择CPU 器件。
8051 内核单片机最早是由鼎鼎大名的Intel 公司发明的,后来其他厂商如Philips 、Atmel 、Winbond 等先后推出其兼容产品,并在8051 的基础上扩展了许多增强功能。
单片机仿真件KeilC51软件的使用教程(中文版)
单片机仿真软件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单片机。
51单片机C语言编程入门以及keil_uvision使用方法介绍(详讲版)
中国科学技术大学业余无线电协会
1
51 单片机 C 语言编程入门——Easy 51 Kit Pro 配套学习资料
§2 单片机简介
§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
Keil C51编程调试教程
Keil C51集成开发环境编程与调试教程山东师大传媒学院刘新阳编一、Keil中进行C语言编程的基本步骤同VC之类的通用C语言集成开发环境(IDE)一样,Keil也采用“工程”(Project)的方式管理源代码及相关文件,这种管理方式为由多个源代码文件组成的大型程序开发提供了方便。
不管是最简单的C51程序,还是复杂的多文件程序都需要以下步骤:1)先建立新的工程文件;2)在工程中新建源代码文件,或是将已经存在的源代码文件加入工程;3)编译;4)调试,修正错误再编译;5)将生成的二进制文件*.hex烧入单片机。
本教程重点介绍上述前4个步骤。
二、Keil中新建工程的步骤1. 单击菜单“Project——New uVision Project……”出现新建工程对话框:在此对话框中选择存放工程各类文件的路径和文件夹,然后为工程的主文件取个名字,以后单击该主文件即可打开这个工程项目。
2. 选择单片机型号上个窗口关闭后,马上会呈现下面这个窗口,在这里我们要选择所使用的单片机型号。
具体到这里,我们选择Atmel文件夹下的AT89C51。
(也可以选择下面的AT89C52、AT89S51或AT89S52)注意:单击OK后会出现下面这个提示信息:这里一定要选“否”,即:不需要自动添加起始代码。
完成后,即可看到Keil主界面:此时可以看到屏幕左侧的“Project”窗口(工程文件管理器)中,Target1下面的Source Group1(源代码文件组1)为空,即现在新建的工程中还不包含任何源代码文件。
所以,接下来要做的就是新建源代码文件。
3. 新建源代码文件单击菜单“File——New……”之后,即可在编辑区看到新建了一个名为text1的文本文件。
单击工具栏上的“保存”(图标为磁盘)按钮,可以在保存文件对话框中选择这个文本文件的保存位置(一般和工程文件保存在同一级文件夹)和文件的主名及扩展名。
如果只有一个源代码文件,一般主名命名为工程名,若是C语言源代码,扩展名设置为.c即可。
手把手教你学51单片机(C语言版)
10.1.2 定时时间精准性调 整
10.1.4 数码管扫描函数算 法改进
12
Part One
11 UART串口通信
11 UART串口通信
11.1 串行通信的 初步认识
11.2 RS-232通 信接口
11.3 USB转串口 通信
11.4 IO口模拟 UART串口通信
11.5 UART串口 通信的基本应用
A
C
E
13.2 1602整屏 移动
13.4 计算器实 例
13.6 练习题
13.1 通信时序 解析
13.3 多.c文件 的初步认识
B
13.5 串口通信机制 和实用的串口例程
D
F
15
Part One
14 I^2C总线与E^2PROM
14 I^2C总线与E^2PROM
14.1 I2C时 序初步 认识
14.2 I2C寻 址模式
18 RS-485通信与Modbus协议
01
18.1 RS485通信
02
18.2 Modbus 通信协议介绍
18.2.1 Modbus协议 特点 18.2.2 RTU协议帧数 据
03
18.3 Modbus 多机通信例程
04
18.4 练习题
20
Part One
19 实践项目开发——多功能电子钟
19 实践项目开发——多功能电子钟
1.6 答读者问
03
Part One
2 点亮你的LED
2 点亮你的LED
2.1 单片机的 内部资源
2.2 单片机最 小系统
2.3 LED小灯
2.6 练习题
2.5 程序下载
C51语言编程基础
图6 完成新建工程文件
21
KEIL C51快速入门
下面可以编写程序。 5、在图2-7中,单击“File”菜 单,再在下拉菜单中单击“New”选 项。
新建文件后屏幕如图8所示。
图7 新建文档
图8 完成 新建文档
22
KEIL C51快速入门
此时光标在编辑窗口里闪烁,这时可以键入应用程序了,建议首先保 存该空白的文件,单击菜单上的“File”,在下拉菜单中选中“Save As” 选项单击,屏幕如下图所示,在“文件名”栏右侧的编辑框中,键入欲使 用的文件名,用C语言编写扩展名为(.c)如果用汇编语言编写扩展名必须 为(.asm)。然后,单击“保存”按钮。 如图8所示。
图10 添加文档
25
KEIL C51快速入门
选中main.c,然后单击“Add ”屏幕如下图所示。
图10 完成添加文档
注意到“Source Group 1”文件夹中多了一个子项“main.c”子 项的多少与所增加的源程序的多少相同。
7、现在便可输入程序了,输入完毕进行调试便可运行。
26
Proteus 快速入门
一些例程来介绍C51的程序设计思想。
1
单片机入门主要掌握以下知识和应用
最小系统能够运行起来的必要条件。 1.电源 2.晶振3.复位电路
对单片机任意IO口的随意操作
1.输出控制电平高低2.输入检测电平高低。 定时器:重点掌握最常用的方式2 中断:外部中断、定时器中断、串口中断 串口通信:单片机之间、单片机与计算机间
3
使用C语言的优点
C 语言具有结构化和模块化特点,便于阅读和维 护。
C 语言可移植性好,很多微控制器都支持C 编译 器。功能化的代码能够很方便的从一个工程移植 到另一个工程,从而减少了开发时间。 提供的库函数包含许多标准子程序,具有较强的 数据处理能力。
Keil C51使用和操作步骤
Keil软件安装完毕后,会在桌面上生成Keil uVision4图标,双 击该图标,或选择“开始”-“程序”-Keil uVision4,卽 可进入Keil软件的集成开发环境。
1、工程项目的建立 (1)点击 “Project->NewProject ”菜单,出现一个对 话框,要求给将要建立的工程起一个名字,你可以在编缉框中 输入一个名字(设为 exam1),不需要扩展名。点击“保存” 按钮,将你的项目文件名存入指定的路径下的文件夹里,此时 会出现第二个对话框。 (需要预先/或即时在指定的路径下建立一个文件夹) (2)选择你所用CPU芯片的型号。 (3)选择 Atmel 公司的 AT89C51 芯片。 (4)点击“OK”确认 (5)点击“否”后建立项目完成
(2)给源文件起个名,请记住,文件名后面一定要加上后缀“.C”,点击快捷键“保存”,将 文件保存在指定的文件夹里。
3、给工程加入源文件
(1)在项目管理窗里,用右键点击“Source Group 1”
出现下一个提示: (2)点击“ (3)选择刚建立的源程序,点击“Add”
4、工程项目的设置
(1)点击项目管理窗中的 出现一个新的对话窗:在Greate HEX File HEXFomat选项上打上勾
” 出现一个新的对话框。
2、源文件的建立
(1)使用菜单“File ->New”或者点击工具栏的新建文件按钮,即可在项目窗口的右侧打开一个 新的文本编缉窗口,在该窗口中输入以下C语言源程序。
#include <reg51.h> //包含头文件REG51.H,定义了51单片机的 特殊功能寄存器。 sbit P2_0=P2^0; //定义位名称 void delay(unsigned char i); //延时函数声明 void main() //主函数 { while(1) { P2_0=0; //点亮信号灯 delay(255); //调用延时函数,实际变量为255 P2_0=1; //熄灭信号灯 delay(255); //调用延时函数,实际变量为255 } } //函数名:delay //函数功能:实现软件延时 void delay(unsigned char i) //延时函数,无符号字符型变量i为形式参数 { unsigned char j,k; //定义无符号字符型变量j和k for(k=0;k<i;k++) //双重for循环语句实现软件延时 for(j=0;j<255;j++); }
单片机KeilC51软件的使用方法
Keil C51软件的使用Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑、编译、仿真于一体,支持汇编和 C 语言的程序设计,界面友好、易学易用。
下面介绍Keil C51软件的使用方法:1.启动Keil C51,界面如下图。
启动Keil C51时的屏幕进入Keil C51后的编辑界面2.建立一个新工程。
(1)单击工程菜单,在弹出的下拉菜单中选中新建工程选项。
(2)然后选择你要保存的路径,输入工程文件的名字,比如保存到C51目录里,工程文件的名字为C51,如下图所示,然后点击保存。
(3)这时会弹出一个对话框,要求你选择单片机的型号,你可以根据你使用的单片机来选择,Keil C51几乎支持所有的51核的单片机,我这里还是以大家用的比较多的Atmel 的89C51来说明,如下图所示,选择89C51之后,右边栏是对这个单片机的基本的说明,然后点击确定。
(4)完成上一步骤后,屏幕如下图所示。
(5)单击文件菜单,再在下拉菜单中单击新建选项,屏幕如下图所示。
此时光标在编辑窗口里闪烁,这时可以键入用户的应用程序了,建议首先保存该空白的文件,单击文件菜单,在下拉菜单中选中另存为选项单击,屏幕如下图所示,在文件名栏右侧的编辑框中,键入欲使用的文件名,同时,必须键入正确的扩展名。
编写程序,则扩展名必须为.asm。
然后,单击保存按钮。
回到编辑界面后,单击目标1前面的+号,然后在源程序组1上单击右键,弹出如下菜单,然后单击增加文件到组‘源程序组1’,屏幕如下图所示,选中c51.asm,然后单击Add,屏幕如下图所示,(7)输入如下的汇编语言源程序,程序输入完毕后如下图所示。
(8)单击工程菜单,再在下拉菜单中单击建造目标选项(或者使用快捷键F7),编译成功后,再单击调试菜单,在下拉菜单中单击开始/停止调试(或者使用快捷键Ctrl+F5),屏幕如下所示。
(9)调试程序,在上图中单击调试菜单,在下拉菜单中单击运行到选项(或者使用快捷键F5),然后再单击调试菜单,在下拉菜单中单击停止运行选项(或者使用快捷键Esc),通过寄存器窗口、存储器窗口以及外围设备窗口等就可以看到程序运行后的结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
平凡单片机工作室 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(;;),这里不对此作详细 的介绍,读者暂时只要知道,这行程序连同其后的一对大括号“{}”构成了一个无限循环语
句,该大括号内的语句会被反复执行。
+5V PZ1 1K
+5V
D1
P1.0
VCC
E1 + 10U
R1 10K
89×××
D8 RST EA/VPP
27P
CY
XTAL2
27P
XTAL1 GND
图 1-1 接有 LED 的单片机基本电路
1.1 简单的 C 程序介绍
例 1-1: 让接在 P1.0 引脚上的 LED 发光。 /*************************************************
上海沪生电子产品使用说明书
电话:021-61021969 网站:
单片机的 C 语言轻松入门
随着单片机开发技术的不断发展,目前已有越来越多的人从普遍使用汇编语言到逐渐使 用高级语言开发,其中主要是以 C 语言为主,市场上几种常见的单片机均有其 C 语言开发 环境。这里以最为流行的 80C51 单片机为例来学习单片机的 C 语言编程技术。
/* P3 */ sbit RD = 0xB7; sbit WR = 0xB6; sbit T1 = 0xB5; sbit T0 = 0xB4; sbit INT1 = 0xB3; sbit INT0 = 0xB2; sbit TXD = 0xB1;
sbit RXD = 0xB0;
/* SCON */ sbit SM0 = 0x9F; sbit SM1 = 0x9E; sbit SM2 = 0x9D; sbit REN = 0x9C; sbit TB8 = 0x9B; sbit RB8 = 0x9A; sbit TI = 0x99; sbit RI = 0x98; 熟悉 80C51 内部结构的读者不难看出,这里都是一些符号的定义,即规定符号名与地 址的对应关系。注意其中有
/* IE */ sbit EA = 0xAF; sbit ES = 0xAC; sbit ET1 = 0xAB; sbit EX1 = 0xAA; sbit ET0 = 0xA9; sbit EX0 = 0xA8;
/* IP */ sbit PS = 0xBC; sbit PT1 = 0xBB; sbit PX1 = 0xBA; sbit PT0 = 0xB9; sbit PX0 = 0xB8;
sfr P1 = 0x90; 这样的一行(上文中用黑体表示),即定义 P1 与地址 0x90 对应,P1 口的地址就是 0x90 (0x90 是 C 语言中十六进制数的写法,相当于汇编语言中写 90H)。 从这里还可以看到一个频繁出现的词:sfr sfr 并标准 C 语言的关键字,而是 Keil 为能直接访问 80C51 中的 SFR 而提供了一个新 的关键词,其用法是: sfrt 变量名=地址值。 2)符号 P1_0 来表示 P1.0 引脚。 在 C 语言里,如果直接写 P1.0,C 编译器并不能识别,而且 P1.0 也不是一个合法的 C 语言变量名,所以得给它另起一个名字,这里起的名为 P1_0,可是 P1_0 是不是就是 P1.0 呢?你这么认为,C 编译器可不这么认为,所以必须给它们建立联系,这里使用了 Keil C 的关键字 sbit 来定义,sbit 的用法有三种: 第一种方法:sbit 位变量名=地址值 第二种方法:sbit 位变量名=SFR 名称^变量位地址值 第三种方法:sbit 位变量名=SFR 地址值^变量位地址值 如定义 PSW 中的 OV 可以用以下三种方法: sbit OV=0xd2 (1)说明:0xd2 是 OV 的位地址值 sbit OV=PSW^2 (2)说明:其中 PSW 必须先用 sfr 定义好 sbit OV=0xD0^2 (3)说明:0xD0 就是 PSW 的地址值 因此这里用 sfr P1_0=P1^0;就是定义用符号 P1_0 来表示 P1.0 引脚,如果你愿意也可以 起 P10 一类的名字,只要下面程序中也随之更改就行了。 3)main 称为“主函数”。 每一个 C 语言程序有且只有一个主函数,函数后面一定有一对大括号“{}”,在大括号 里面书写其它程序。 从上面的分析我们了解了部分 C 语言的特性,下面再看一个稍复杂一点的例子。 例 1-2 让接在 P1.0 引脚上的 LED 闪烁发光 /*************************************************
在学会使用汇编语言后,学习 C 语言编程是一件比较容易的事,我们将通过一系列的 实例介绍 C 语言编程的方法。图 1-1 所示电路图使用 89S52 单片机作为主芯片,这种单片 机性属于 80C51 系列,其内部有 8K 的 FLASH ROM,可以反复擦写,并有 ISP 功能,支 持在线下载,非常适于做实验。89S52 的 P1 引脚上接 8 个发光二极管,P3.2~P3.4 引脚上接 4 个按钮开关,我们的任务是让接在 P1 引脚上的发光二极管按要求发光。
平凡单片机工作室
Copyright 2003 pingfan's mcustudio All rights Reserved
作者:周坚 ddss.c 单灯闪烁程序 *************************************************/ #include "reg51.h" #define uchar unsigned char #define uint unsigned int sbit P10=P1^0;
//取反 P1.0 引脚
mDelay(1000);
}
}
程序分析:主程序 main 中的第一行暂且不看,第二行是“P1_0=!P1_0;”,在 P1_0 前有
一个符号“!”,符号“!”是 C 语言的一个运算符,就像数学中的“+”、“-”一样,是一种 运算任号,意义是“取反”,即将该符号后面的那个变量的值取反。
/* BYTE Register */ sfr P0 = 0x80; sfr P1 = 0x90; sfr P2 = 0xA0; sfr P3 = 0xB0; sfr PSW = 0xD0; sfr ACC = 0xE0; sfr B = 0xF0; sfr SP = 0x81; sfr DPL = 0x82; sfr DPH = 0x83; sfr PCON = 0x87; sfr TCON = 0x88; sfr TMOD = 0x89; sfr TL0 = 0x8A; sfr TL1 = 0x8B; sfr TH0 = 0x8C; sfr TH1 = 0x8D; sfr IE = 0xA8; sfr IP = 0xB8; sfr SCON = 0x98; sfr SBUF = 0x99;
#include “reg51.h” sbit P1_0=P1^0; void main() { P1_1=0; } 这个程序的作用是让接在 P1.0 引脚上的 LED 点亮。下面来分析一下这个 C 语言程序包 含了哪些信息。 1)“文件包含”处理。 程序的第一行是一个“文件包含”处理。 所谓“文件包含”是指一个文件将另外一个文件的内容全部包含进来,所以这里的程序 虽然只有 4 行,但 C 编译器在处理的时候却要处理几十或几百行。这里程序中包含 REG51.h 文件的目的是为了要使用 P1 这个符号,即通知 C 编译器,程序中所写的 P1 是指 80C51 单 片机的 P1 端口而不是其它变量。这是如何做到的呢? 打开 reg51.h 可以看到这样的一些内容: /*------------------------------------------------------------------------REG51.H
/* BIT Register */ /* PSW */ sbit CY = 0xD7; sbit AC = 0xD6; sbit F0 = 0xD5; sbit RS1 = 0xD4; sbit RS0 = 0xD3; sbit OV = 0xD2; sbit P = 0xD0;
/* TCON */ sbit TF1 = 0x8F; sbit TR1 = 0x8E; sbit TF0 = 0x8D; sbit TR0 = 0x8C; sbit IE1 = 0x8B; sbit IT1 = 0x8A; sbit IE0 = 0x89; sbit IT0 = 0x88;