单片机产品设计--功能评估1,先得了解MCU的功能及每一个管脚的做用(输入口还是输出口或双向口或是其他特殊端口),确定用什么样的电源输入(变压器或阻容降压),有无大电流负载及一些安规方面的要求,体积封装大小有无规定。2,采用电池供电时是否要考虑做一些省电低功耗线路。3,带检测功能的产品是否用到A/D功能,有无必要用到一些精密参考源,主要针对测量及充电电路,或是可否直接采用RC充放电线路来做模拟量检测,A/D通道转换需要一定的稳定时间,在软件设计时需要作考量。为了保证每次A/D转换的稳定与正确,最好在每次A/D转换前都重新确定A/D转换通道、A/D转换分辨率、A/D时钟源选择位,而且根据所应用场合对所取得数据进行合理的处理。A/D转换在硬件设计方面的注意事项:信号源要尽量与A/D转换输入端接近,而且要视芯片输入阻抗添加合适的电容并入信号源输入端。此外需保证A/D转换基准电压的稳定,模拟地与数字地要分开或隔离。4,操作时有多少个按键,能否采用跟其他I/O口复用来节少I/O口资源,按键是否要采用唤醒功能,即采用带有唤醒功能的I/O口,按键输入可否采用矩阵扫描,以便节省单片机的I/O口。5,输出指示能否跟输出控制I/O口复用,这样也可以节省I/O口,但要考虑到输出电流的大小,不能影响负载的正常输出控制。6,有无精确度要求较高的定时,用来确定采用什么样的振荡源(晶振,陶振,外部RC及MCU内部RC)。7,复位电路的选取,I/O口不够时能否采用内部复位,芯片的上电复位时间与系统电压上升速度,外部振荡器频率、种类及外部Reset电路造成的delay都有关联。8,有无显示电路,是LED还是LCD,是否必要采用外挂驱动电路或直接采用I/O口推动,一般采用I/O口推动的LCD,com口都采用1/2偏压。直接用两电阻分压。9,大电流负载输出采用mos管,继电器还是可控硅控制?当输出为可控硅时,是否采用共地或共电源控制,或是用直接耦合还是用光电耦合,同时得考虑是否要用到到同步信号做一些调速、调光、调功率、调温度等可调的控制功能(同时些交流同步信号也可以做一些定时产品的参考)。10,输入尽可能放在同一I/O口,输出放在同一I/O口,同时应该考虑到PCB布线,输入输出保护电阻应尽可能靠近I/O口。11,确认I/O口内部有无上拉电阻,有些I/O口只能做单一的输入且无上拉电阻。12,对空闲口的设置,空闲口一般设定为输入上拉或输出低电平。对ADCI/O通道,应用P4CON的设定,可以避免I/O口的漏电流。对于不同的外部硬件电路,考虑I/O的状态设置,设定不当,会有漏电流,特别注意上拉电阻的正确设定,若I/O在outputlowlevel,又将pull-upenable会造成漏电,例如:VDD=5V会有约5V/100K=50uA漏电。一般采用内部复位时,此端口直接接电源,可以减小MCU睡眠时的静态电流。此端口无上拉电阻。13,跟软件确认软件资源是否足够。输入部分电路的设计按键部分硬件电路部分应用实例普通独立按键:图中S1、S2、S3为常用的三种按键,其中S3接在U1第4脚为低电平触发脚有效,因为U1第4脚内部没有上拉电阻,为单向输入口,所以得在U1第4脚外面接一上拉电阻以确保在不按下按键时让U1第4脚维持在高电平状态,采用S2接法时,为高电平触发有效,因这颗IC内部没有下拉电阻,所以得在U1第4脚外面接一下拉电阻以确保在不按下按键时让U1第4脚维持在低电平状态,S1因Ic内部有上拉电阻,则不要外加器件。VDD1XIN/P1.32XOUT/P1.23VPP/RST/P1.14P5.45P1.06P0.0/INT07VSS8U1SN8P2501_8PS2SW-PBS1SW-PBVCCR1100kS3SW-PBVCCR1100kVCC纯按键矩阵描按键:电路中扫描口都得为双向的I/O口,如此电路是用电池供电需要省电功能(让mcu进入睡眠模式),则将COM1、COM2或SEG口用到具有唤醒功能的I/O口即可。同时在功能上面要注意三角键的出现,比如s1,s2,s4同时按下是就会出s3没按下也相当于按下的动作。P2.21P2.12P2.03VDD4XIN/P1.35XOUT/P1.26VPP/RST/P1.17P5.4/PWM0/BZ08P1.09P0.0/INT010VSS11P2.512P2.413P2.314U1SN8P2501BVCCS1SW-PBS3SW-PBS5SW-PBS2SW-PBS4SW-PBS6SW-PBCOM1COM2SEG1SEG2SEG3LED矩阵描复用按键:S1ON/OFFS3TIMERS4HEATD91HD84HD72HR7820RR5820RR6820RD11HETALS2OSCSEG1SEG2SEG3COM1COM2SEG4R8820R加二极管的按键复用1:S4ON/OFFS3S5S6RUN/PAUSETIMESETD44148D34148这种情况要注意的是s5跟s3没有同时按下的可能的前提下才能实现加二极管的按键复用2:LED1IONLED41HLED72HLED103HLED134HLED2UVLED5LOWLED8MEDLED11HILED14SUPERLED3cleanLED6POWERLED12AUTO-RLED15AUTO-GD3IN4148D4IN4148D5IN4148D6IN4148D7IN4148S2UVS3IONS4SPEEDS5POWERS6TIMER5220RR6220RR7220RLED1LED2LED3LED4LED5COM1COM2COM3KEY加二极管的按键复用3:S1SW-PBS2SW-PBS3SW-PBD1DIODED2DIODED3DIODED4DIODED5DIODES4SW-PBD6DIODED7DIODES5SW-PBD8DIODED9DIODES6SW-PBD10DIODED11DIODES7SW-PBD12DIODEI/O1I/O2I/O3加电阻并联型复用:P5.0P5.1P5.2POWER_ONR10SPEEDR9POLR14DOWNR12UPR11AUTOR13ON/OFFR8D5R5D6R6D7R7D1R1D2R2D3R3D4R4D8R15P5.5P5.3P1.2+5SETUP1SETUP2123CN4CON3+5FMBZXT14MC622PC522PXOUTXINXINXOUTPROTCETP1.21P1.32INT0/P0.03P1.5/RST/VPP4VSS5P5.06P5.17P5.28P5.39P5.410P5.511P5.612P5.713XOUT/P1.415XIN16P1.017P1.118VDD16IC1SN8P2602BR8100RR241KR251KR261KR71KD2GLEDD3GLEDD1RPOWERD4GLEDR1100KR2100KR3100KR51KR61KR41KR71KR81KR9100RR10100RVCCS3OSC:ON/OFFS2MODLES1POWERS4TIMERS5IONP2.0P2.1P2.2P2.3P2.4上面的电路要吧节省i/o资源,但led不能太亮,,要不在按下按键进会有亮度变化加电阻的按键复用:LED1IONLED41HLED72HLED103HLED134HLED2UVLED5LOWLED8MEDLED11HILED14SUPERLED3cleanLED6POWERLED12AUTO-RLED15AUTO-GS2UVS3IONS4SPEEDS5POWERS6TIMER5220RR6220RR7220RLED1LED2LED3LED4LED5COM1COM2COM3R13.9KR23.9KR33.9KR43.9KR53.9K上图中按键同样可以复用在COM口上,但阻值要合适,,要不就会有影响灯的亮度采用移位寄存器的按键复用:P2.21P2.12P2.03VDD4XIN/P1.35XOUT/P1.26VPP/RST/P1.17P5.4/PWM0/BZ08P1.09P0.0/INT010VSS11P2.512P2.413P2.314U1SN8P2501BVCCA11A22QA3QB4QC5QD6GND7CLOCK8RESET9QE10QF11QG12QH13VCC14U274HC164ABVCCVCC97123456810LEDMOTHES1SW-PBS2SW-PBS3SW-PBS4SW-PBS5SW-PBS6SW-PBS7SW-PBKEYDATACLOCKCOM1COM2PA31PA13PA22PA04PB25PB1/BZ6PB0/BZ7VSS8PC1/TMR10PC0/INT09PA418RES11PA517VDD12PA616OSC113PA715OSC214IC1HT48R06ABZBUZZERR1210KIC-10XT4M+5R11100KC8104C7104IC-16IC-17IC-18IC-15IC-9IC-112345678CH1HEADER8R104.7K+5C6104R10270RR9270R+512345678CHOCON8A01A23A12E14E25E36Y77GND8Y510Y69Y411Y312VDD16Y213Y015Y11474LS138+5C?104+5PATRUNSPEEDF/BON/OFFY0Y1Y2Y4Y6PFBONHMLRUNL采用A/D功能的按键:123456ABCD654321DCBATitleNumberRevisionSizeBDate:7-Feb-2006SheetofFile:E:\ckdocument\exercisedocument\touchbottonMCUModel\button.DDBDrawnBy:R11KR2200KC120pC2104R32.2MR410KC3104AGNDAGNDKEY1OSCIN4148VCC按键电极K1MCUAD口VDD1P0.3/XIN2P0.2/XOUT3P0.4/RST/VPP4P5.3/BZ1/PWM15P5.4/BZ0/PWM06P0.1/INT17P0.0/INT08P4.0/AIN0/VREFH9P4.1/AIN110P4.2/AIN211P4.3/AIN312P4.4/AIN413VSS14U4SN8P2711C5104+5R1110KHeatupheatpre/IRQDATA/WR/CSwaterlevel-1C6104S2UPS3DOWNS1MODER1215KR1330KR1482KR9100K+5KEYC7104NTC1NTC2S4TIMEbackLEDwaterlevel-2R15120K电阻取值时要考虑同时按下几键时也能产生一个不同的电压,且不能延伸太多按键触摸式按键:在目前MCU应用领域里,很多场合都离不开开关信号,这些开关信号的实现都是通过按键操作实现。而传统的按键应用最广最普遍的就是机械式按键(或称为B键),这一类按键的共同点就是透过金属触点来得到开关信号,也正是这些共同点决定了机械式按键的应用场合和使用寿命。如在一些带有油烟或腐蚀性气体的应用场合;另外,在很多小家电应用领域,也都是在模具表面开孔,使用PVC胶来做按键触摸点,这些PVC胶随着使用时间的增加也很容易损坏。因此,目前市场上出现了一种新型的按键输入方式——触摸式按键(或称感应型按键)。顾名思义,这种按键输入方式与传统机械式按键不同,它不需要金属触点,取而代之的是感应人体的触摸动作。目前市场上常见的触摸按键方案中,多为采用MCU+专用IC以及只用MCU实现两种,在MCU+专用IC方案中,具有代表性的触摸信号专用IC是英国昆腾(QUANTUM)公司的QT系列IC,如QT1080就是带有8路独立触摸按键输入的处理芯片。但是使用MCU+专用IC方案面临的一大挑战就是其抗干扰能力不强以及其成本较高的问题,也正是这一缺陷决定了在很多MCU应用场合这种方案显得有些无能为力了。下面就从应用的角度对采用独立MCU方案开发感应型按键的原理进行讨论。