单片机开发十篇

时间:2023-04-08 23:21:53

单片机开发

单片机开发篇1

单片机开发板是集成单片机工作电路、程序下载接口、通信模块、扩展功能模块等的实验板,通常都有很多实验功能,能做很多实验,可以更好的学习单片机。

单片机技术自发展以来已走过了近20年的发展路程 。小到遥控电子玩具,大到航空航天技术等电子行业都有单片机应用的影子。针对单片机技术在电子行业自动化方面的重要应用,为满足广大学生、爱好者、产品开发者迅速学会掌握单片机这门技术,于是产生单片机开发板也称单片机学习板、单片机实验板。

(来源:文章屋网 )

单片机开发篇2

【关键词】单片机开发技巧;系统测试;减少bug数目;提高运行效率;优化运行性能

1、概述

随着微电子通信技术不断提高以及超大规模集成电路制作工艺的不断完善,单片机作为微处理器已经渗透到社会中军用民用等各个领域中,推动着社会现代化不断向前发展。由于单片机的集成度高,体积小,可靠性良好,控制功能强,功耗低,在导弹导航、各种交通工具的仪表控制,以及互联网络设备中的数据通讯与传输、门禁卡智能卡识别等方面无处不在,因此对于单片机的学习、开发和应用对于通信工程和自动化工程专业的学生和专业人士是必不可少的,然而在单片机开发与应用过程中,有很多技巧性的东西,需要我们在对于单片机的学习、开发和应用过程中去掌握和了解,从而缩短学习周期,加快对单片机深入理解的步伐,能够为以后在单片机的开发和应用培养良好的习惯,减少失误和错误发生的概率,最大优化单片机的开发和应用的过程。

2、单片机的应用中的注意事项

单片机已经在各个领域中被广泛应用,但是在产品中选择和使用单片机的时候需要注意一些事项,来提高单片机在应用中的可靠性和稳定性。在选择单片机初期,满足使用要求和经济预算的情况下,尽量选择使用寿命长的单片机型号,避免由于单片机的老化而引起产品或项目工程质量的下降,同时尽量选择运算速度快、抗干扰能力强以及功耗低的单片机,使其能够充分满足产品和项目工程的需要。当一个单片机系统设计完成后,要对整个产品或者系统进行系统测试,其中包括对单片机软件的单元测试、系统测试以及性能测试,还有对整个系统的上电、掉电测试,ESD和EFT测试以及使用寿命测试,从而对单片机整个系统或产品进行可靠性的了解,避免由于单片机选择不合适而使产品质量低下。

3、单片机的开发的基本技巧

单片机在开发的过程中,主要使用C语言作为开发语言来驱动单片机工作,所以对于单片机的开发的基本技巧,主要涉及到C语言代码优化,包括减少C代码中的bug数目、程序代码使用率以及代码性能优化的问题。只有在开发过程中尽量避免这些问题,开发的程序才能在单片机内良好地运行。

3.1、减少C语言代码的bug数目

人们在做任何事情的时候都会犯错误,单片机C语言开发也不例外。如果由于人为的失误或者错误将缺陷带入到代码中,那么单片机在运行过程中就有可能出现错误,所以在C语言代码编写过程中要尽量在人们经常出错的地方谨慎处理,尽量避免引入缺陷到单片机运行程序中去。常见的缺陷类型有参数类型和范围问题,一般对单片机系统整体的物理参数、资源参数、应用参数以及过程参数的类型和取值范围设定的问题上出现错误,开发人员由于忽略了各个参数在不同参数类型的计算以及赋值或者函数返回的过程中参数类型的转变以及取值范围或取值精度的变化而想当然依旧没有改变对参数的处理使得程序在运行过程中出现了缺陷问题;另一种常见的bug问题出在各中运算符的优先级计算或者比较的部分,开发人员忽略运算符的优先级选用而使程序存在缺陷;还有常见的bug问题涉及到一维或者多维数组角标的确定或者指针自动变化的问题,此类问题常用循环模块来计算,由于多层级计算可能会误导开发人员而为程序引入缺陷。

3.2、提高运行效率,优化运行性能

对于单片机开发来说,实现同样功能的两个程序片段运行时间和运行可靠性是非常重要的,所以在单片机开发过程中,在实现基本功能的前提下,尽量减少运行代码的行数,保证运行质量,使得单片机高效快速响应和稳定有效地长期运行。对于提高单片机的运行效率,必须从单片机CPU型号入手,详细了解CPU内部的加法器、除法器、各种存储单元、总线的分布以及中断程序入口等,从而深入了解单片机的物理结构以及各个模块的工作机理,在单片机开发的过程中要根据各个模块的工作机理来开发程序代码,同时,对于代码之间的逻辑关系也要有深入考究,尽量减少单片机遍历同样代码的次数,提高运行效率。对于单片机程序代码运行性能的优化,主要是去除运行干扰源、精简资源开销以及提高程序容错率。当有错误发生时,使用软件陷阱和看门狗机制将单片机拉回复位状态,从而避免由于程序出错而导致事故发生,提高程序容错率是开发人员的一项基本素质,需要在开发过程中去锻炼和培养,在反复训练和提高中去熟悉单片机的习性,从而避免常见的错误而导致单片机运行失败。

4、总结

单片机的开发和应用技巧,需要在真正的实施过程中去总结、去体会,当然,还有很多的应用和开发的技巧需要我们不断努力,在以后的工作、学习和应用中去寻找和总结,使得单片机的学习、开发和应用过程更简单、更有效,为单片机的开发和应用铺平前进的道路。

