单片机设计经验技巧精华集锦(五)

最新更新时间:2013-05-27来源: 互联网关键字:单片机  设计经验  精华集锦 手机看文章 扫描二维码
随时随地手机看文章
C 语音识别

  用AVR单片机的高速AD检测功能能实现简单的语音识别。声音信号被驻极体电容话筒接收后送至LM386音频功放芯片放大和过滤后送至单片机AD转换口,单片机对音频信号幅值采样转化为一组数字,然后对这组进行取方差运算,得出一个特征值,该特征值可以用于简单的语音识别。比如你发一个“e”,方差应该比较小,如果你发“p”爆破音,方差应该较大。当然,如果你用更复杂的数据处理,会得到更好的识别效果。本设计使用了2路声音信号,目的是让单片机判断出声源的大体方位。

  D 超声波测距

  用AVR的1个IO口输出40KHz信号送至超声波发射电路,当超声波遇到障碍物返回后,被超声波接收头接收,信号经CX20106A解码芯片处理,得到一个低电平脉冲,用该脉冲引发AVR单片机中断,AVR通过检查发波和收到回波之间的时间差即可算出障碍物距离。

  E 电机驱动

  本设计采用2片LG9110电机驱动芯片驱动两台直流减速电机。LG9110输出最大电流为800mA,仅需要2条控制线与单片机IO口直接相连即可控制一台电机正反转或者停止。LG9110仅有8个引脚,使用非常方便。

  F 让机器生命更聪明

  我的这个机器生命设计方案能实现最酷的效果是:白天,阳光明媚,机器生命跑到阳光底下晒太阳,太阳光会随着时间变化,机器生命能自动跑到最合适的位置享受日光浴。到了晚上,机器生命会找个安静的地方闭目养神,等待明天太阳升起。你可以训练机器生命,让它知道自己的名字叫什么。比如你叫着它的名字,同时站在它面前用强光照射它的太阳能电池板,如此反复训练,会使机器生命听到自己名字后向声源方向跑去,在距离声源一定远处停止,因为以往这样做它都能享受强光照射并充电。这就如同真正的宠物狗,你叫它名字它就跑到你跟前希望能获得食物。这一切都是完全能够实现的,关键就在于编程序实现它。

  G 想象无极限,你的机器宠物将无所不能

  以上方案中,ATmega16的功能被发挥到极致,以至于没有空闲的IO口,系统不能再扩展了。如果你用ATmega128单片机做,那么它拥有53个IO口,30多个中断,128Kb的程序存储器,4Kb的RAM,使得你能编写更复杂的程序、储存更多的动态数据、连接更多的外设,你的机器生命将变得非常有生命力。比如加入三轴加速度传感器、地磁传感器、GPS定位、雨水传感器甚至摄像头、无线通信模块等,重新设计一个坚固和强劲的底盘,你的机器生命就可以在室外自由探索了。

  以上芯片外设来源说明:在淘宝上购买很容易

  底盘:340元的高级履带式1:16电动坦克模型

  加速度传感器、地磁传感器:美国AD公司的40元ADXL330加速度传感器

  GPS定位:几十元的车载外置GPS天线

  最后,我想说,机器人是非常好玩的,只要你有想象力,有毅力,努力研究实践就能创造奇迹。

  二、工程师分享的单片机学习步骤

  有了单片机学习板之后你就要多练习,把学习板和电脑连好,打开调试软件坐在电脑前,先学会怎么用调试软件,然后从最简单的流水灯实验做起,等你能让那八个流水灯按照你的意愿随意流动时你已经入门了,你会发现单片机是多么迷人的东西啊,太好玩了,这不是在学习知识,而是在玩,当你编写的程序按你的意愿实现时你比做什么事都开心,你会上瘾的,真的。做电子类的人真的会上瘾。然后让数码管亮起来,这两项会了后,你已经不能自拔了,你已经开始考虑你这辈子要走哪一行了。就是要这样练习,在写程序的时候你肯定会遇到很多问题,而这时你再去翻书找,或是问别人,当得到解答后你会记住一辈子的,知识必须用于现实生活中,解决实际问题,这样才能发挥它的作用。另外我再说说用汇编和C语言编程的问题。很多同学大一二就开设了C语言的课 ,我也上过,我知道那时天天就是几乘几,几加几啊,求个阶乘啊。学完了有什么用?让你用C语言编单片机的程序你是不是就傻了?书上的东西我们必须要会运用。单片机编程用C语言或汇编语言都可以,但是我建议用C语言比较好,如果原来有C语言的基础那学起来会更好,如果没有,也可以边学单片机边学C语言,C 语言也挺简单,只是一门工具而已,我劝你最好学会,将来肯定用得着,要不你以后也得学,你一点汇编都不会根本无所谓,但你一点C语言都不会那你将来会吃苦头。汇编写程序代码效率高,但相对难度较大,而且很罗嗦,尤其是遇到算法方面的问题时,根本是麻烦的不得了,现在单片机的主频在不断的提高,我们完全不需要那么高效率的代码,因为有高频率的时钟,单片机的ROM也在不断的提高,足够装得下你用C语言写的任何代码,C语言的资料又多又好找,将来可移植性非常好,只需要变一个IO口写个温度传感器的程序在哪里都能用,所以我劝大家用C语言。总结上面,只要你有信心,做事能坚持到底,有不成功不放弃的强烈意志,那学个单片机来说就是件非常容 易的事。

  步骤:

  1.找本书大概了解一下单片机结构,大概了解就行。不用都看懂的。

  2.找学习板练习编写程序,学单片机就是练编程序,遇到不会的再问人或查书。

  3.自己网上找些小电路类的资料练习设计外围电路。焊好后自己调试,熟悉过程。

  4.自己完全设计具有个人风格的电路,产品,。。。你已经是高手了

  ^_^。 。。。。

  学习单片机的八大步骤

  学习使用单片机就是理解单片机硬件结构,以及内部资源的应用,在汇编或C语言中学会各种功能的初始化设置,以及实现各种功能的程序编制。

  第一步:数字I/O的使用

  使用按钮输入信号,发光二极管显示输出电平,就可以学习引脚的数字I/O功能,在按下某个按钮后,某发光二极管发亮,这就是数字电路中组合逻辑的功能,虽然很简单,但是可以学习一般的单片机编程思想,例如,必须设置很多寄存器对引脚进行初始化处理,才能使引脚具备有数字输入和输出输出功能。每使用单片机的一个功能,就要对控制该功能的寄存器进行设置,这就是单片机编程的特点,千万不要怕麻烦,所有的单片机都是这样。

  第二步:定时器的使用

  学会定时器的使用,就可以用单片机实现时序电路,时序电路的功能是强大的,在工业、家用电气设备的控制中有很多应用,例如,可以用单片机实现一个具有一个按钮的楼道灯开关,该开关在按钮按下一次后,灯亮3分钟后自动灭,当按钮连续按下两次后,灯常亮不灭,当按钮按下时间超过2s,则灯灭。数字集成电路可以实现时序电路,可编程逻辑器件(PLD)可以实现时序电路,可编程控制器(PLC)也可以实现时序电路,但是只有单片机实现起来最简单,成本最低。定时器的使用是非常重要的,逻辑加时间控制是单片机使用的基础。

  第三步:中断

  单片机的特点是一段程序反复执行,程序中的每个指令的执行都需要一定的执行时间,如果程序没有执行到某指令,则该指令的动作就不会发生,这样就会耽误很多快速发生的事情,例如,按钮按下时的下降沿。要使单片机在程序正常运行过程中,对快速动作做出反应,就必须使用单片机的中断功能,该功能就是在快速动作发生后,单片机中断正常运行的程序,处理快速发生的动作,处理完成后,在返回执行正常的程序。中断功能使用中的困难是需要精确地知道什么时候不允许中断发生(屏蔽中断)、什么时候允许中断发生(开中断),需要设置哪些寄存器才能使某种中断起作用,中断开始时,程序应该干什么,中断完成后,程序应该干什么等等 。

  中断学会后,就可以编制更复杂结构的程序,这样的程序可以干着一件事,监视着一件事,一旦监视的事情发生,就中断正在干的事情,处理监视的事情,当然也可以监视多个事情,形象的比喻,中断功能使单片机具有吃着碗里的,看着锅里的功能。 以上三步学会,就相当于降龙十八掌武功,会了三掌了,可以勉强护身。

  第四步:与PC机进行RS232通信

  单片机都有USART接口,特别是MSP430系列中很多型号,都具有两个USART接口。USART接口不能直接与PC机的RS232接口连接,它们之间的逻辑电平不同,需要使用一个MAX3232芯片进行电平转换。

  USART接口的使用是非常重要的,通过该接口,可以使单片机与PC机之间交换信息,虽然RS232通信并不先进,但是对于接口的学习是非常重要的。正确使用USART接口,需要学习通信协议,PC机的RS232接口编程等等知识。试想,单片机实验板上的数据显示在PC机监视器上,而PC机的键盘信号可以在单片机实验板上得到显示,将是多么有意思的事情啊!

  第五步:学会A/D转换

  MAP430单片机带有多通道12位A/D转换器,通过这些A/D转换器可以使单片机操作模拟量,显示和检测电压、电流等信号。学习时注意模拟地与数字地、参考电压、采样时间,转换速率,转换误差等概念。使用A/D转换功能的简单的例子是设计一个电压表。

  第六步:学会PCI、I2C接口和液晶显示器接口

  这些接口的使用可以使单片机更容易连接外部设备,在扩展单片机功能方面非常重要。

  第七步:学会比较、捕捉、PWM功能

  这些功能可以使单片机能够控制电机,检测转速信号,实现电机调速器等控制起功能。

  如果以上七步都学会,就可以设计一般的应用系统,相当于学会十招降龙十八掌,可以出手攻击了。

  第八步:学习USB接口、TCP/IP接口、各种工业总线的硬件与软件设计

  学习USB接口、TCP/IP接口、各种工业总线的硬件与软件设计是非常重要的,因为这是当前产品开发的发展方向。

  三、电子电路设计之C51单片机常见问题

  笔者在工作中实际使用过AT89C2051、AT89C51、AT89C52等51单片机,后来应用台湾新茂、华邦等厂家的51单片机。实践中遇到许多问题,都是书本上没有的。我印象中,书本上的知识只有一页插图了,就是cpu的时序图。最初直接用汇编写程序,然后是C51嵌套汇编。编译器曾用伟福系列编译器,后来使用keil等,感觉这些编译器大同小异。需要熟练的C语言基础,加上单片机应用的特殊性。

  本文就51单片机应用中一些常见问题作个总结,这都是我实际碰到过的,因为文章篇幅所限,这些问题远远不足以表达单片机的常见问题。希望对初学者有所帮助,文中不完善的地方务请指点。谢谢!

  1:C51编译器如何区分位地址和字节地址

  是靠预定义实现的,比如:sfr P0 = 0x80; sbit P0_0 = 0x80;前者声明了P0端口地址位于0x80,后者说明了P0端口的bit0,即P0.0位于位地址空间0x80处。这2个0x80具有完全不同的含义,靠关键字sfr和sbit来区别。这样当程序被编译时,编译器会依此编译成相应的汇编语言。例如:

  C51语句: P0 = 1;

  P0声明为sfr,因此编译成:mov 80h,01h,将把0x01数据送入0x80单元,由于0x80单元物理上对应P0端口,因此,P0.0脚将输出高电平(其实是呈现高阻态,P0口独有的),其他.1-.7脚输出低电平。

  C51语句: P0_0 = 1;

  P0_0声明为sbit,因此编译成:setb 80h,这将把位地址空间的0x80地址的bit的值置1。这个位正是P0口的bit0,执行后,P0.0将输出高阻态。而P0.1-.7不会变化。

关键字:单片机  设计经验  精华集锦 编辑:神话 引用地址:单片机设计经验技巧精华集锦(五)

上一篇:单片机设计经验技巧精华集锦(四)
下一篇:单片机设计经验技巧精华集锦(六)

推荐阅读最新更新时间:2023-10-12 20:46

基于EMP78P156单片机的RC测温的实现
以前做一个电熨斗的项目,其中要使用到温度的测量,但是为了节省成本,要用不带AD的单片机来控制。测温部分是利用RC来测温,就是利用热敏电阻结合RC电路来实现温度的测量,可以精确到1℃。本电路采用了台湾义隆单片机EM78P156来实现温度的测量和控制。 一、总体控制电路: 图 1 二、 RC测温原理: 利用单片机I/O口来实现RC测温,电路很简单,而且也不难实现,最主要的是要有个概念,如何实RC测温,也就是RC测温的原理。这里具体的介绍一下,可以在这个原理基础上进行修改很扩展为多路的测温。如下图(2) 图中: P1.0、P1.1和P
[单片机]
基于EMP78P156<font color='red'>单片机</font>的RC测温的实现
动力系统的下一步发展
尽管电动汽车和混合动力汽车一路高歌猛进,传统的汽油和柴油动力汽车在未来许多年内仍将是市场的主流。预计到 2023 年,传统动力汽车仍将在全球轻型汽车产量中占据 85% 份额,如下图所示。 但是,这并不意味着汽车的动力系统控制要求将会一成不变。汽车制造商和他们的供应商正面临着日益严格的燃油经济性和尾气排放控制要求。在近期发生的柴油发动机排放丑闻之前,这种情况就早已出现,只不过现在更加严格。 这导致汽车厂商需要更多、更复杂的后处理技术,而过去未采用后处理技术的车辆也需要安装后处理系统。为了确保这类后处理系统能够妥善工作,我们显然需要更加复杂的动力系统控制。事实上,梅赛德斯从 2014 年起就已经开始为某些搭载汽油发动机的车型安
[汽车电子]
动力系统的下一步发展
MPC5676R:多核32位MCU汽车动力总成解决方案
Freescale公司的MPC5676R是采用 Power Architecture技术的32位多核Qorivva MCU,主要用在汽车动力总成系统。 MPC5676R集成了两个180MHz 处理器 ,三个第二代高性能时间处理器单元(eTPU2),6MB闪存,128路定时器(3×eTPU2和1×eMIOS),四个 ADC ,384kB RAM(数据存储)以及不需要外接元件进行 爆震检测 的信号处理电路。主要用在动力总成引擎控制、汽油直接注入、混合动力汽车、爆震检测、传动控制等。 32位Qorivva MPC5676R微控制器(MCU)基于Power Architecture技术,是飞思卡尔公司的第一款用于先进动力总成控制
[单片机]
MPC5676R:多核32位<font color='red'>MCU</font>汽车动力总成解决方案
意法半导体提供集成数字滤波器的新STM32L4微控制器
eeworld网消息,中国,2017年5月11日 —— 意法半导体开始量产STM32L45x超低功耗微控制器(MCU)。新微控制器配备基于简单易用、价格亲民的STM32Cube平台的开发生态系统。 STM32L451、STM32L452和STM32L462产品线集成Sigma-Delta调制器(DFSDM)用数字滤波器,可以在一款价格低廉的微控制器上实现高级音频功能,例如,噪声抑制或声音定位。高达512 KB片上闪存和160 KB SRAM为代码和数据提供充足的存储空间。 新系列微控制器还集成真随机数发生器,让联网智能设备等注重安全应用的开发变得更容易。STM32L462还进一步加强了安全设备开发支持,集成一个硬件AES-
[半导体设计/制造]
50条STM32单片机学习笔记
1、AHB系统总线分为APB1(36MHz)和APB2(72MHz),其中2 1,意思是APB2接高速设备 2、Stm32f10x.h相当于reg52.h(里面有基本的位操作定义),另一个为stm32f10x_conf.h专门控制外围器件的配置,也就是开关头文件的作用 3、HSE Osc(High Speed External Oscillator)高速外部晶振,一般为8MHz,HSI RC(High Speed InternalRC)高速内部RC,8MHz 4、LSE Osc(Low Speed External Oscillator)低速外部晶振,一般为32.768KHz,LSI RC(Low Speed Inte
[单片机]
50条STM32<font color='red'>单片机</font>学习笔记
采用C51与插拔式FLASH闪存设计无纸记录仪
  ATMEL公司推出的带有看门狗功能的单片机AT89C55WD带有20K的程序存储器,是8051系列中一款较为先进的产品,其看门狗功能可以大大提高产品的稳定性,大容量的内部程序存储器可以容纳功能丰富的软件。   以往的许多无纸记录仪均采用3.5英寸软盘作为数据存贮介质,但软盘存贮的可靠性差、存储容量有限、成本较高等诸多缺点实在难以克服。   作为一种高科技的非易失性存储设备,FLASH闪存首先在数码相机、PDA、移动电话等数字产品当中得到了应用,随着工艺的进步和价格的下降,逐步向其他应用领域扩展,其容量大、功耗低、速度快、不易受损等优点正受到人们越来越多的青睐,而且最大的好处是,随着技术水平的进步,FLASH闪存的容量也在不断
[应用]
采用单片机的沥青智能软化点测试仪简介
引言 直径为10mm的沥青球试样安放于浸泡在传热介质中的支架上,当加热到一定温度时,沥青熔化,此时从试样上会有沥青溶液通过支架上的孔滴下,被装在其下面的光电检测装置检测到,这时的温度就为沥青的软化温度。整个过程在1000mL的烧杯里进行。 1系统硬件结构 整个系统为以AT89C51单片机为核心的控制器,硬件结构框图见图1所示,可以分为以下几个部分。 (1)单片机及键盘、显示器等外围电路采用AT89C51单片机芯片作为处理器,其片内自带4KB的E2PROM,且指令系统与Intel MCS-51完全兼容。本系统采用汇编语言编程,控制程序容量约2KB,所以不需另外扩展程序存储器,使得控制电路得到简化,另外
[单片机]
采用<font color='red'>单片机</font>的沥青智能软化点测试仪简介
基于MSP430系列单片机的CAN总线接口转换卡设计
摘要:IT公司的MSP430系列单片机是一种超低功耗的混合信号控制器,具有丰富的片内外设,有极其广阔的应用范围。介绍基于MSP430系列单片机的RS232/RS485 CAN总线通信转换接口的设计与实现,重点讨论其硬件配置和软件功能,给出电气原理和软件流程。 关键词:MSP430;CAN总线;接口;转换卡;设计 1 引言 控制器局域网(Controller Area Network,简称CAN)是德国奔驰公司20世纪80年代为解决汽车众多控制设备与仪器仪表之间的数据交换开发的一种串行通信协议。它作为现场总线的一种广泛应用于各种工业现场,根据不同的需要或以主从方式、或以多主方式工作。CAN总线使用的通信介质为双绞线或其他电缆,传
[应用]
小广播
最新模拟电子文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved