Keil C51使用详解Keil C51 是美国Keil Software 公司出品的51 系列兼容单片机C 语言软件开发系统,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C 来开发,体会更加深刻。Keil C51 软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍 Keil C51 开发系统各部分功能和使用。第二节 Keil C51 单片机软件开发系统的整体结构C51 工具包的整体结构,如图(1)所示,其中uVision 与Ishell 分别是C51 forWindows 和for Dos 的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE 本身或其它编辑器编辑C 或汇编源文件。然后分别由C51 及A51 编译器编译生成目标文件(.OBJ)。目标文件可由LIB51 创建生成库文件,也可以与库文件一起经L51 连接定位生成绝对目标文件(.ABS)。ABS 文件由OH51 转换成标准的hex 文件,以供调试器dScope51 或tScope51 使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM 中。图(1) C51 工具包整体结构图第三节 Keil C51 工具包的安装81. C51 for Dos在 Windows 下直接运行软件包中DOS\C51DOS.exe 然后选择安装目录即可。完毕后欲使系统正常工作须进行以下操作(设C:\C51 为安装目录):修改 Autoexec.bat,加入path=C:\C51\BinSet C51LIB=C:\C51\LIBSet C51INC=C:\C51\INC然后运行Autoexec.bat2. C51 for Windows 的安装及注意事项:在 Windows 下运行软件包中WIN\Setup.exe,最好选择安装目录与C51 for Dos相同,这样设置最简单(设安装于C:\C51 目录下)。然后将软件包中crack 目录中的文件拷入C:\C51\Bin 目录下。第四节 Keil C51 工具包各部分功能及使用简介1. C51 与A51(1) C51C51 是C 语言编译器,其使用方法为:C51 sourcefile[编译控制指令]或者 C51 @ commandfile其中 sourcefile 为C 源文件(.C)。大量的编译控制指令完成C51 编译器的全部功能。包控C51 输出文件C.LST,.OBJ,.I 和.SRC 文件的控制。源文件(.C)的控制等,详见第五部分的具体介绍。而 Commandfile 为一个连接控制文件其内容包括:.C 源文件及各编译控制指令,它没有固定的名字,开发人员可根据自己的习惯指定,它适于用控制指令较多的场合。(2) A51A51 是汇编语言编译器,使用方法为:9A51 sourcefile[编译控制指令]或 A51 @ commandfile其中sourcefile 为汇编源文件(.asm或.a51),而编译控制指令的使用与其它汇编如ASM语言类似,可参考其他汇编语言材料。Commandfile 同C51 中的Commandfile 类似,它使A51 使用和修改方便。2. L51 和BL51(1) L51L51 是Keil C51 软件包提供的连接/定位器,其功能是将编译生成的OBJ 文件与库文件连接定位生成绝对目标文件(.ABS),其使用方法为:L51 目标文件列表[库文件列表] [to outputfile] [连接控制指令]或 L51 @Commandfile源程序的多个模块分别经 C51 与A51 编译后生成多个OBJ 文件,连接时,这些文件全列于目标文件列表中,作为输入文件,如果还需与库文件(.LiB)相连接,则库文件也必须列在其后。outputfile 为输文件名,缺少时为第一模块名,后缀为.ABS。连接控制指令提供了连接定位时的所有控制功能。Commandfile 为连接控制文件,其具体内容是包括了目标文件列表,库文件列表及输出文件、连接控制命令,以取代第一种繁琐的格式,由于目标模块库文件大多不止1 个,因而第2 种方法较多见,这个文件名字也可由使用者随意指定。(2) Bl51BL51 也是C51 软件包的连接/定位器,其具有L51 的所有功能,此外它还具有以下3 点特别之处:a. 可以连接定位大于64kBytes 的程序。b. 具有代码域及域切换功能(CodeBanking & Bank Switching)c. 可用于RTX51 操作系统RTX51 是一个实时多任务操作系统,它改变了传统的编程模式,甚至不必用main( )函数,单片机系统软件向RTOS 发展是一种趋势,这种趋势对于186 和38610及68K 系列CPU 更为明显和必须,对8051 因CPU 较为简单,程序结构等都不太复杂,RTX51 作用显得不太突出,其专业版软件PK51 软件包甚至不包括RTX51Full,而只有一个RTX51TINY 版本的RTOS。RTX51 TINY 适用于无外部RAM 的单片机系统,因而可用面很窄,在本文中不作介绍。Bank switching 技术因使用很少也不作介绍。3. DScope51,Tscope51 及Monitor51(1) dScope51dScope51 是一个源级调试器和模拟器,它可以调试由C51 编译器、A51 汇编器、PL/M-51 编译器及ASM-51 汇编器产生的程序。它不需目标板(for windows 也可通过mon51 接目标板),只能进行软件模拟,但其功能强大,可模拟CPU 及其外围器件,如内部串口,外部I/O 及定时器等,能对嵌入式软件功能进行有效测试。
上传时间: 2013-11-01
上传用户:zhouxuepeng1
AT89C2051驱动步进电机的电路和源码:AT89C2051驱动步进电机的电路和源码 程序:stepper.c stepper.hex/* * STEPPER.C * sweeping stepper's rotor cw and cww 400 steps * Copyright (c) 1999 by W.Sirichote */#i nclude c:\mc5151io.h /* include i/o header file */ #i nclude c:\mc5151reg.hregister unsigned char j,flag1,temp; register unsigned int cw_n,ccw_n;unsigned char step[8]={0x80,0xc0,0x40,0x60,0x20,0x30,0x10,0x90} #define n 400/* flag1 mask byte 0x01 run cw() 0x02 run ccw() */main(){ flag1=0; serinit(9600); disable(); /* no need timer interrupt */ cw_n = n; /* initial step number for cw */ flag1 |=0x01; /* initial enable cw() */while(1){ { tick_wait(); /* wait for 10ms elapsed */energize(); /* round-robin execution the following tasks every 10ms */ cw(); ccw(); } }}cw(){ if((flag1&0x01)!=0) { cw_n--; /* decrement cw step number */ if (cw_n !=0) j++; /* if not zero increment index j */ else {flag1&=~0x01; /* disable cw() execution */ ccw_n = n; /* reload step number to ccw counter */ flag1 |=0x02; /* enable cww() execution */ } }
上传时间: 2013-11-21
上传用户:boyaboy
单片机语言C51应用实战集锦使用C语言开发速度快,代码可重复使用,程序结构清晰、易懂、易维护,易开发一些比较大型的项目。目前,许多编译器都已经支持了C51,而且是Windows视窗界面。Kelic51是目前单片机开发最为流行的软件。本书收集并整理了许多实用的采用C51单片机开发的程序,这些程序既可以给读者以开拓思路,参考的用途又是实际的开发程序,可以直接作为程序应用在相同的开发系统上。通过本书的学习,读者可以进一步了解和掌握C51编程的思路和方法。单片机语言C51应用实战集锦目录:程序一 实时时钟芯片DS1302的C51程序例子程序二 C430与CSI的一点区别程序三 一个菜单的例子程序四 DS1820单芯片温度测量程序五 keilc 6.20c版直接嵌入汇编的方法程序六 用计算机并口模拟SPI通信的C源程序程序七 CRC 16-SIANDARD的快速算法程序八 在PC上用并行口模拟I(平方)C总线的C源代码程序九 一种在C51中写二进制的方法程序十 CRC算法原理及C语言实现程序十一 软件陷阶程序十二 一个简单的VB串口发送程序程序十三 12864汉字液晶显示驱动程序程序十四 12232点阵液晶基本驱动程序程序十五 串口中断服务函数集程序十六 93C46读写程序程序十七 20045读写程序程序十八 一组小程序集锦程序十九 AVR asm源程序程序二十 AVR单片机一个简单的通信程序程序二十一 TG19264A接口程序程序二十二 TG19264A接口程序(AVR模拟方式)程序二十三 常用的几种码制转换BCD,hex,BIN程序二十四 16x2字符液晶屏驱动演示程序一程序二十五 16x2字符液晶屏驱动演示程序二程序二十六 PS7219代码程序二十七 2051的AD代码程序二十八 ARV19264型液晶显示字库程序二十九 液晶CKW19264A型接口程序(模拟方式)程序三十 I(平方)C总线驱动程序程序三十一 240128型液晶代码程序三十二 飞机游戏程序三十三 PC键代码程序三十四 拼音输入法模块程序三十五 串行口代码程序三十六 蛇游戏代码程序三十七 与液晶模块T6963C连接代码程序三十八 键盘输入法设计草案程序三十九 16*4液晶汉字代码程序四十 智能化家电控制附录C 单片机C51编程几个有用的模块附录D 头文件W77E58.h附录A MCS-51单片机定点运算子程序库附录B MCS-51单片机浮点运算子程序库
上传时间: 2013-11-02
上传用户:kbnswdifs
89S51看门狗功能的使用方法:在ATMEL的89S51系列的89S51与89C51功能相同,指令兼容。hex程序无需任何转换可以直接使用。89S51只比89C51增加了一个看门狗功能。向看门狗寄存器(WDTRST地址是0A6H)中先写入01EH,再写入0E1H,即可激活看门狗。汇编程序如下:Mov 0A6H,#01EH ;先送1EMov 0A6H,#0E1H ;后送E1C51程序如下:在AT89X51.h声明文件中增加一行 sfr WDTRST = 0xA6来声明看门狗寄存器。Main(){WDTRST=0x1E; //先送1EWDTRST=0xE1; //后送E1喂狗指令与激活相同:WDTRST=0x1E;WDTRST=0xE1;
上传时间: 2013-10-08
上传用户:lyy1234
800A全自动STC单片机实验开发板软硬件说明:① 将下载编程通信线的DB9串行通信RS232插头,插入PC机的RS232串行通信座,用以实现对STC单片机下载编程的通信。② 将下载编程通信线的USB插头(与DB9串行通信RS232插头线较短的一端,注意别搞错,否则不能工作),插入PC机的USB通信座,用以实现对全自动STC单片机实验开发板的供电。③ 将下载编程通信线的USB插头(与DB9串行通信RS232插头线较长的一端,注意别搞错,否则不能工作),插入全自动STC单片机实验开发板上的USB座,以实现对其下载编程的通信和供电。3. 所需软件① 各类文本编辑器软件,如Eidt,记事本等,编辑汇编语言源程序*.ASM;② 集成环境WAVE6000软件:将汇编语言源程序编译成*.hex文件(也可直接在此环境下编辑汇编语言源程序*.ASM);③ 官方提供的STC-ISP软件(http//www.MCU-Memory.com):将汇编语言源程序编译成的*.hex文件在线下载到STC单片机中。4. 使用说明4.1 WAVE6000软件使用说明① 在“WAVE6000”目录中的“BIN”子目录下,双击右图伟福标志执行伟福软件,若跳出“检查电源……”的对话框,点击“取消”,跳出如下画面(下图仅左上部分)。
上传时间: 2013-11-10
上传用户:zuozuo1215
串口调试软件SSCOM可供免费使用,免费下载,本软件可以在Win95/98、Win2000、WinNT、WinXP下面运行.软件功能主要为: 1.接收从串口进来的数据并在窗口显示. 2.所接收到的数据数据显示方式可以选择为字符方式或者hex方式 4.中文显示无乱码,且不影响速度 5.串口波特率可以选择为110bps-256000bps.(波特率>115200时需要硬件支持) 6.可以即时显示存在的串口号.如果您增加了usb转串口等设备,串口号也会在列表中出现. 7.可以选择“5、6、7、8”四种数据长度. 8.可以选择为“1、1.5、2”三种停止位.(1.5停止位需要硬件支持) 8.第9位数据可以选择为“无、奇校验、偶校验、1、0”四种方式. 9.可以选择“无流控、软流控、硬流控、自定义”四种流控方式. 10.串口设置和字符串操作等设置在程序关闭时自动保存,打开时自动载入. 11.可以在接收窗口按键即发送该键值. 12.可以在字符串输入框输入您想发送的字符串,并发送. 13.可以在字符串输入框输入您想发送的hex数据串,数据的值从00到FF,没有任何限制. 14.可以定时重复发送数据,并可以设置发送时间间隔. 15.可以在发送字符串时选择发送新行,即自动加上回车换行. 16.可以显示当前串口的CTS、DSR、RLSL(CD)信号线的状态. 17.可以自由控制当前串口的DTR、RTS信号线的输出状态. 18.可以打开一个文本文件或者一个二进制文件预览其内容,查看方式可以是文本或者hex方式. 19.可以打开一个文本文件或者一个二进制文件并以当前波特率发送到串口. 20.可以保存窗口内容到一个文本文件,文件名取自当前时间,保存在当前目录. 21.可以即时显示发送的字节数和接收到的字节数,按清除窗口将会清零. 22.带有功能强大的扩展功能:多条字符串发送定义和网上查找串口资料等. 23.可以定义最多32条预备发送的字符串,每条字符串可以定义为hex数据串或者字符串方式.在每一条数据的左边打勾就表示这是一条hex数据串. 24.点击字符串右边的标号即可以发送这条定义好的字符串. 25.可以设置为循环发送你定义过的多条字符串,并且可以设置发送时间间隔. 26.在串口资料栏您可以从mcu51网站或者Google查找有关串口技术资料. 27.在串口资料栏您可以进入技术讨论bbs,在此发表您的高见或者提出您的问题和需求. 28.在产品信息栏您可以获得现时最新的产品信息. 29.这是个绿色软件,单个文件即可执行,不会给您的机器增加任何负担. 此版本使用C++Builder编写,相对于上一版本SSCOM2.0,主要改进在: 1.程序更稳定可靠,修改了一些报错信息.使用更加人性化。 2.修改了避免显示汉字乱码的算法,快了许多. 3.hex数据输入的错误兼容性. 4.发送字符串可以加发回车换行. 5.可以保存窗口内容到文件. 6.发送和接收的字符数统计更准确. 7.不再接收到一定数量字符数就清屏,因为发现即使收到很多内容也不会溢出,速度仍然很快. 8,可以打开二进制文件并发送,从前只能发文本文件. 9.打开文件后可以用asc方式或者hex方式预览文件中前4K内容. 10.发送文件前告诉操作者需要发送多少时间.免得久等. 11.新增功能强大的扩展功能,多达32条自定义字符串操作,程序关闭时这些字符串会自动保存,下次开机时再载入,每条可以定义为hex数据串或者ASC字符串,按后边的数字按钮可以发送.也可以自动循环发送定义过的字符串. 12.新增串口设置自动保存. 13.加入了网络支持功能,用户很方便讨论问题和找到技术支持.
上传时间: 2013-10-26
上传用户:448949
AVR单片机GCC程序设计:第一章 概述1.1 AVR 单片机GCC 开发概述1.2 一个简单的例子1.3 用MAKEFILE 管理项目1.4 开发环境的配置1.5 实验板CA-M8第二章 存储器操作编程2.1 AVR 单片机存储器组织结构2.2 I/O 寄存器操作2.3 SRAM 内变量的使用2.4 在程序中访问FLASH 程序存储器2.5 EEPROM 数据存储器操作2.6 avr-gcc 段结构与再定位2.7 外部RAM 存储器操作2.8 堆应用第三章 GCC C 编译器的使用3.1 编译基础3.2 生成静态连接库第四章 AVR 功能模块应用实验4.1 中断服务程序4.2 定时器/计数器应用4.3 看门狗应用4.4 UART 应用4.5 PWM 功能编程4.6 模拟比较器4.7 A/D 转换模块编程4.8 数码管显示程序设计4.9 键盘程序设计4.10 蜂鸣器控制第五章 使用C 语言标准I/O 流调试程序5.1 avr-libc 标准I/O 流描述5.2 利用标准I/0 流调试程序5.3 最小化的格式化的打印函数第六章 CA-M8 上实现AT89S52 编程器的实现6.1 编程原理6.2 LuckyProg2004 概述6.3 AT989S52 isp 功能简介6.4 下位机程序设计第七章 硬件TWI 端口编程7.1 TWI 模块概述7.2 主控模式操作实时时钟DS13077.3 两个Mega8 间的TWI 通信第八章 BootLoader 功能应用8.1 BootLoader 功能介绍8.2 avr-libc 对BootLoader 的支持8.3 BootLoader 应用实例8.4 基于LuckyProg2004 的BootLoader 程序第九章 汇编语言支持9.1 C 代码中内联汇编程序9.2 独立的汇编语言支持9.3 C 与汇编混合编程第十章 C++语言支持附录 1 avr-gcc 选项附录 2 Intel hex 文件格式描述
上传时间: 2014-04-03
上传用户:ligi201200
自制51单片机编程器:本站的腾龙版三合一套件与com51仿真器套件均采用sst89c58芯片仿真, 如果在使用过程中不慎将监控程序冲掉导致无法联机,那么你可以利用一个支持sst89c58的编程器将softice58.exe重新烧写一次即可恢复.此时应当选择rb1进行操作:例如我们用top2000,top852,top2003等编程器的操作界面如下:如果你使用的是sst89e564 , 只需要将soft564.hex 烧写进入,同样选择rb1即可。 关于softice更多说明请看softice-ug.pdf的原版说明。
上传时间: 2014-01-14
上传用户:bhqrd30
HI-TECH PICC C 的使用说明. 这里我们只讲述了PICC C 与标准C 的不同,它不是一本C 语言的教程, 并且我们假定你有C 语言的基础. 为了对PIC 单片机有更好的支持,PICC 在标准C 的基础上作了一些扩充: 定义I/O 函数,以便在你的硬件系统中使用<stdio.h>中定义的函数。 用C 语言编写中断服务程序 用C 语言编写I/O 操作程序 C 语言与汇编语言间的接口1-1 与标准C 的不同PICC 只在一处与标准C 不同:函数的重入。因为PIC 单片机的寄存器及堆栈有限,所以PICC 不支持可重入函数。1-2 支持的PIC 芯片PICC 支持很多PIC 单片机,支持PIC 单片机的类型在LIB 目录下的picinfo.ini文件中有定义。1-3 PICC 包含一些标准库1-4 PICC 编译器可以输出一些格式的目标文件,缺省设置为输出Bytecraft 的'COD'格式和 Intel 的'hex'格式。你可以用表1-1 中的命令来指定输出格式。
上传时间: 2013-10-10
上传用户:781354052
ICCAVR中文使用说明:ICCAVR 介绍1 ImageCraft 的ICCAVR 介绍ImageCraft 的ICCAVR 是一种使用符合ANSI 标准的C 语言来开发微控制器MCU程序的一个工具它有以下几个主要特点ICCAVR 是一个综合了编辑器和工程管理器的集成工作环境IDE 其可在WINDOWS9X/NT 下工作源文件全部被组织到工程之中文件的编辑和工程的构筑也在这个环境中完成编译错误显示在状态窗口中并且当你用鼠标单击编译错误时光标会自动跳转到编辑窗口中引起错误的那一行这个工程管理器还能直接产生您希望得到的可以直接使用的INTELhex 格式文件INTEL hex 格式文件可被大多数的编程器所支持用于下载程序到芯片中去ICCAVR 是一个32 位的程序支持长文件名出于篇幅考虑本说明书并不介绍通用的C 语言语法知识仅介绍使用ICC AVR 所必须具备的知识因此要求读者在阅读本说明书之前应对C 语言有了一定程度的理解2 ICCAVR 中的文件类型及其扩展名文件类型是由它们的扩展名决定的IDE 和编译器可以使用以下几种类型的文件输入文件.c 扩展名----表示是C 语言源文件.s 扩展名----表示是汇编语言源文件.h 扩展名----表示是C 语言的头文件.prj 扩展名----表示是工程文件这个文件保存由IDE 所创建和修改的一个工程的有关信息.a 扩展名----库文件它可以由几个库封装在一起libcavr.a 是一个包含了标准C 的库和AVR 特殊程序调用的基本库如果库被引用链接器会将其链接到您的模块或文件中您也可以创建或修改一个符合你需要的库输出文件.s 对应每个C 语言源文件由编译器在编译时产生的汇编输出文件.o 由汇编文件汇编产生的目标文件多个目标文件可以链接成一个可执行文件.hex INTEL hex 格式文件其中包含了程序的机器代码.eep INTEL hex 格式文件包含了EEPROM 的初始化数据.cof COFF 格式输出文件用于在ATMEL 的AvrStudio 环境下进行程序调试.lst 列表文件在这个文件中列举出了目标代码对应的最终地址.mp 内存映象文件它包含了您程序中有关符号及其所占内存大小的信息.cmd NoICE 2.xx 调试命令文件.noi NoICE 3.xx 调试命令文件.dbg ImageCraft 调试命令文件
上传时间: 2013-10-29
上传用户:truth12