首页 > 文章中心 > 单片机应用

单片机应用

前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇单片机应用范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。

单片机应用

单片机应用范文第1篇

1、单片机原理是指一种在线式实时控制计算机的原理方式。在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机(比如家用PC)的主要区别。

2、应用:单片机普遍设置有并行地址总线、 数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接,另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积,这类单片机称为非总线型单片机。

(来源:文章屋网 )

单片机应用范文第2篇

Abstract: Combining 8051, the paper introduces the advantages of C-language and the programming design of C-language's relization of MCU digital blink. Though 8051 could embed assembly code at C-language programming, the complicity is obviously improved. The practice proves that if we use C-language resonablely, the equal precision with assembler language could be got at practice.

关键词:单片机;C语言;应用

Key words: MCU; C-language; application

中图分类号:TP31 文献标识码:A文章编号:1006-4311(2010)36-0146-01

1问题的提出

将C向MCU(俗称单片机)8051上的移植始于20世纪80年代的中后期。客观上讲,C向8051 MCU移植的难点不少。经过Keil/Franklin、Archmeades、IAR、BSO/Tasking等公司艰若不懈的努力,终于于20世纪90年代开始而趋成熟,成为专业化的MCU高级语言了。过去长期困扰人们的所谓“高级语言产生代码太长,运行速度太慢,因此不适合单片机使用”的致使缺点已被大幅度地克服。

2单片机C语言的优越性

2.1 不懂得单片机的指令集,也能够编写完美的单片机程序;

2.2 无须懂得单片机的具体硬件,也能够编出符合硬件实际的专业水平的程序;

2.3 不同函数的数据实行覆盖,有效利用片上有限的RAM空间;

2.4 程序具有坚固性:数据被破坏是导致程序运行异常的重要因素。C语言对数据进行了许多专业性的处理,避免了运行中间非异步的破坏;

2.5 C语言提供复杂的数据类型(数组、结构、联合、枚举、指针等),极大地增强了程序处理能力和灵活性;

2.6 提供auto、static、const等存储类型和专门针对8051单片机的data、idata、pdata、xdata、code等存储类型,自动为变量合理地分配地址;

2.7 提供small、compact、large等编译模式,以适应片上存储器的大小;

2.8 中断服务程序的现场保护和恢复,中断向量表的填写,是直接与单片机相关的,都由C编译器代办;

2.9 提供常用的标准函数库,以供用户直接使用;

2.10 头文件中定义宏、说明复杂数据类型和函数原型,有利于程序的移植和支持单片机的系列化产品的开发;

2.11 有严格的句法检查,错误很少,可容易地在高级语言的水平上迅速地被排掉;

2.12 可方便地接受多种实用程序的服务:如片上资源的初始化有专门的实用程序自动生成。

3应用案例:C语言实现单片机数码管闪烁

本应用案例中(/*此函数主要是C语言实现单片机数码管闪烁功能。效果:1――数码管显示0123;2――停顿;3――数码管显示4567;4――无穷循环1,2,3步。*/),程序为:

#include

#include

unsigned char code dis_code[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0xff}; //定义数组

int delay(int x)//声明延迟函数

