在开始C语言的主要内容时,我们先来看看如何用KEIL uVISION2来编译生成用于烧写芯片的HEX文件。HEX文件格式是Intel公司提出的按地址排列的数据信息,数据宽度为字节,所有数据使用16进制数字表示, 常用来保存单片机或其他处理器的目标程序代码。它保存物理程序存储区中的目标代码映象。一般的编程器都支持这种格式。我们先来打开第一课做的第一项目,打开它的所在目录,找到test.Uv2的文件就可以打开先前的项目了。然后右击图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,用以显示它的状态,晶振可以根据自己的情况使用,一般实验板上是用11.0592MHz或12MHz,使用前者的好外是可以产生标准的串口波特率,后者则一个机器周期为1微秒,便于做精确定时。在自己做实验里,注意的是VCC是+5V的,不能高于此值,否则将损坏单片机,太低则不能正常工作。在31脚要接高电平,这样我们才能执行片内的程序,如接低电平则使用片外的程序存储器。下面,我们建一个新的项目名为OneLED来验证最小化系统是否可以工作(所有的例程都可在我的主页下面下载到,网址:http://cdle.yeah.net 或http://www.cdle.net )。程序如下:
#include //预处理命令
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);
}
图3-4 AT89C51最小化系统
这里先讲讲KEIL C编译器所支持的注释语句。一种是以"//"符号开始的语句,符号之后的语句都被视为注释,直到有回车换行。另一种是在""符号之内的为注释。注释不会被C编译器所编译。一个C应用程序中应有一个main主函数,main函数可以调用别的功能函数,但其它功能函数不允许调用main函数。不论main函数放在程序中的那个位置,总是先被执行。用上面学到的知识编译写好的OneLED程序,并把它烧到刚做好的最小化系统中。上电,刚开始时LED是不亮的(因为上电复位后所有的IO口都置1引脚为高电平),然后延时一段时间(for (a=0; a<50000; a++)这句在运行),LED亮,再延时,LED熄灭,然后交替亮、灭。第一个真正的小应用就做完,呵呵,先不要管它是否实用哦。如果没有这样的效果那么您就要认真检查一下电路或编译烧写的步骤了。
关键字:单片机的 HEX文件 最小化系统
引用地址:
单片机的c语言教程 第三课 生成HEX文件和最小化系统
推荐阅读最新更新时间:2024-03-16 14:48
多CPU单片机系统设计在社区安防系统中的应用
摘要:本文较为详细地介绍基于多CPU的单片机系统设计思想,并给出它在社区安全防范系统中的应用。
关键词:多CPU 安全防范 系统设计
概述
随着人们生活水平的提高和科学技术的发展,安全防范的问题引起了越来越多的关注。人们在承受现代文明所带来的高效率、快节奏压力的同时,都希望能拥有一个安全、舒适的家庭环境。因此,越来越多的安防产品应运而生,尤其是蓬勃发展的现代化社区物业管理,通过监控网络把家庭和社区值班室紧密地联系起来,给人们的生活带来了极大的方便。但是,有些社区监控网络并不能完全履行其职责,存在一定的安全隐患。主要原因是目前大多数的监控节点都是采用1个CPU完成所有的功能,包括扫描各传输器模块状态、信息处理、数据显示、报警、
[应用]
基于MSP430单片机的原油含水率测定仪的设计
原油含水率测定仪出现于20世纪90年代末,它是有温控仪、定时器等开关仪表组成的一种集测量与控制于一体的蒸馏法测定原油含水率的产品,适用于石油、石化等行业中原油含水率的测量。本仪器采用MSP430单片机,是集温度控制、时间控制、蒸馏功率控制和制冷循环水控制等功能为一体的自动化、智能化仪器。 系统设计方案 1温度传感器的选择 一般情况下,在温度测量中所采用的传感器有:热电偶和热电阻两大类。本系统需测控3处的温度,由于热电偶需温度补偿,而热电阻不需要,从硬件成本和软件复杂程度考虑确定采用热电阻PT100。 2 MSP430单片机 MSP430系列单片机为低功耗16位的精简指令构架,在线可编程,将大量的外围模块整合到片
[单片机]
关于51单片机中的RAM、SFR和位地址的问题
51单片机中_有_4EH这个位地址。 51单片机片内RAM的20H~2FH,这十六字节,可以按照“位”来寻址。 这里面共有128个“位地址”,分别为00H~7FH。 位地址4EH,是在“字节地址为29H的字节单元”中的第6位。 后记:做而论道搜集了51单片机中片内RAM的使用规范,整理如下。 MCS-51系列单片机片内RAM共有128字节,地址范围为00H~7FH。 在这128字节中,全部都可以按照字节地址进行操作(读、写或运算),直接或间接寻址方式皆可。 在这128字节中,按照使用特点,可以分成三类:工作寄存器区、位寻址区和通用数据区。 片内RAM的使用分类可见表1。 下面按照它们的功能特点,分别加以介绍。 1.工作寄存器
[单片机]
基于单片机的楼宇定时广播系统设计
1 引 言 楼宇广播系统在学校教学楼的应用非常广泛,需要每天按时播放楼宇管理通知、上下课铃声、眼保健操背景音乐等定时广播信息。因此要求此广播系统稳定可靠、音质清晰、操作方便。市场上已有的此类系统大多是由计算机控制的一套设备,投资大,电能等资源消耗大,如果作为控制中心的计算机遭受病毒攻击,系统容易崩溃,稳定性差,需要经常维护。因此结合教学楼现有设备条件设计出稳定性好,操控灵活,由集成电路构成的一套定时广播系统是十分必要的。 2 定时广播系统组成 较新的教学楼其电气化程度都比较高,一般配有水警、火警检测及其报警系统,报警终端是分布于各楼层的扩音设备。如有警情发生,控制中心将报警音频信号通过功率放大器送到各楼层的扩音器发
[单片机]
STC12C5A60S2单片机的DS18B20的C程序
最近在搞18B20,发现其对CPU的不兼容性很高,由于其对时间信号的敏感引起的 由于STC单片机的速度比8051速度快,属于1个时钟/机器周期高速单片机。速度快当然是它的优点,但对于要移植传统的8051程序而言,需要修改时序来实现某功能. 以下程序是ds18b20简单的驱动程序,其实是在网上Down的,经本人稍作修改之后,在STC12C5A60S2中调试通过的,最后读温度返回一个unsigned int,低12位就是温度数据。在主程序里进行运算即可得到实际温度值。呵呵~~ void delay_18B20(unsigned int i) { while(i--); } void Init_DS18B20(vo
[单片机]
单片机有中断机制的理由
1、当你子程序在运行时,还想定时,你如何做? 2、当你子程序在运行时,突然停电,需要程序尽快的保存一些数据,不怎么做? 3、当你子程序在运行时,串口数据突然到达,你怎么做? ... ... 有很多时候,单片机在执行正常任务时,需要处理突发事件,这时就需要中断机制。 中断中的程序本身就是一般的 子程序 ,当发生中断后,单片机会自动跳到中断中去执行中断程序,完毕后会自动返回到原来程序处。 也可以理解为:在程序开始时先想到整个系统要有多少个间谍份子,他们分别监视什么东西。一旦他们监察的目标出现,就优先被他们转到相应的子程序去工作了。
[单片机]
ARM微控制器LPC210X的LCD接口技术
引言 Philips最近推出了其第一款基于ARM内核的控制器LPC210X,但由于LPC210X外部总线不开放,无法扩展内存、驱动液晶显示器等,给它的推广带来了一定的影响。笔者最近在一工控板项目中采用了该系列芯片,项目后斯应客户要求需对几个参量进行显示并扩展键盘,不得已之下,采用了CPLD,并利用了GPIO口模拟总线和液晶时序与点阵图形液日模块HS12864-16建立了连接。下面详细探讨包括该种连接的三种接口方式。 1 LPC210X的GPI0口和HS12864-16A介绍 LPC210X控制器包含LPC2104、LPC2105、LPC2106,除了片内静态RAM不同外,其他完全相同。该系列器件具有32个GPIO口(P0.0
[单片机]
基于AVR单片机和串口的SD卡读取平台的设计
O 引言 SD卡(secure digital memory card,安全数码卡)是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(PDA)和多媒体播放器等。SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制。大小犹如一张邮票的SD记忆卡,重量只有2 g,但却拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性。 本文正是通过AVR单片机经过软硬结合的设计方案,来读取SD卡上FAT32文件系统中的数据,FAT32是微软公司开发的新一代的文件系统,支持更大的存储容量和长达255个字符的文件名,也可以通过串口转USB接口芯片通过计算机来访
[单片机]