参考文献:

[1]韩丽娟,邓玉凤.单片机的开发技巧及其应用研究[J].科技信息,2009(34)

[2]刁世伦,潘文良.一种高效的键盘扫描分析算法[J].科技信息,2010(09)

[3]蔡亚洲.单片机的应用与开发技巧[J].科技风,2009(19)

单片机开发篇3

关键词:单片机 应用系统 设计

一、单片机应用系统设计过程

1、单片机应用系统组成

硬件和软件构成了单片机应用系统两大基本组成部分。CPU、存储区、若干I/O接口及设备等组成了硬件部分。其中,单片机是整个系统的核心部件,能运行程序和处理数据。存储器用于存储单片机程序及数据,I/O接口是单片机与外部被控对象的信息交换通道。

实时软件和开发软件构成了单片机系统的软件。针对不同单片机控制系统功能所编写的软件为实时软件,在开发、调试控制系统时使用的软件称为开发软件,如汇编软件、编译软件、仿真和调试软件、编程下载软件等。

2、单片机应用系统设计要求

对单片机应用系统进行设计的时侯,首先选用可靠性高的元器件,以免系统的可靠运行被损坏,同时要排除电路中的不稳定因素。其次,在设计的过程中系统的结构要模块化、规范化,控制开关不能太复杂,太多,要便于查找故障和排除故障。最后,要优化系统设计,简化硬件电路,使系统的操作顺序简单明了,必要的时候考虑软件是否要设置加密功能,使固化到单片机内的用户程序不被非法复制。

3、单片机应用系统设计

单片机应用系统开发的一般可分为五个阶段,第一阶段的任务是确定总体设计方案,需要完成用户需求分析与方案的调研,目的是通过对市场及用的了解明确应用系统的设计目标机技术指标。根据需求分析与方案调研进行可行性分析。第二阶段的主要任务是系统的详细设计与制作,主要包括硬件设计和软件设计。硬件设计的任务是根据总体设计需求,设计系统的硬件电路原理图,并初步设计印制电路板等。第三阶段是仿真调试,分为硬件调试、软件调试和系统联调三个过程。硬件调试是利用开发系统基本测试仪器(万用表、示波器等),通过执行开发系统有关命令或测试程序,检查用户系统硬件中存在的故障。软件调试时通过对用户程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。系统联调是指让用户系统的软件在其硬件上实际运行,并进行软、硬联合调试。第四阶段的任务是程序固化及独立运行。第五阶段的任务是文件编制阶段,文件应包括任务描述;设计的指导思想及设计方案论证;性能测定及现场试用报告与说明。

二、单片机的选型

1、单片机的性能指标

目前的单片机有4位机、8位机、16位机及32位机等几种。单片机的位数是由其内核CPU的位数决定的。位数越多,单片机处理数据的能力就越强。单片机的运行速度取决于外部晶振或外部时钟信号的频率。如89C51的外部时钟频率可达24MHz。单片机运行速度高则执行速度块,但功耗也会相应地增加。单片机的程序存储器结构类型主要有ROM和RAM。在一些自动监测仪表及电池供电的产品中,低功耗是主要的技术指标,通常采用HCMOS工艺的单片机在低电压下工作单片机的封装一般有DIP、QFP、PLCC等类型,应从印制板的尺寸、加工手段、购买途径及成本等方面综合考虑。

2、单片机的选型原则

单片机的选型一般有三个原则,一是单片机的系统适应性,它是指能否用这个单片机完成应用系统的控制任务。主要考虑的因素有:是否有合适的计算处理能力?是否有所需的端口部件?是否有所需的中断源及定时器?是否有所需的I/O端口数?二是单片机的可开发性,开发工具的使用时单片机应用系统开发的必须手段,是选择单片机的一个重要依据。主要考虑的因素有:开发环境、调试工具、在线BBS服务及应用支持。三是制造商历史及可购买性,要考虑产品的性价比是否可靠?所以,依据这三个原则,应该可以选择出最适用于具体应用系统的单片机。

三、单片机的抗干扰技术

1、干扰的来源

用信号外的噪声或造成恶劣影响的变化部分的总称为干扰。在进行单片机应用产品的开发过程中,我们经常碰到一个很棘手的问题,即在实验室环境下系统运行的正常,但小批量生产并安装在工作现场后,却出现一些不太规律、不太正常的现象。究其原因主要是系统的抗干扰设计不全面,导致应用系统的工作不可靠。引起单片机控制系统干扰的主要原因有三类,分别是供电系统的干扰、过程通道的干扰和空间电磁波的干扰。电源开关的通断、电机和大的用电设备的启停都会使供电电网发生波动,受这些因素的影响,电网上常常出现几百伏甚至几千伏的尖峰脉冲干扰。

2、硬件抗干扰技术

常用的硬件抗干扰技术主要有隔离技术、接地技术、去耦技术、滤波技术及屏蔽技术。在单片机系统中,为了提高供电系统的质量,防止窜入干扰,建议采用单片机输入电源与强电设备动力电源分开,采用具有静电屏蔽和抗电磁干扰的隔离电源变压器,采用独立功能块单独供电,并用集成稳压块实现两级稳压。尽量提高接口器件的电源电压,提高接口的抗干扰能力。过程通道时系统输入、输出以及单片机之间进行信息传输的路径。由于输入输出对象与单片机之间连接线长,容易窜入干扰,必须抑制。

3、软件抗干扰技术

单片机应用系统的抗干扰性不可能完全依靠硬件解决,软件抗干扰设计也是防止和消除应用系统故障的重要途径。一旦单片机因干扰而使得程序计数器PC偏离了原定的值,程序便脱离正常运行轨道,出现操作数数值改变或将操作数当作操作码的“跑飞”现象。此时,可采用软件陷阱和“看门狗”技术使程序恢复到正常状态。所谓软件陷阱,是指可以使混乱的程序恢复正常运行或使“跑飞”的程序恢复到初始状态的一系列指令。如NOP指令、LJMP指令等。程序运行监视系统又称“看门狗”。“看门狗”就是一个剑士跟踪定时器,应用“看门狗”技术可以使单片机从死循环中恢复到正常状态。

参考文献:

单片机开发篇4

论文摘要:目前单片机渗透到我们生活的各个领域,本文介绍了单片机的应用并且根据自己的一些经验谈了单片机应用过程中应该掌握的几个技巧。 

 

目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,广泛使用的各种智能ic卡等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。 

 

一、单片机的特点应用 

 

单片机的特点主要有 :高集成度,体积小,高可靠性 ;控制功能强;低电压,低功耗,便于生产便携式产品 ;易扩展;优异的性能价格比。目前,单片机的应用领域 主要包括:办公自动化设备;单片机在机电一体化中的应用;在实时过程控制中的应用;单片机在日常生活及家用电器领域的应用;在各类仪器仪表中引入单片机,使仪器仪表智能化,提高测试的自动化程度和精度,简化仪器仪表的硬件结构,提高其性能价格比;在计算机网络和通信领域中的应用;商业营销设备;单片机在医用设备领域中的应用;汽车电子产品;航空航天系统和国防军事、尖端武器等领域,单片机的应用更是不言而喻。 

 

二、单片机开发中的几个基本技巧 

 

在单片机应用开发中,代码的使用效率问题、单片机抗干扰性和可靠性等问题仍困扰着。现归纳出单片机开发中应掌握的几个基本技巧。 

1、如何减少程序中的bug。对于如何减少程序的bug,应该先考虑系统运行中应考虑的超范围管理参数如下。物理参数:这些参数主要是系统的输入参数,它包括激励参数、采集处理中的运行参数和处理结束的结果参数。资源参数:这些参数主要是系统中的电路、器件、功能单元的资源,如记忆体容量、存储单元长度、堆叠深度。应用参数:这些应用参数常表现为一些单片机、功能单元的应用条件。过程参数:指系统运行中的有序变化的参数。 

2、如何提高c语言编程代码的效率。用c语言进行单片机程序设计是单片机开发与应用的必然趋势。如果使用c编程时,要达到最高的效率,最好熟悉所使用的c编译器。先试验一下每条c语言编译以后对应的汇编语言的语句行数,这样就可以很明确的知道效率。在今后编程的时候,使用编译效率最高的语句。各家的c编译器都会有一定的差异,故编译效率也会有所不同,优秀的嵌入式系统c编译器代码长度和执行时间仅比以汇编语言编写的同样功能程度长5-20%。对于复杂而开发时间紧的项目时,可以采用c语言,但前提是要求你对该mcu系统的c语言和c编译器非常熟悉,特别要注意该c编译系统所能支持的数据类型和算法。虽然c语言是最普遍的一种高级语言,但由于不同的mcu厂家其c语言编译系统是有所差别的,特别是在一些特殊功能模块的操作上。所以如果对这些特性不了解,那么调试起来问题就会很多,反而导致执行效率低于汇编语言。 

3、如何解决单片机的抗干扰性问题。防止干扰最有效的方法是去除干扰源、隔断干扰路径,但往往很难做到,所以只能看单片机抗干扰能力够不够强了。在提高硬件系统抗干扰能力的同时,软件抗干扰以其设计灵活、节省硬件资源、可靠性好越来越受到重视。单片机干扰最常见的现象就是复位;至于程序跑飞,其实也可以用软件陷阱和看门狗将程序拉回到复位状态;所以单片机软件抗干扰最重要的是处理好复位状态。一般单片机都会有一些标志寄存器,可以用来判断复位原因;另外你也可以自己在ram中埋一些标志。在每次程序复位时,通过判断这些标志,可以判断出不同的复位原因;还可以根据不同的标志直接跳到相应的程序。这样可以使程序运行有连续性,用户在使用时也不会察觉到程序被重新复位过。 

4、如何测试单片机系统的可靠性。当一个单片机系统设计完成,对于不同的单片机系统产品会有不同的测试项目和方法,但是有一些是必须测试的:测试单片机软件功能的完善性;上电、掉电测试;老化测试;esd和eft等测试。有时候,我们还可以模拟人为使用中,可能发生的破坏情况。例如用人体或者衣服织物故意摩擦单片机系统的接触端口,由此测试抗静电的能力。用大功率电钻靠近单片机系统工作,由此测试抗电磁干扰能力等。 

综上所述,单片机已成为计算机发展和应用的一个重要方面,单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。此外在开发和应用过程中我们更要掌握技巧,提高效率,以便于发挥它更加广阔的用途。 

 

参考文献: 

[1]何立民.mcs-51系列单片机应用系统设计系统配置与接口技术.北京:北京 航空航天大学出版社,1990 

单片机开发篇5