{

int j=0;

for(j;j

}

main() //主函数

{

int i,j;//定义i,j

unsigned char seg;//定义seg,用于数码管的初始化

seg= 0xfe ;//定义seg为0xfe,即11111110;使数码管为第一个显示

while (1)//无穷循环

{

{ for(j=0;j

{

for(i=0;i

{

P2=seg;//初始化P2

P0=dis_code[i]; //显示数字

delay(200);//延迟约1ms

seg=_crol_(seg,1);//数码管右移一位

if (seg==0xef) seg=0xfe; //输出四个数字之后停止

}

}

P2=0xff;//数码管全不接通,把0,1,2,3消去

delay(2000000); //延迟

for(j=0;j

{

for(i=4;i

{

P2=seg; //初始化P2

P0=dis_code[i]; //显示数字

delay(200);//延迟约1ms

seg=_crol_(seg,1);//数码管右移一位

if (seg==0xef) seg=0xfe;//输出四个数字之后停止

}

}

}

}

}//函数结束

单片机应用范文第3篇

本设计采用MicrochipPIC16C54单片机,选用南通光电器件厂GR40101红外发射二极管和GD1611硅PIN型光敏二极管作为红外发射和接收器件,舟山海山电器有限公司生产的微型电机QDB-30-3.0作为泵液晶驱动。系统采用单键模式完成暂停、设定泵液量等功能。电路采用节电方式设计,待机电流小于100μA,并可提供微型电机所需的500mA负载电流,可监测电池电压,欠压报警。系统原理如图1所示。

图中TX(红外发射管)、R1、R5、Q4组成红外发射电路,单片机RA1口输出一定频率的脉冲控制三极管Q4的通断,从而控制红外发射管TX的发射频率。由单片机RA3口为发射电路提供电源,是为了节能。当RA1口将要发射脉冲时,RA3口置高,发射电路加电。RX(红外接收管)、R2、R11、R12、R13、R16、Q6、C3组成红外接收电路,RX接收红外脉冲,整形后由Q6放大。接收电路必须严格控制放大倍数,确保红外反射接收距离在10cm左右。接收电路电源由单片机RB1口提供,在发射脉冲后,将RB1口置高。R6、R7、R8、Q3组成电池电压监测电路,当电源电压降到一定值时,Q3截止,单片机RB3口为高电平,欠压报警。D2、D3、R9、R10、Q1、Q5组成电机供电电路,提供微型电机所需的3V电压、500mA负载电流,当需驱动电机泵液时,由单片机RB2口输出低电平,Q发射极为电机供电。D1、C4、Q2、R3组成电机控制电路,泵液时先为电机供电,然后单片机RA2口输出高电平驱动电机运转。LED为工作状态指示灯,单一按键SW为多功能键,可完成设定泵液量、暂停、手动泵液等功能。

2软件设计

本电路硬件设计通过控制各单元电路供电达到节能的目的,软件上利用PIC单片机的休眼、看门狗溢出唤醒特性以及对发射脉冲个数的控制进一步降低能耗,使其待机电流小于100μA,4节4号碱性电池可提供15000次以上的使用次数或200天以上的使用时间。程序流程如图2所示。

程序开始先对单片机各端口初始化,并设置好看门狗溢出时间,程序工作一个周期后,自动进入休眠模式,由看门狗溢出唤醒单片机进入下一周期。进入一个工作周期前,首先判断是电池上电第1次工作,还是看门狗溢出唤醒单片机。如果是电池上电第1次工作,指示灯应给出指示,并对泵液量进行设定。进入工作周期后要判断按键是否按下,若按下按键,则判断是手动泵液还是暂停泵液器工作,这两者靠按键时间长短决定。

红外收发程序对提高泵液器抗干扰能力、降低泵液器能耗起着关键作用。经过实验选定一个发射脉冲频率使其对外界光干扰不敏感。为了最大限度地降低能耗,程序对发射脉冲的个数和方法进行设计,先发2个试探脉冲,若接收到,则按选定频率连续发60个脉冲,然后判断接收方收到的脉冲数是否在允许的范围内,是则泵液,否则进入休眠模式;若接收方未收到试探脉冲,则直接进入休眠模式。每次泵液器工作后,都检查电池电压,若发现电压低,立即由指示灯给出报警,提示更换电池。

单片机应用范文第4篇

【关键词】单片机开发技巧;系统测试;减少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)

单片机应用范文第5篇

关键词 单片机;接口技术;PS/2

中图分类号TP39 文献标识码A 文章编号 1674-6708(2011)44-0208-02

接口是指各种不同特性部件的相互交接部分。对于单片机,CPU与其它电路和部件相互交接的部分就是接口。接口又分为和软件部分硬件部分。接口软件则是指为实现信息交换而设计的程序;硬件接口是指两个部件实体之间的连线和逻辑电路。在现在所掌握的技术条件下,硬件接口都必须得到相应的接口软件的支持。

1 单片机接口技术的特点

单片机本身已经具备了一些常用的功能部件,而且我们知道单片机的应用主要是面向测控系统,因此,与通用计算机的接口技术相比较,单片机的接口技术有以下特点。

1)单片机的接口往往更侧重于人机接口和控制接口。通用微机的人机界面是标准键盘和显示器,较之单片机的人机接口要复杂,同时功能也强得多。PC机的键盘本身就是一个单片机系统,可以对100多个键进行扫描,并具有消除抖动和重键处理等功能。另外,通用计算机不是面向测控应用的,因此通常不具备测控接口。如果需要,也必须使用扩展板;

2)单片机的接口往往都是由用户自行设计的,而且不会有统一的标准和规格。而且同一种功能也可以采用不同的接口设计方案。而对于通用微型计算机的接口部件一般是已经设计好的,用户也只能使用它所提供的功能,却不能更改其原有的设计。因此,单片机的接口设计往往需要更多的技巧和经验;

3)单片机应用系统的规模通常都比较小,存储器的容量也不大。因此,很少采用大容量的存储器,而且通常只采用静态存储器,很少采用动态存储器。另外,也很少采用外部存储器(软盘、硬盘等)。而在通用微型计算机中,通常都采用大容量的动态存储器,软盘和硬盘更是必不可少的大容量的外部存储器。

2 单片机接口技术的应用――PS/2接口技术

作为一个出现较早的输入接口,基于PS/2的开发技术已经相当成熟,但是这些成熟的技术主要掌握在部分主板开发商和鼠标键盘开发商手上。而且PS/2协议的官方参考资料已经很难找到,所以本课题将以监控并分析PS/2鼠标在实际工作中的数据流并结合前人开发经验心得为主要开发依据,通过不断调试改进来完成PS/2鼠标接口的开发。

PS/2 鼠标和键盘履行一种双向同步串行协议。换句话说每次数据线上发送一位数据并且每在时钟线上发一个脉冲就被读入。键盘/鼠标可以发送数据到主机而主机也可以发送数据到设备,但主机总是在总线上有优先权,它可以在任何时候抑制来自于键盘/鼠标的通讯,只要把时钟拉低即可。数据传输过程中的时钟始终都由设备提供,如果主机要想设备发送数据就必需先告诉设备产生一个时钟信号。

2.1硬件结构基本设计

PS/2接口与单片机可以直接连接,将单片机的VCC和GND分别与PS/2接口的4号和3号针脚连接,实现对设备的供电。将P2.0和P2.1分别和PS/2接口的1号和5号针脚连接,作为数据线和时钟线实现单片机到PS/2接口的信号传输。

在单片机的P2.2-P2.7引脚上连接六个按键,分别用来模拟鼠标的上下左右移动以及鼠标的左右键。该模块用来测试PS/2接口设备的基本功能。P1口接8个发光二极管,在调试和测试中显示相关内容。P3.0-P3.1接串口模块,实现单片机和PC的通信,该模块用于扩展和测试。

下面介绍PS/2接口设备与PC通过串口的连接:

这个模块是一个扩展和测试模块,用来实现串口转PS/2接口,并且可以测试PS/2接口的功能和性能。

通过串口将PC机同PS/2接口设备连接,在PC机上编写测试软件,测试软件通过串口向单片机发送一定的鼠标数据报,设备将这些数据报转发到PS/2接口,这样使得调试更加方便灵活,同时也实现了本课题的PS/2接口设备的一个扩展应用。

51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以进行串口通讯。但是电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法。

2.2 软件结构设计

PS/2接口设备的软件主要包括六个部分:PS/2接口驱动模块,Reset模式处理模块,stream模式处理模块,显示处理模块,按键处理模块,主程序模块。

各模块的功能如下:

1)PS/2接口驱动模块:实现对PS/2接口的基本操作,包括向PS/2口发送一个字节数据,从PS/2口接收一个字节数据等操作的实现;

2)Reset模式处理模块:完成Reset模式操作;

3)Stream模式处理模块:完成Stream模式操作,提供发送一个完整鼠标数据报的函数;

4)显示处理模块:提供用于调试和测试的显示函数;

5)按键处理模块:用六个按键分别模拟鼠标的上下左右移动和左右键,当按下某个按键时产生相应的鼠标数据报,并调用Stream模式处理模块中的发送鼠标数据报函数,数据包发送到主机;

6)主程序模块:协调各模块稳定运行。

2.3 PS/2鼠标接口设备状态转换

通过分析PS/2鼠标在实际使用过程中的信号了解到,在鼠标上电一定时间后主机会向鼠标发送多次复位信号,鼠标上电机进入Reset模式。Reset模式下主机会对鼠标进行检测和配置,这个过程也被叫做鼠标的初始化。主机在重新启动和休眠唤醒时也会让鼠标进入Reset模式并初始化鼠标。Stream模式下设备可以向主机发送鼠标数据报,当然主机在这个时期也可能短暂的抑制鼠标数据报的发送。

参考文献