C51HEX文件的生成和单片机最小系统

发布者:心灵的旅程最新更新时间:2012-09-21 来源: 21IC 关键字:C51HEX文件  单片机  最小系统 手机看文章 扫描二维码
随时随地手机看文章

上一篇建立了第一个单片机C语言项目,但为了让编译好的程序能通过编程器写入51芯 片中,要先用编译器生成HEX文件,下面来看看如何用KEIL uVISION2来编译生成用于烧写 芯片的HEX文件。HEX文件格式是Intel公司提出的按地址排列的数据信息,数据宽度为字 节,所有数据使用16进制数字表示,  常用来保存单片机或其他处理器的目标程序代码。它保 存物理程序存储区中的目标代码映象。一般的编程器都支持这种格式。我们先来打开第一个 项目,打开它的所在目录,找到test.Uv2的文件就能打开先前的项目了。然后右击图2-1 中的1项目文件夹,弹出项目功能菜单,选Options for Target’Target1’,弹出项目选项设置窗口, 同样先选中项目文件夹图标,这个时候在Project菜单中也有一样的菜单可选。打开项目选项窗口, 转到Output选项页图2-2所示,图中1是选择编译输出的路径,2是设置编译输出生成的文件 名,3则是决定是否要创建HEX文件,选中它就能输出HEX文件到指定的路径中。选好了? 好,我们再将它重新编译一次,很快在编译信息窗口中就显示HEX文件创建到指定的路径 中了,如图2-3。这样我们就可用自己的编程器所附带的软件去读取并烧到芯片了,再用实 验板看结果,至于编程器或仿真器品种繁多具体方法就看它的说明书了,这里也不做讨论。

(技巧:一、在图2-1中的1里的项目文件树形目录中,先选中对象,再单击它就可对它进 行重命名操作,双击文件图标便可打开文件。二、在Project下拉菜单的最下方有最近编辑过

的项目路径保存,这里能快速打开最近在编辑的项目。)

图2-1项目功能菜单
 

点击浏览下一页

图2-2    项目选项窗口

点击浏览下一页

图 2-3    编译信息窗口

或许您已把编译好的文件烧到了芯片上,如果您购买或自制了带串行口输出元件的学习实 验板,那您就能把串行口和 PC 机串行口相联用串行口调试软件或 Windows 的超级终端,将其波特 率设为  1200,就能看到不停输出的“Hello  World!”字样。如果您还没有实验板,那这 里先说说 AT89c51 的最小化系统,再以一实例程序验证最小化系统是否在运行,这个最小化 系统也易于自制用于实验。图 2-4 便是 AT89c51 的最小化系统,不过为了让我们能看出它 是在运行的,加了一个电阻和一个 LED,用以显示它的状态,晶体震荡器能根据自己的情况使用, 一般实验板上是用 11.0592MHz 或 12MHz,使用前者的好外是能产生标准的串行口波特率,后 者则一个机器周期为 1 微秒,便于做精确定时。在自己做实验里,注意的是 VCC 是+5V 的, 不能高于此值,不然将损坏单片机,太低则不能正常工作。在 31 脚要接高电平,这样我们 才能执行片内的程序,如接低电平则使用片外的程序存储器。下面建一个新的项目名为 OneLED 来验证最小化系统是否能工作.程序如下:

[page]

#include  < AT89X51.h>  //预处理命令

void  main(void)  //主函数名

{

//这是第一种注释方式

unsigned  int  a;  //定义变量 a 为 int 类型

/* 这是第二种注释方式

*/

do{  //do  while 组成循环

for  (a=0;  a<50000;  a++);  //这是一个循环 P1_0  =  0;  //设 P1.0 口为低电平,点亮 LED for  (a=0;  a<50000;  a++);  //这是一个循环 P1_0  =  1;  //设 P1.0 口为高电平,熄灭 LED

}

while(1);

}

点击浏览下一页

图 2-4    AT89c51 最小化系统