>> 基于AT89S51的低成本单片机实验板的开发与设计 AT89S51单片机实验系统的开发与应用 基于89C51单片机的编码译码显示实验电路设计 新型51单片机实验箱的设计 基于AT89C51单片机的流水灯的设计与实现 基于单片机89C51的报警电路设计与仿真 基于AT89S51单片机的实验室数据采集系统的设计 基于AT89S51单片机的“追足球”机器人的设计与实现 AT89C51单片机基于GAL16V8的I/O接口扩展技术 基于AT89C51单片机的交通灯控制系统设计与仿真 一种基于单片机AT89C51电子密码锁的设计与实现 基于AT89C51单片机的农用大棚多点温度测控系统设计与实现 基于AT89S51单片机的倒车雷达系统的设计 基于AT89S51单片机的瓦斯报警器的设计 基于AT89c51单片机的电子密码锁的设计 基于89C51单片机IC卡读写器的设计 基于AT89C51单片机的液位数据采集系统设计 基于AT89C51单片机的数字秒表设计 基于AT89C51单片机的数字时钟设计 基于AT89S51单片机的综合报警系统设计 常见问题解答 当前所在位置:

关键词:单片机;实验箱;控制

DOI: 10.3969/j.issn.1005-5517.2013.9.019

引言

单片机,是嵌入式处理器的一大类(另外还有DSP、FPGA等),具有高度集成、体积小、功耗低、降低成本等诸多优点。随着单片机技术的不断发展,单片机在微机控制领域占据着重要地位,由于其具有体积小、可靠性好、易扩展、控制功能强、使用方便等优点,在智能仪表、工业测控、计算机网络与通信设备、日常生活及家用电器等方面都得到了广泛的应用[1~2]。单片机已广泛应用于工业控制、智能家用电器、通讯、医疗和军事等众多领域,社会对掌握单片机技术的应用型人才的需求越来越大[3]。

本设计的实验箱采用了数字逻辑,单片机原理,电路基础,动态数码管扫描等各个方面的理论依据。单片机原理是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,单片机依靠程序运行,并且可以修改。单片机通过编写的程序可以实现高智能,高效率,以及高可靠性。

设计概述及目的

首先连接硬件电路。确定电源模块供电正常,最小系统模块,RS-232转UART模块供电。将单片机P1口和LED相连接,作为输出。将单片机P0口和开关相连接。由于I/O口会读入和写出数据。从而通过编程完成开关控制LED指示灯的功能。

数据移位模块系统测试

在计算机系统中为了高效地实现计算机系统之间的远距离通信,且要使通信电路简单、可靠,则采用串行输入、并行输出的方式,移位寄存器的作用就是实现并行输入、串行输出或串行输入、并行输出。这里采用的是串行输入、并行输出。

此电路可以存储串行8位数据的输入。由于加在输入端上的数据可以移位读入,因此称之为移位寄存器。因为在CP的上升沿进行移位,因此也使该CP成为移位脉冲。

实验中将并行输出端和LED连接。通过按键输入串行的逻辑“1”、“0”并在LED上观察并行的输出结果。

振荡分频器和8位二进制计数器实验

振荡分频器,采用了一个三向晶振提供基础时钟振荡。通过4060对时钟信号进行了整理和分频。这里可以通过跳线选择2kHz~2Hz之间的9种频率。然后将振荡信号送入8位二进制计数器。

计数器是计算机系统最常用的时序电路之一,除了可以对时钟脉冲计数外,也可以用于分频、定时及产生各种时序信号。393将串行输入的时钟信号作累加,并将结果以并行八位输出的模式输出。用输出端控制8盏LED灯,可以很好地看出其在不同频率下累加的效果。

总结

本设计是制作一个P89V51RB2实验箱,并对其进行实验和软件程序设计。与传统的实验箱相比,使用方便,读数准确,所包含的实验电路全面且实用。为了满足目前高等学院的需求,还在现有的实验箱的基础上加入其他的功能如汇编语言等。

参考文献:

[1] 朱向庆,胡均万,陈宏华.多功能单片机实验系统的研制[J].实验室研究与探索,2012,(04):41-44

[2] 张智宏,翟晓东.单片机综合实验箱的研制[J].中国现代教育装备,2011,(13):12-13

[3] 曹静,江世明.模块化单片机实验平台的设计[J].邵阳学院学报(自然科学版).2011,(03):23-25

单片机开发篇6

单芯片,已成为未来芯片发展的必然趋势,高集成度、高性能、低功耗、移动便携是单芯片的主要特点。单芯片主要应用于手机,由于将计算处理和通讯功能全部集成在单一的芯片中,且采用更小的封装技术,所以能够充分保证手机的轻薄。而芯片更高的性能展现与功耗的控制就成为了单芯片的核心优势。目前市场单芯片主要被国际芯片大厂高通、联发科等占据。国内企业还尚无进入该领域。对全球市场的深刻理解和准确预测,让新岸线很早就意识并选择计算通讯一体化的发展方向,从自身在计算处理器与通讯处理器的技术研发与经验积累,逐步推行新岸线的单芯片计划。

今年4月份新岸线在InterDigital公司购买了上百项国内外专利。这些专利不仅都是WCDMA或LTE标准的必要专利,而且覆盖了欧、美、中、日、韩等主要国家和地区。这些专利与英特尔购买的专利地位相当,通过此次收购,新岸线已经成为全球为数不多的拥有WCDMA和LTE标准必要专利的企业之一。此次新岸线购买WCDMA和LTE标准的必要专利,不但让新岸线已经具备与国际大公司在专利舞台上同台角逐的能力,更显示了中国企业在专利问题上的决心。新岸线将专利优势结合到其通讯基带芯片产品中,通过商业竞争获得市场的优势地位。同时也是新岸线以通讯计算一体化为根基,为单芯片计划提供更多的先决条件与保证。

5月份,新岸线强势推出包含了其最新WCDMA/GSM基带芯片Telink7619和应用处理器NS115的“泰山”第一代平台,可向平板电脑等移动设备提供基带和应用处理器整体解决方案。“泰山”平台的推出体现了新岸线“计算和通讯一体化”这一技术路线布局。

在10月份的香港秋季电子展上,新岸线推出了一款行业尖端产品——集成新岸线“泰山”平台的业界最薄的7寸全功能3G平板电脑,厚度仅为8.6mm。该平板带有新岸线最新推出的基于Telink7619的3G模块MU600,作为基于新岸线通讯计算一体化平台“泰山”的第一款产品,此款平板电脑将成为新岸线实现通讯计算一体化市场战略的一个重要里程碑式产品。

单片机开发篇7

引言

目前,在市场上应用最广泛的应该属于8位单片机,Microchip Technoloogy公司推出的8位PIC系列单片机,目前在国内市场上深受用户欢迎,已经逐渐成为单片机应用的新潮流;但遗憾的是,目前国内介绍它的C语言开发工具的书籍和文章却比较少,而且用的人也不多,广大的程序员在用其开发的过程中都在慢慢摸索,可能会走一些弯路。笔者最近在用PIC的C语言时就遇到了好些问题,在这里想和最近一段时间用PIC的C语言的一些经验和广大的底层软件程序员做一下交流和介绍希望本文对用PICC开发PIC系列单片机的人有所帮助。

目前,在国内用得比较多的是Hi-Tech的Hi-Tech PICC编译器,而且目前市场上一些国内的PIC单片机仿真器也开始支持Hi-Tech PICC编译格式;因此,本文主要以Hi-Tech的PICC为基础,介绍一下PIC的C语言的基本特点。

1 Hi-Tech PICC的C语言开发工具的语言特点

PICC的C语言按ANSI C来定义,并进行了C语言的扩展。PICC和ANSI C有一个根本的区别就是,PICC不支持函数的递归调用。这是因为PIC单片机的堆栈大小是由硬件决定的,资源有限,所以不支持递归调用。它的数据也遵从标准C的数据结构,PICC的数据结构是以数据类型的形式出现的。PICC编译器支持的数据类型有位类型(bit)、无符号字符(unsigned char)、有符号字符(signed char)、无符号整型(unsigned int)、有符号整形(signed int)、无符号长整型(unsigned long)、有符号长整型(signed long)、浮点(float)和指针类型等。需要注意的是,PICC支持的多字节数据都采用低字节在前,高字节在后的原则。即一个多字节数,比如int型,在内存单元中存储顺序为低位字节存储在地址低的存储单元。高位字节存储在地址高的存储单元中,程序员在用union定义变量时一定要注意这一特点。

PIC的C语言变量分为局部变量和全局变量,所有变量在使用前必须先定义后使用。全局变量是在任何函数之外说明的、可被任意模块使用的、在整个程序执行期间都保持有效的变量。局部变量在函数内部说明。局部变量有两种:自动变量和静态变量。缺省类型为自动变量,除非明确将其声明为静态变量。而且,所有的自动变量都被分配在寄存器页0,所以bank限定词不能用于自动变量,便可以用于静态的局部变量。当程序退出时,自动变量占用的空间释放,自动变量也就失去意义。静态变量是一种局部变量,只在声明它的函数内部有效;但它占用固定的存储单元,而这个存储单元不会被别的函数使用,因此其它函数可以通过指针访问或修改静态变量的值。静态变量在程序开始只初始化一次,因此若只在某函数内部使用一变量,而又希望其值在2次函数调用期间保持不变,为实现程序模块化,则可将其声明为静态变量。例如以下声明中,有些为合法,有些为非法:

void max(void)

unsigned char var1; //合法声明

unsigned char bank1 var2; //非法声明

static unsigned char bank1 ver3; //合法声明

unsigned char var4=0x02; //合法声明,每次调用都初始化

static unsigned char bank1 var5=0x02; //合法声明,但只初始化一次

…………

}

PICC编译器对局部变量及传递参数使用RAM覆盖技术。编译时,连接器会自动把一些不可能被同时调用的函数的自动变量区重叠在一起,以达到内存的高效利用,因此其内部RAM的利用效率非常高。

2 函数调用时参数的传递

PICC函数参数的传递是根据被传参数的长度,用W、被调函数的自动变量区域或被调函数的参数区域传递,传递代码比较高效。传递给函数的参数可以通过一个由问号“?”、下划线“_”及函数名加一个偏移量构成的标号获取。下面为一调用求和子程序的源泉代码:

Unsigned char add_function(unsigned char augend,unsigned char addend);

Void main(void)

{

unsigned char temp1,temp2,temp3;

tem3=add_function(temp1,temp2);

}

unsigned char add_function(unsigned char augend,unsigned char addend)

{

return(augend + addend);

}

编译后生成的汇编程序为:

_main

; _temp2 assigned to?a_main+0

;_temp3 assigned to ?a_main+1

; _temp1 assigned to ?a_main+2

bcf status,5

bcf status,6

movf (((?a_main+0))),w

movwf(((?_add_function)))

movf (((?a_main+2))),w

fcall (_add_function)

movwf(((?a_main+1)))

_add_function

; _augend assigned to ?a_add_function+0

; _augend stored from w

bcf status,5

bcf status,6

movwf(((?a_add_function+0)))

movf (((?a_add_function+0))),w

addwf (((?_add_function+0))),w

return

3 PICC语言和汇编语言的混合编程

一般情况下,主程序都是用C语言编写的。C语言与汇编语言最大的区别在于,汇编程序执行效率较高,因为,C语言首先要用C编译器生成汇编代码,在不少情况下,C编译器生成的汇编代码不如用手工生成的汇编代码效率高。在PICC中,可以用两种方法在C程序中调用汇编程序。一种方法是使用#asm,#endasm及asm()在C语言中直接嵌入汇编代码,#asm和#endasm指令分别用于标示嵌入汇编程序块的开头和结属;asm()用于将单条汇编指令嵌入到编译器生成的代码中,如下所示:

void func1(void){

asm("NOP");

#asm

nop

rlf_var,f

#endasm

asm("rlf_var,f");

}

需要注意的是,嵌入汇编不是完整意义上的汇编,是一种伪汇编指令,使用时必须注意它们与编译器生成代码之间的互相影响。

另一种方法是将汇编作为一个独立的模块,用汇编编译器(ASPIC)生成目标文件,

然后用链接器和C语言生成的其它模块的目标文件链接在一起。如果变量要公用时,则在另一个模块中说明为外部类型,并允许使用形式参数和返回值。例如,如果在C模块中使用汇编模块中的函数,那么在C中可知下声明:

extern char rotate_left(char);

本声明说明了要调用的这个外部函数有一个char型形式参数,并返回一个char型的值。而rotate_left()函数的真正函数体在外部可以被ASPIC编译的汇编模块(文件名后缀.as)中,具体代码可以如下编写:

processor16C84

PSECT text0,class=CODE,local,delta=2

GLOBAL _rotate_left

SIGNAT _rotate_4201

_rotate_left

movwf?a_rotate_left

rlf?a_rotate_left,w

return

FNSIZE _rotate_left,1,0

GLOBAL?a_rotate_left

END

需要注意的是,以C模块中声明的函数名称,在汇编模块中是以下划线开头的。GLOBAL定义了一个全局变量,也等同于C模块中的extern,SIGNAL强制链接器在链接各个目标文件模块时进行类型匹配检查,FNSIZE定义局部变量和形式参数的内存分配。

这种方法比较麻烦,如果对某一模块的执行效率要求较高时,可以采取这种办法;但是,为了保证汇编程序能正常运行,必须严格遵守函数参数传递和返回规则。当然,为避免这些规则带来的麻烦,一般情况下,可以先用C语言大致编写一个类似功能的函数,预先定义好各种变量,采用PICC-S选项对程序进行编译,然后手工优化编译器产生的汇编代码后将其作为独立的模块就可以了。

4 注意事项

使用PICC时,为了更有效地利用资源,应注意以下几点:

①尽量使用无符号数和字节变量。

②在寄存器资源允许的情况下,对某些执行效率要求较高的平级元相互调用函数中用到的内部变量,可将其定义为全局临时变量,编程时覆盖使用,这样可减少很多编译代码。而对于中断函数内部用到的变量,可用全局变量。

③对于有一定汇编经验的人在开始使用PICC时,应多注意观看编译后产生的汇编源代码,并经常观看经正确编译链接后产生的映像文件(.MAP文件)。在该文件中,详细列出了分配给变量和代码的地址和生成代码的大小等信息。使用者可了解代码是否优化,变量分配是否合理,堆栈是否溢出等,从而写出高效简洁的C源代码。

④在很多情况下,PICC不支持类型强制转换。即在类型不匹配时须查验编译后的汇编代码,看是否正确,尤其是对指针操作的时候一定要注意。

⑤对某位变量自操作时,比如求反,不可以直接简写,例如:!flag;编译后不能正确产生代码,而须写成:“flag=!flag;”

⑥尽量选择全局优化编译选项。为保证寄存器页(包括程序存储期页面和RAM寄存器页)的正确转换,PICC的编译代码中有大量的变换寄存器页的代码,选择全局优化PICC会优化去大量有关RP0、RP1、PCLAPH所增加的变换代码,从而加快程序执行速度,并节省大量的程序空间。

⑦若有某一代码很短的函数被多个函数经常调用,最好将其定义为宏。因为若函数代码很短时,由于被调函数和调用函数不在同一代码页所产生的附加代码可能都会超过函数代码本身的长度。

单片机开发篇8

关键词:电子技术;单片机;应用与开发

中图分类号:TP368.12 文献标识码:A文章编号:1007-9599 (2011) 24-0000-01

The Application and Development Technology of MCU in Electronic Technology

Zhang Xiao

(Dongying Vocational College,Dongying257091,China)

Abstract:This paper on the application of electronic technology in MCU technology and the development of related work discussed and analyzed,and the basic components,characteristics and MCU in electronic technology application of a simple set.

Keywords:Electronic technology;MCU;Application and Development

随着我国市场经济的发展,我国电子技术领域中的嵌入式应用也取得了空前的发展,为了能够更好的满足市场中需要,单片机应运而生。单片机在市场中的迅猛发展,不仅使得我国的电子科学技术取得了不斐的成绩,还使得电子科技领域在功能性方面与科技种类方面取得了伟大成绩。

一、电子技术中单片机的构成探析

对于当前市场中高速发展的单片机,其主要指:电子技术中一种集成电路芯片,其不仅在系统采用了超大模式的集成电路模式,还科学的把电路技术的相关数据进行了有效的收集处理,使得电子科技产品具备更强的功能。作为当前市场中使用范围广泛的单片机,其主要系统中包含了:单片机中央处理器CPU、单片机定时器、I/O接口、计时器、随机储存器RAM、中断系统以及只读储存器ROM。科学技术人员在设计单片机的过程中,利用自己的科学知识科学的将这些元件合理的安装在一个大规模的集成电路中,不但提高了单片机自身的运行处理能力,还使得电子科学产品具备了更强的功能性。特别是最近几年单片机在军事导弹、飞机、计算机网络以及其它领域中的广泛应用,使得单片机的科学技术取得了更为广大的发展。

二、电子技术中单片机的特征探析

总体而言,当前市场中运用的电子技术中的单片机具备了功能全、耗能低、体积小、可靠性强、低电压、集成度高以及生产便捷的特点。尤其是单片机具备的功能全与携带方便的特点,使得单片机的应用范围大大提升了。人们可以轻松的将单片机应用到自身企业的办公室内,从而在本质上适当的提升了企业自身的机电一体化进程的加快。除此之外,单片机在个类工程与电子仪器仪表中的应用也取得了空前的成绩,其不仅科学合理的提高了电子科学仪器仪表的精准度,还科学的使得仪器仪表可以进行自身的自动化运行管理。

三、电子技术中单片机的应用与开发工作探析

从上文中不难看出,在电子技术的相关产品中顺利的应用单片机,不但能够更好的电子产品提高更高的性能,还能再一定的程度上充分提高电子科技的成本预算,为企业的经济做出应有的贡献。为此,笔者在这里对电子科技中单片机的应用与开发研究工作提出了以下几个方面的建议,以供大家参考。

(一)电子科技产品中科学的应用单片机,可以适当的提高其自身的使用寿命。文中自理所指的寿命主要有两个方面的内容:一个是指单片机自身在电子科技产品中的使用寿命;另一个是自身单片机中中央处理器CPU的寿命。伴随当前国际半导体科学技术的不断发展,世界各国的单片机技术发展也都取得了不菲的成绩,尤其是近十几年来,中央处理器CPU、I/O接口以及只读储存器ROM相关技术的飞速发展,更是将我国的单片机发展得到了空前的发展。除此之外,随着社会网络计算机技术、通信技术以及多媒体科学技术的产品的涌入,更加壮大了单片机的队伍。例如:以Mororola68K为CPU的32 位的单片机在市场中的投入,使得市场中的单片机销量得到了8000万枚,而且其自身存在的较强功能与特点更使得其深受市场需求人们的喜爱。

(二)电子科技产品中科学的应用单片机,可以更好增强产品自身的运行速度,提升了电子科技产品的工作效率。随着电子技术市场中MUP的不断发展,其就使得电子科技产品自身的运行处理速度,得以顺利提高。而在电子科技产品中顺利应用,不仅提高了电子科技产品的运行速度得以顺利提升,还科学合理的降低了自身运行的噪音,并有效的改善了单片机内部运行控制时序,提高了自身的运行的计算与计时能力。

(三)电子科技产品中科学的应用单片机,不仅有效的降低了产品运行的噪音,还适当的提高了电子科技产品运行的有效性。对于任何一个电子科学技术产品而言,其自身的运行管理的可靠性,都是其开拓市场的本质保障。因此,我们在未来发展的单片机中可以适当努力发展一下几个方面的新技术:

第一,继续研发EFT技术。该技术在单片机的科学使用,不但增强了单片机振荡电路的抗干扰能力,还可以有效的消除交替施密特电路所产生的毛刺。

第二,继续研发低噪声布线技术与驱动技术,从而在本质上最大程度的降低了单片机运行中所产生的噪声污染,并使得其具备更强的运行能力。

(四)单片机中对OTP的应用。作为单片机中对OTP的应用而言,其不仅降低了单片机的成本经济,还使得单片机具备更强的运行管理能力,在降低了生产成本的同时,还降低了单片机的生产风险与生产周期。下图就是语音OTP芯片图。

四、结束语

综上所述,随我我国网络计算机技术的不断进步,社会早已成为了电子科技时代。因此,在当前社会中,电子科技技术的工作人员一定要在市场中充分发挥电子科技产品最大功能,并且在市场中利用单片机,让市场中的电子技术能够取得更为深远的发展。

参考文献

[1]方玲.“看门狗”技术在单片机系统抗干扰设计中的应用[J].安徽电子信息职业技术学院学报,2005,(04)

[2]谢明山,王庆芬,樊伟.单片机在SR电机控制中的应用[J].石家庄联合技术职业学院学术研究,2007,(03)

单片机开发篇9

【关键词】AT89S52单片机;LCD;计算器

文章编号:ISSN1006―656X(2014)05-0153-01

一、前言

计算器是与我们日常生活中最为常用的计算工具,虽说现在智能化手机都以集成了部分计算器的功能,但对于某些财务工作者而言,计算器仍然是其不可替代的便携工具。较比简单的普通计算器而言,科学计算器除了能进行加减乘除四则运算之外,还可以进行乘方、开方运算、具有指数、对数、三角函数、反三角函数及存储等计算功能。为此,开发设计更加具有小型化、功能化、精度化的多功能科学计算器具有一定的社会价值及推广价值。

本设计使用AT89S52单片机作为主控制芯片,通过计算机的8×8矩阵键盘进行数据输入,进行相应的加、减、乘、除的运算,以及乘方、开方、正余弦函数等一般常用运算,并在LCD1602上显示相应的结果。AT89S52单片机是一种低功耗、高性能COMS 8位微控制器,具有8K在系统可编程Flash储存器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash容许程序存储器在系统可编程,亦适用于常规编程器。在芯片上,拥有灵巧的8位CPU和在系统可编程FLash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。

二、核心芯片概述

(一)AT89S52单片机

AT89S52 是一种低功耗、高性能CMOS 8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

(二) 8*8矩阵键盘

键盘可分为两类:编码键盘和非编码键盘。编码键盘是较多按键(20个以上)和专用驱动芯片的组合,当按下某个按键时,它能够处理按键抖动、连击等问题,直接输出按键的编码,无需系统软件干预。通用计算机使用的标准键盘就是编码键盘。在智能仪器中,使用并行接口芯片8279或串行接口芯片HD7279均可以组成编码键盘,同时还可以兼顾数码管的显示驱动,其相关的接口电路和接口软件均可在芯片资料中得到。当系统功能比较复杂,按键数量很多时,采用编码键盘可以简化软件设计。非编码键盘成本低廉。从成本角度出发,本设计选用的是非编码矩阵键盘。计算器的键盘布局如图所示:一般有64个键组成,在单片机中正好可以用4个P口实现16个按键功能,这种形式在单片机系统中也是最常见的。如图1所示:

三、软件系统设计方案

主程序设计主要针对51单片机进行数字计算器系统设计开发,利用C语言编程,并用开发板制作并显示。核心子程序设计包括LCD1602显示模块程序设计,以及矩阵键盘的驱动设计。

(一)液晶显示程序设计

显示模块程序首先要对显示模块进行初始化;然后控制光标的位置;定义液晶显示的控制端口,用SBIT指令完成;然后设置清屏、关闭显示、归位、开显示、显示位置的首地址等等。

LCD1602在上电以后,应该先等待50毫秒左右,让其内部芯片初始化后再对其进行操作。在对其操作时,应参考其时序图,先把命令写入其内部寄存器设置它的工作方式和状态。要显示数据的时候,先设置好显示坐标,在往里写入要显示的ASCII码,LCD则通过刷新和替换新的数据。

(二)矩阵键盘扫描程序设计

键盘扫描子程序,首先读出P1的低四位,然后读出P1口的高四位。然后键值并显示缓存。然后将键值转换为ASCII码然后就可以软件来设置硬件按键各个键代表的内容。读键程序使用的是反转法读键,不管键盘矩阵的规模大小,均进行两次读键。第一次所有行线均输出低电平,从所有读入键盘信息(列信息);第二次所有列线均输出低电平,从所有行线读入键盘信息(行信息)。数字键按下则将相应的数字送入缓存区,功能键按下则执行相应的程序。

经过多次测量与调试,本计算器基本能实现设计要求中的功能。由于本设计功能相对简单,计划在后续的功能中,不断增添新功能,进而完善计算器的功能。

参考文献:

[1]李建中.单片机原理及应用[M].西安:西安电子科技大学出版社,2011:(15-17).

[2]肖洪兵. 跟我学用单片机[M]. 北京:北京航空航天大学出版社,2002.8:(3-20).

单片机开发篇10

关键词:51单片机;瓦斯检测系统

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)31-7477-03

Abstract: The energy is a national economic development important factors. Starting from the reform and development, China's coal production increased year by year. The coal mine safety is becoming more and more attention. In the coal mine accident, according to incomplete statistics major mine more than 40% are caused by gas explosion, therefore, gas monitoring is the key of the coal mine safety system, this design is based on MCU51 of gas gas monitoring system.

Key words:51 single-chip computer;gas detection system

1 系统原理

在煤矿开发过程中,会含有大量的CO和CH4等易燃易爆气体,为了防止瓦斯超过警戒值,造成重大事故,井下开采都会采用安全监控系统,本设计的煤矿气体监测系统就能监测井下环境的瓦斯浓度,当瓦斯浓度超过警戒值的时,会报警并上传数据到上位机,使得安全人员能够组织疏散人员,保证工作人员的安全。

系统上电之后,开始初始化一些I/O口寄存为和开/关相应的IC芯片功能,然后从存储器中读取初始设置参数,进入短延时,使得气体传感器预热,防止误读数据,然后开中断,循环检测数据标志位,当检测标志位有效,则进入相应的功能程序处理,比如:采集功能、报警功能、按键功能、数据传输功能等。

利用定时器A来实现对瓦斯气体的测量,在进入定时中断之后,关闭中断,设置A/D转换模式,采集数据、处理数据并存储,判断数据是否超过警戒值,如果是,则启动声光报警并传输数据,然后开启定时器,退出中断,继续下一次采集中断。

4 设计总结

随着煤矿安全系统的发展,未来瓦斯传感器将会越来越先进,为了满足地面调度室更好的监控井下开采情况,对人员定位、远程数据传输、人机对话、视频监测和远程控制有更高的要求,其总线也会被更先进的总线形式替代,例如近年来的CAN总线形式。本设计虽然在多功能方面不如嵌入式分站系统,但是,对现有的南方小型煤矿的实用价值更高、扩展性、升级可能性更好。

参考文献:

[1] 李鸿燕,张立毅.基于单片机控制的甲烷浓度报警监控仪[J].电脑开发与应用,2002.15(8):29—30.

[2] 朱经国.可燃气体监测报警器的检定[J].中国计量,2001(62):53-53.

[3] 王幸之.单片机席应用系统抗干扰技术[M].北京航空航天大学出版社,1999.

[4] 孙彦景,钱建生,李世银,等.煤矿物联网络系统理论与关键技术[J].煤炭科学技术,2011(2).

[5] 王建,王汝琳,王学民,等.基于无线传感器网络的煤矿瓦斯监测系统[J].矿山机械,2007(2).

[6] 徐长安.基于AT89C52单片机的智能型瓦斯检测仪的设计[J].中州煤炭,2007(3).