飞思卡尔杯.doc_第1页
飞思卡尔杯.doc_第2页
飞思卡尔杯.doc_第3页
飞思卡尔杯.doc_第4页
飞思卡尔杯.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

“飞思卡尔杯”智能车大赛起源于韩国,是韩国汉阳大学汽车控制实验室在飞思卡尔半导体公司资助下举办的以HCSl2单片机为核心的大学生课外科技竞赛。组委会提供一个标准的汽车模型、直流电机和可充电式电池,参赛队伍要制作一个能够自主识别路径的智能车,在专门设计的跑道上自动识别道路行驶,谁最快跑完全程而没有冲出跑道并且技术报告评分较高,谁就是获胜者。其设计内容涵盖了控制、模式识别、传感技术、汽车电子、电气、计算机、机械、能源等多个学科的知识,对学生的知识融合和实践动手能力的培养,具有良好的推动作用。 全国大学生“飞思卡尔”杯智能汽车竞赛是在规定的模型汽车平台上,使用飞思卡尔半导体公司的8位、16位微控制器作为核心控制模块,通过增加道路传感器、电机驱动电路以及编写相应软件,制作一个能够自主识别道路的模型汽车,按照规定路线行进,以完成时间最短者为优胜。因而该竞赛是涵盖了控制、模式识别、传感技术、电子、电气、计算机、机械等多个学科的比赛。 该竞赛以飞思卡尔半导体公司为协办方,自2006年首届举办以来,成功举办了六届,得到了教育部吴启迪副部长、张尧学司长及理工处领导、飞思卡尔公司领导与各高校师生的高度评价,已发展成全国30个省市自治区200余所高校广泛参与的全国大学生智能汽车竞赛。2008年第三届被教育部批准列入国家教学质量与教学改革工程资助项目中9个科技人文竞赛之一(教高函200730号文,附件2),2009年第四届被邀申请列入国家教学质量与教学改革工程资助项目。 编辑本段比赛规则:参赛选手须使用竞赛秘书处统一指定并负责采购竞赛车模,采用飞思卡尔16位微控制器MC9S12XS128作为核心控制单元,自主构思控制方案及系统设计,包括传感器信号采集处理、控制算法及执行、动力电机驱动、转向舵机控制等,完成智能车工程制作及调试,于指定日期与地点参加各分赛区的场地比赛,在获得决赛资格后,参加全国决赛区的场地比赛。参赛队伍之名次(成绩)由赛车现场成功完成赛道比赛时间为主,技术方案及制作工程质量评分为辅来决定。竞赛秘书处制定如下比赛规则适用于各分赛区预赛以及最终决赛。在实际可操作性基础上力求公正与公平参与。秘书处将邀请独立公证人监督现场赛事及评判过程。 一、器材限制规定1. 须采用统一指定的车模,细节及改动限制见附件一。 2. 须采用限定的飞思卡尔16位微控制器MC9S12XS128作为唯一控制处理器,有关细节及其它电子器 件使用之限制见附件二。 3. 其他事项 如果损毁了车模中禁止改动的部件,需要使用相同型号的部件替换。 车模改装完毕后,尺寸不能超过250mm 宽和400mm长,高度无限制。 二、有关赛场的规定1. 赛道基本参数(不包括拐弯点数、位置以及整体布局)见附件三。 2. 比赛赛道实际布局将在比赛当日揭示,在赛场内将安排与实际赛道具有相同材料的测试赛道供参赛队进行调试。 三、裁判及技术评判竞赛全国决赛阶段,由组委会全体主任、副主任(或其授权代表)组成组委会执委会负责审查及批准比赛优胜名单,受理参赛队对裁判决定提出之异议或抗辩,并作出最终裁决。组委会下设独立的技术评判组及现场裁判组,分别负责技术评分及现场车赛裁判,成绩确认等事项;两个组共同商议决定赛道布局。所有竞赛组织委员会工作人员,包括技术评判组及现场裁判组人员均不得参与除提供S12培训以外的任何对个别参赛队的指导或辅导工作。 在分赛区预赛阶段中,裁判以及技术评判由各分赛区组委会参照上述决赛阶段组织实施。 四、分赛区、决赛区比赛规则在分赛区、决赛区进行现场比赛规则相同,都分为初赛与决赛两个阶段。 在计算比赛成绩时,分赛区只是通过比赛单圈最短时间进行评比。决赛区比赛时,还需结合技术报告分数综合评定。 1初赛与决赛规则 1)初赛规则 比赛场中有两个相同的赛道。 参赛队通过抽签平均分为两组,并以抽签形式决定组内比赛次序。 比赛分为两轮,两组同时在两个赛道上进行比赛,一轮比赛完毕后,两组交换场地,再进行第二轮比赛。 在每轮比赛中,每辆赛车在赛道上连续跑两圈,以计时起始线为计时点,以用时短的一圈计单轮成绩;每辆赛车以在两个单轮成绩中的较好成绩为赛车成绩;计时由电子计时器完成并实时在屏幕显示。 从两组比赛队中,选取成绩最好的25支队晋级决赛。 技术评判组将对全部晋级的赛车进行现场技术检查,如有违反器材限制规定的(指本规则之第一条)当时取消决赛资格,由后备首名晋级代替; 由裁判组申报组委会执委会批准公布决赛名单。 初赛结束后,车模放置在规定区域,由组委会暂时保管。 2)决赛规则 参加决赛队伍按照预赛成绩进行排序,比赛顺序从第25名开始至第1名结束。 比赛场地使用一个赛道,决赛赛道与预赛赛道形状不同,占地面积会增大。 每支决赛队伍只有一次比赛机会,在跑道上跑两圈,以计时起始线为计时点,以最快单圈时间计算最终成绩;计时由电子计时器完成并实时在屏幕显示。 预赛成绩不记入决赛成绩,只决定决赛比赛顺序。 比赛过程规则 按照比赛顺序,裁判员指挥参赛队伍顺序进入场地比赛。同一时刻,一个场地上只有一支队伍进行比赛。 在裁判员点名后,每队指定一名队员持赛车进入比赛场地,将赛车放置在赛道出发区。裁判员宣布比赛开始后,赛车应在30秒之内离开出发区,沿着环形赛道黑色引导线连续跑两圈,由计时起始线两边传感器进行自动计时。跑完后,选手拿起赛车离开场地。 如果比赛完成,由计算机评分系统自动给出单圈最好成绩。 3比赛犯规与失败规则 比赛过程中,如果赛车碰到赛道两边的立柱并使之倾倒或移动,裁判员将判为赛车冲出跑道。赛车前两次冲出跑道时,由裁判员取出赛车交给比赛队员,立即在起跑区重新开始比赛,该圈成绩取消。选手也可以在赛车冲出跑道后放弃比赛。 比赛过程中如果出现有如下一种情况,判为比赛失败: 裁判点名后,1分钟30秒之内,参赛队没有能够进入比赛场地并做好比赛准备; 比赛开始后,赛车在30秒之内没有离开出发区; 赛车在离开出发区之后2分钟之内没有跑完两圈; 赛车冲出跑道的次数超过两次; 比赛开始后未经裁判允许,选手接触赛车; 决赛前,赛车没有通过技术检验。 如果比赛失败,则不计成绩。 比赛成绩规则 在各分赛区进行预赛时,比赛成绩由赛车单圈最快时间决定。 在决赛区进行比赛时,比赛成绩由赛车单圈最快时间以及队伍技术报告成绩综合决定。 技术报告评分办法: 1) 组委会收到参加决赛队技术报告后将匿去参赛学校名字、参赛队员名字等所有可识别参赛队伍的信息交技术评判组。 2) 技术评判组就控制方案创新、S12芯片资源合理充分利用、机械结构设计方案等对技术报告进行评审,并在决赛前公布得分。报告评分范围0-10,具体的评定标准将在2007年6月30日之前给出。 决赛区比赛最终成绩计算由下面公式给出: 比赛最终成绩(秒) = Ts * (1-0.01R) 式中Ts为赛车最快单圈时间(秒);R为技术报告评分(分值范围0-10)。例:如果赛车在比赛中Ts=35秒, R=5,则最终成绩为 35*(1-0.01*5) = 33.25秒 鉴于决赛开始前各队之技术报告评分(R)巳经公布并输入到计分系统,每队赛车完成赛道后系统将即时显示出其最快单圈时间,系统将即刻显示出以上述公式计算出的比赛最终成绩及到此刻为止时之临时排名。全部决赛队完成赛道比赛后系统即会显示排名次序与成绩,但须再经裁判组复核后申报组委会执委会批准公布。 比赛禁止事项 不允许在赛道周围安装辅助照明设备及其它辅助传感器等; 选手进入赛场后,除了可以更换电池之外,不允许进行任何硬件和软件的修改; 比赛场地内,除了裁判与1名队员之外,不允许任何其他人员进入场地; 不允许其它影响赛车运动的行为。 五. 其他1比赛过程中有作弊行为的,取消比赛成绩; 2本规则解释权归竞赛秘书处和比赛组织委员会所有。 第二届“飞思卡尔”杯全国大学生智能汽车竞赛秘书处 2006,12,1 附件一:智能竞赛车模的规定 禁止改动车底盘结构、轮距、轮径及轮胎; 禁止改动驱动电机的型号及传动比; 禁止改造滚珠轴承; 禁止改动舵机,但可以更改舵机输出轴上连接件; 禁止改动驱动电机以及电池,车模主要前进动力来源于车模本身直流电机及电池; 为了车模的行驶可以安装电路、传感器等,允许在底盘上打孔或安装辅助支架等。 附件二:电路器件及控制驱动电路限制 核心控制模块可以采用组委会提供的HCS12模块,也可以采用MC9SDG128自制控制电路板,除了DG128MCU之外不得使用辅助处理器以及其它可编程器件; 伺服电机数量不超过 3个; 传感器数量不超过16个(红外传感器的每对发射与接受单元计为1个传感器,CCD传感器记为1个传感器); 直流电源使用大赛提供的电池; 禁止使用DC-DC升压电路为驱动电机以及舵机提供动力; 全部电容容量和不得超过2000微法;电容最高充电电压不得超过25伏。 可以选择参数: 开发软件可以选择CodeWarrior 3.1,也可以另行选择; 开发调试硬件可以选择秘书处统一提供的 BDM工具,也可以另行选择; 电路所使用元器件(传感器、各种信号调理芯片、接口芯片、功率器件等)种类与数量都可以自行设计选择。 附件三:赛道基本参数(不包括拐弯点数目、位置以及整体布局) 赛道路面用专用白色基板制作,在分赛区以及决赛区进行初赛阶段时,跑道所占面积不大于5000mm* 7000mm,跑道宽度不小于600mm;决赛阶段时跑道面积可以增大。赛道路面制作材料型号会在网站给出。 跑道表面为白色,中心有连续黑线作为引导线,黑线宽25mm; 跑道最小曲率半径不小于500mm; 跑道可以交叉,交叉角为90; 赛道直线部分可以有坡度在15度之内的坡面道路,包括上坡与下坡道路。 赛道有一个长为1000mm的出发区,如下图所示,计时起始点两边分别有一个长度100mm黑色计时起始线,赛车前端通过起始线作为比赛计时开始或者与结束时刻。单片机介绍单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。 早期的单片机都是8位或4位的。其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了MCS51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。 单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。 单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可.用它来做一些控制电器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机、排烟罩、VCD等等的家电里面都可以看到它的身影!.它主要是作为控制部分的核心部件。 它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。 单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性! 由于单片机对成本是敏感的,所以目前占统治地位的软件还是最低级汇编语言,它是除了二进制机器码以上最低级的语言了,既然这么低级为什么还要用呢?很多高级的语言已经达到了可视化编程的水平为什么不用呢?原因很简单,就是单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十K的尺寸!对于家用PC的硬盘来讲没什么,可是对于单片机来讲是不能接受的。 单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。一样的道理,如果把巨型计算机上的操作系统和应用软件拿到家用PC上来运行,家用PC的也是承受不了的。 可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词“智能型”,如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。 编辑本段单片机的工作过程单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行的指令的过程,所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来,这是在设计人员赋予它的指令系统所决定的,一条指令对应着一种基本操作;单片机所能执行的全部指令,就是该单片机的指令系统,不同种类的单片机,其指令系统亦不同。为使单片机能自动完成某一特定任务,必须把要解决的问题编成一系列指令(这些指令必须是选定单片机能识别和执行的指令),这一系列指令的集合就成为程序,程序需要预先存放在具有存储功能的部件存储器中。存储器由许多存储单元(最小的存储单位)组成,就像大楼房有许多房间组成一样,指令就存放在这些单元里,单元里的指令取出并执行就像大楼房的每个房间的被分配到了唯一一个房间号一样,每一个存储单元也必须被分配到唯一的地址号,该地址号称为存储单元的地址,这样只要知道了存储单元的地址,就可以找到这个存储单元,其中存储的指令就可以被取出,然后再被执行。 程序通常是顺序执行的,所以程序中的指令也是一条条顺序存放的,单片机在执行程序时要能把这些指令一条条取出并加以执行,必须有一个部件能追踪指令所在的地址,这一部件就是程序计数器PC(包含在CPU中),在开始执行程序时,给PC赋以程序中第一条指令所在的地址,然后取得每一条要执行的命令,PC在中的内容就会自动增加,增加量由本条指令长度决定,可能是1、2或3,以指向下一条指令的起始地址,保证指令顺序执行。 单片机的基本结构单片机由运算器、控制器、存储器、输入输出设备构成。 起初模型1.SCM即单片微型计算机(Single Chip Microcomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。在开创嵌入式系统独立发展道路上,Intel公司功不可没。 Micro Controller Unit2.MCU即微控制器(Micro Controller Unit)阶段,主要的技术发展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。从这一角度来看,Intel逐渐淡出MCU的发展也有其客观因素。在发展MCU方面,最著名的厂家当数Philips公司。 Philips公司以其在嵌入式应用方面的巨大优势,将MCS-51从单片微型计算机迅速发展到微控制器。因此,当我们回顾嵌入式系统发展道路时,不要忘记Intel和Philips的历史功绩。 嵌入式系统单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SoC化趋势。随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计会有较大的发展。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。 编辑本段单片机的硬件特性1、单片机集成度高。单片机包括CPU、4KB容量的ROM(8031 无)、128 B容量的RAM、 2个16位定时/计数器、4个8位并行口、全双工串口行口。 2、系统结构简单,使用方便,实现模块化; 3、单片机可靠性高,可工作到106 107小时无故障; 4、处理功能强,速度快。 编辑本段单片机的应用单片机的应用 目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。 单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴: 1.在智能仪器仪表上的应用 单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)。 2.在工业控制中的应用 用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。 3.在家用电器中的应用 可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭煲、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。 4.在计算机网络和通信领域中的应用 现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。 5.单片机在医用设备领域中的应用 单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。 6.在各种大型电器中的模块化应用 某些专用单片机设计用于实现特定功能,从而在各种电路中进行模块化应用,而不要求使用人员了解其内部结构。如音乐集成单片机,看似简单的功能,微缩在纯电子芯片中(有别于磁带机的原理),就需要复杂的类似于计算机的原理。如:音乐信号以数字的形式存于存储器中(类似于ROM),由微控制器读出,转化为模拟音乐电信号(类似于声卡)。 在大型电路中,这种模块化应用极大地缩小了体积,简化了电路,降低了损坏、错误率,也方便于更换。 7.单片机在汽车设备领域中的应用 单片机在汽车电子中的应用非常广泛,例如汽车中的发动机控制器,基于CAN总线的汽车发动机智能电子控制器,GPS导航系统,abs防抱死系统,制动系统等等。 此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。 编辑本段学习应用六大重要部分单片机学习应用的六大重要部分 一、总线:我们知道,一个电路总是由元器件通过电线连接而成的,在模拟电路中,连线并不成为一个问题,因为各器件间一般是串行关系,各器件之间的连线并不很多,但计算机电路却不一样,它是以微处理器为核心,各器件都要与微处理器相连,各器件之间的工作必须相互协调,所以需要的连线就很多了,如果仍如同模拟电路一样,在各微处理器和各器件间单独连线,则线的数量将多得惊人,所以在微处理机中引入了总线的概念,各个器件共同享用连线,所有器件的8根数据线全部接到8根公用的线上,即相当于各个器件并联起来,但仅这样还不行,如果有两个器件同时送出数据,一个为0,一个为1,那么,接收方接收到的究竟是什么呢?这种情况是不允许的,所以要通过控制线进行控制,使器件分时工作,任何时候只能有一个器件发送数据(可以有多个器件同时接收)。器件的数据线也就被称为数据总线,器件所有的控制线被称为控制总线。在单片机内部或者外部存储器及其它器件中有存储单元,这些存储单元要被分配地址,才能使用,分配地址当然也是以电信号的形式给出的,由于存储单元比较多,所以,用于地址分配的线也较多,这些线被称为地址总线。 二、数据、地址、指令:之所以将这三者放在一起,是因为这三者的本质都是一样的数字,或者说都是一串0和1组成的序列。换言之,地址、指令也都是数据。指令:由单片机芯片的设计者规定的一种数字,它与我们常用的指令助记符有着严格的一一对应关系,不可以由单片机的开发者更改。地址:是寻找单片机内部、外部的存储单元、输入输出口的依据,内部单元的地址值已由芯片设计者规定好,不可更改,外部的单元可以由单片机开发者自行决定,但有一些地址单元是一定要有的(详见程序的执行过程)。数据:这是由微处理机处理的对象,在各种不同的应用电路中各不相同,一般而言,被处理的数据可能有这么几种情况: 1.地址(如MOV DPTR,1000H),即地址1000H送入DPTR。 2.方式字或控制字(如MOV TMOD,#3),3即是控制字。 3.常数(如MOV TH0,#10H)10H即定时常数。 4.实际输出值(如P1口接彩灯,要灯全亮,则执行指令:MOV P1,#0FFH,要灯全暗,则执行指令:MOV P1,#00H)这里0FFH和00H都是实际输出值。又如用于LED的字形码,也是实际输出的值。 理解了地址、指令的本质,就不难理解程序运行过程中为什么会跑飞,会把数据当成指令来执行了。 三、P0口、P2口和P3的第二功能用法:初学时往往对P0口、P2口和P3口的第二功能用法迷惑不解,认为第二功能和原功能之间要有一个切换的过程,或者说要有一条指令,事实上,各端口的第二功能完全是自动的,不需要用指令来转换。如P3.6、P3.7分别是WR、RD信号,当微处理机外接RAM或有外部I/O口时,它们被用作第二功能,不能作为通用I/O口使用,只要一微处理机一执行到MOVX指令,就会有相应的信号从P3.6或P3.7送出,不需要事先用指令说明。事实上不能作为通用I/O口使用也并不是不能而是(使用者)不会将其作为通用I/O口使用。你完全可以在指令中按排一条SETB P3.7的指令,并且当单片机执行到这条指令时,也会使P3.7变为高电平,但使用者不会这么去做,因为这通常会导致系统的崩溃。 四、程序的执行过程:单片机在通电复位后8051内的程序计数器(PC)中的值为0000,所以程序总是从0000单元开始执行,也就是说:在系统的ROM中一定要存在0000这个单元,并且在0000单元中存放的一定是一条指令。 五、堆栈:堆栈是一个区域,是用来存放数据的,这个区域本身没有任何特殊之处,就是内部RAM的一部份,特殊的是它存放和取用数据的方式,即所谓的先进后出,后进先出,并且堆栈有特殊的数据传输指令,即PUSH和POP,有一个特殊的专为其服务的单元,即堆栈指针SP,每当执一次PUSH指令时,SP就(在原来值的基础上)自动减2,每当执行一次POP指令,SP就(在原来值的基础上)自动加2。由于SP中的值可以用指令加以改变,所以只要在程序开始阶段更改了SP的值,就可以把堆栈设置在规定的内存单元中,如在程序开始时,用一条MOV SP,#5FH指令,就是把堆栈设置在从内存单元60H开始的单元中。一般程序的开头总有这么一条设置堆栈指针的指令,因为开机时,SP的初始值为07H,这样就使堆栈从08H单元开始往后,而08H到1FH这个区域正是8031的第二、三、四工作寄存器区,经常要被使用,这会造成数据的混乱。不同作者编写程序时,初始化堆栈指令也不完全相同,这是作者的习惯问题。当设置好堆栈区后,并不意味着该区域成为一种专用内存,它还是可以象普通内存区域一样使用,只是一般情况下编程者不会把它当成普通内存用了。结构1一个C语言源程序可以由一个或多个源文件组成。 2每个源文件可由一个或多个函数组成。 3一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。 4源程序中可以有预处理命令(include 命令仅为其中的一种),预处理命令通常应放在源文件或源程序的最前面。 5每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“”之后不能加分号。 6标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。 编辑本段特点1 C是高级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。 2C是结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。 3C语言功能齐全。具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。 4 C语言适用范围大。适合于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。 C语言对编写需要硬件进行操作的场合,明显优于其它高级语言,有一些大型应用软件也是用C语言编写的。 编辑本段特色指针是C语言的一大特色,可以说是C语言优于其它高级语言的一个重要原因。就是因为它有指针,可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C+在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。Java则吸取了C+的教训,取消了指针操作,也取消了C+改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C+/C。一般而言,C,C+,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。 编辑本段入门对于一个初学者,Microsoft Visual C+是一个比较好的软件。界面友好,功能强大,调试也很方便。这是微软出的一个C语言集成开发环境(IDE),主要有:VC+6.0、VS2005VS2008VS2010等,分为企业版和学生版等。对于初学者VC+6.0是比较容易上手的,但其对标准支持的不好可能使人养成不良的编程习惯。 在unix/linux操作系统上,学习c语言一般使用vim/emacs来编辑源文件,使用gcc来编译源文件,使用make程序来管理编译过程。 编辑本段优点简洁紧凑、灵活方便 C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。 运算符丰富 C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。 数据类型丰富 C语言的数据类型有:整型、实

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论