这里先讲讲 KEIL  C 编译器所支持的注释语句。一种是以“//”符号开始的语句,符号之后 的语句都被视为注释,直到有回车换行。另一种是在“/*”和“*/”符号之内的为注释。注 释不会被 C 编译器所编译。一个 C 应用程序中应有一个 main 主函数,main 函数能调用别

的功能函数,但其它功能函数不允许调用 main 函数。不论 main 函数放在程序中的那个位置, 总是先被执行。用上面学到的知识编译写好的 OneLED 程序,并把它烧到刚做好的最小化系 统中。上电,刚开始时 LED 是不亮的(因为上电复位后所有的 IO 口都置 1 引脚为高电平), 然后延时一段时间(for  (a=0;  a<50000;  a++)这句在运行),LED 亮,再延时,LED 熄灭, 然后交替亮、灭。第一个真正的小实验就做完,如果没有这样的效果那么您就要认真检查一下电路或编译烧写的步骤了。

关键字:C51HEX文件  单片机  最小系统 引用地址:C51HEX文件的生成和单片机最小系统

上一篇:单片机c语言教程:C51变量
下一篇:单片机c语言教程:建立你的第一个KeilC51项目

推荐阅读最新更新时间:2024-03-16 13:09

基于单片机的IPTV机顶盒的设计
  基于数字媒体处理器芯片EM8620L的IP机顶盒的电路,外围电路简单,实用性强,可实现各种高质量的视频、音频输出,并通过网络支持视频点播。   IPTV是利用宽带网基础设施,以家用电视机(或计算机)作为显示设备、集互联网、多媒体、通信等多种技术于一体,通过互联网络协议(IP)向家庭提供包括数字电视在内多种交互式数字媒体服务的新技术。机顶盒分为两大类,一类是通过接收数字编码的电视信号(来自卫星或有线电视网,使用MPEG压缩方式),获得更清晰,更稳定的图像和声音质量,这种机顶盒一般称为电视机顶盒。另外一类机顶盒内部包含操作系统和互联网浏览软件,通过电话网或有线电视网连接互联网,使用电视机作为显示器,从而实现没有电脑的上网,这种机顶
[家用电子]
单片机T0方式2实现简单时钟
单片机源程序如下: //按4X4键盘的F键 进入设定状态 //E D 键是前后移动键 //C按键是调整数值按键 #include reg52.h #define uchar unsigned char sbit key_h=P1^0; sbit key_m=P1^1; sbit key_s=P1^2; unsigned char Tab ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //段码表 unsigned int h,m,s,counter; void delay1ms(unsigned int i) { unsigned char j; while(i-
[单片机]
<font color='red'>单片机</font>T0方式2实现简单时钟
全面了解面向电动车牵引逆变器的S32K39 MCU
目前电动汽车市场发展迅猛,对提高电动汽车性能的需求也随之增加了。设计人员和汽车制造商需要加快产品上市速度,同时优先考虑如何提高效率和终端用户体验。另外,还要寻找合适的解决方案,开发包括电动汽车牵引逆变器在内的广泛应用,而这无疑是一个挑战。 恩智浦S32K39 MCU是我们S32K系列的新成员 ,将提供优势解上述燃眉之急。 为什么S32K39 MCU适用于电气化 为了保证电动汽车的高性能,需要考虑很多因素,包括电池管理、高效电机驱动、快速充电和整个电网的负载平衡等。恩智浦广泛的电气化解决方案一直在整个生态系统中提供高效的控制,S32K39也不例外。 S32K39 MCU系列专为满足电动汽车牵引逆变器控制需求而创建
[电源管理]
全面了解面向电动车牵引逆变器的S32K39 <font color='red'>MCU</font>
MCS-51系列单片机的中断优先级
在默认状态下,中断优先级控制寄存器IP为0,所有中断源处于低优先级。当所有的中断源处于同一个优先级,并同时向CPU申请中断时,CPU按优先权顺序进行响应;要实现中断嵌套条件是:CPU先响应的中断源应该处于低优先级,在CPU执行该中断源的中断服务程序时,另一高优先级的中断源申请了中断。同一优先级的中断源不能实现中断嵌套。即中断嵌套,就是中断服务过程中再被中断!所谓的优先权严格说是一种排队的机制,相互之间并没有嵌套。 1.多个中断同时发生,则高优先级的中断先执行 2.多个中断同时发生,则同一优先级中优先权靠前的先执行。 3.低优先级的中断在执行时,高优先级的中断可以中断低优先级的中断程序 4.低优先权的中断在执行时,同一优先级中高
[单片机]
MCU如何真正实现差异化的本质
在MCU通用内核逐渐受青睐的今天,对于一些公司来说,产品可以借此东风更新换代转入通用平台,与国际大公司同台竞技,角逐新的市场机会。但往往并非总是好事,就如同手机的Android操作系统,大家都在用,就看谁能做得更好。那么究竟该怎样在通用架构下实现差异化呢? 产品差异化 MCU的内部除了通用内核,还包括存储器、数字和模拟IP部分等组件,每个公司都有自己独特的IP和设计方法,但是更重要是如何将内核与这些IP和存储器结合起来协调工作,实现数据实时控制和传输,这里就体现出MCU架构的重要性。 不同的MCU厂商架构又有何不同?这里面又如何实现差异化?恩智浦全球高性能混合信号和标准器件事业部微控制器产品线总监Jan Jaap Bezem
[单片机]
基于51单片机的高性能直流稳压电源
0 引言 众所周知,许多科学实验都离不开电,并且在这些实验中经常会对通电时间、电压高低、电流大小以及动态指标有着特殊的要求,因此,如果实验电源不仅具有良好的输出质量而且还具有多功能以及一定的智能化,那么就省去了许多不精确的人为操作,取而代之的是精确的微机控制,而我们所要做的就是在实验开始前对一些参数进行预设。这将会给各个领域中的实验研究带来不同程度的便捷与高效。因此,直流电源今后的发展目标之一就是不仅要在性能上做到效率高、噪声低、高次谐波低、既节能又不干扰环境,还要在功能上力求实现数控化、多功能化与智能化。本文所介绍的就是一个将开关电源和线性电源有机地结合起来,兼具二者优点的高性能直流稳压电源。由于在该电源中引入了单片机控
[单片机]
基于51<font color='red'>单片机</font>的高性能直流稳压电源
基于PIC单片机的LED点阵手写屏设计方案
  1 概述   本方案采用PIC 16F877A单片机为主要核心控制元件,设计了一个32×32 LED点阵模块的书写显示屏。它主要由光笔模块和点阵显示模块组成,光笔模块利用光敏电阻的光电特性,实现微亮检测功能。光笔反馈信号经放大器LM324比较后,送给单片机处理。32×32点阵显示模块、驱动模块由74HC595外设驱动阵列和8位串行输入/输出移位寄存器ULN2803A组成。光笔通过显示屏微亮扫描寻找坐标值,按键和LED指示灯可实现“点亮、划亮、反显、整屏擦除、笔画擦除、连写多字、对象拖移”等书写显示功能。   2 方案总体构成   本方案中的系统设计包括三大部分:PIC 16F877A单片机主控器、光笔控制器、点阵显示屏。
[单片机]
基于PIC<font color='red'>单片机</font>的LED点阵手写屏设计方案
一文详解80C51单片机的指令集
数据传送类指令 数据传送是单片机最基本的操作。数据传送的一般功能是将源操作数传送到指令所指定的目的操作数,指令执行后,源操作数不变。 数据传送类指令一般不影响标志位。数据传送类指令共29条,可以分为两大类。一是采用MOV操作符,称为一般传送指令,共16条;二是采用非MOV操作符,称为特殊传送指令,共13条。 一般传送指令的 汇编 指令格式为: MOV是传送指令的操作助记符。其功能是将源操作数传送到目的操作数,源操作数内容不变。 该类指令的助记符,操作数,功能,字节数及执行时长(机器周期数),按目的操组数归类如下。 1)内部8位数据传送指令 内部 RAM 区是数据传送最活跃的区域,8位内部数据传送指令共15条,用于 单片机
[单片机]
一文详解80C51<font color='red'>单片机</font>的指令集
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved