1、四川理工学院电信系四川理工学院电信系第七讲:单片机应用系统设计本讲重点:本讲重点: 正确认识系统设计的基本原则正确认识系统设计的基本原则, ,掌握简单任掌握简单任 务分析的一般流程,尝试自己制定方案;务分析的一般流程,尝试自己制定方案; 对所举应用实例能消化理解,对部分模块能对所举应用实例能消化理解,对部分模块能 独立编程实现独立编程实现. .四川理工学院电信系四川理工学院电信系第七章第七章 单片机应用系统设计与开发单片机应用系统设计与开发系统设计应当考虑的主要技术性能系统设计应当考虑的主要技术性能速度速度 精度精度 功耗功耗 可靠性可靠性 驱动能力驱动能力 基本设计原则应当考虑:基本设计原则
2、应当考虑: 功能需求,应用需求,开发条件,市场功能需求,应用需求,开发条件,市场 情况,可靠性需求,成本需求,尽量以情况,可靠性需求,成本需求,尽量以 软代硬软代硬四川理工学院电信系四川理工学院电信系 基本设计原则基本设计原则从系统从系统功能需求功能需求出发设计功能模块出发设计功能模块 显示,键盘,数据采集,检测,通信,控制,显示,键盘,数据采集,检测,通信,控制, 驱动,供电方式驱动,供电方式从系统从系统应用需求应用需求定位元器件资源分配定位元器件资源分配 定时定时/ /计数器,中断,串口,计数器,中断,串口,I/OI/O引脚,引脚,A/DA/D, D/AD/A,信号调理,晶振频率,信号调理
3、,晶振频率从从开发条件与市场情况开发条件与市场情况出发选择元器件出发选择元器件 仿真机,编程器,元器件,熟悉程度,编程仿真机,编程器,元器件,熟悉程度,编程 语言语言从系统从系统可靠性需求可靠性需求确定系统设计工艺确定系统设计工艺 去耦,光隔,屏蔽,印制板,低功耗,散热,去耦,光隔,屏蔽,印制板,低功耗,散热, 传输距离传输距离/ /速度,节电方式,掉电保护,软件速度,节电方式,掉电保护,软件 措施措施四川理工学院电信系四川理工学院电信系 基本设计原则(续)基本设计原则(续)从系统从系统成本需求成本需求选择合理电路方案选择合理电路方案 元器件,外壳,面板,键盘,显示,单元器件,外壳,面板,键盘
4、,显示,单/ /双面双面 PCBPCB,驱动,驱动功能满足系统要求的前提下功能满足系统要求的前提下尽量以软代硬尽量以软代硬 逻辑功能,滤波功能,译码功能,动态显示,逻辑功能,滤波功能,译码功能,动态显示, 模拟模拟I I2 2C C、SPISPI总线,软总线,软ADCADC,加密,加密四川理工学院电信系四川理工学院电信系 220220V VJ JP1.0 P1.0 P1.1 P1.1 P1,2 P1,2 P1.3 P1.3 P1.4 P1.4 P1.5 P1.5 P1.6 P1.6 P1.7P1.7语音语音芯片芯片语音输出语音输出话音输入话音输入振铃振铃检测检测DTMF DTMF 译码译码 8
5、870 8870 模拟模拟摘机摘机电话机电话机P0.0 P0.0 P0.3P0.3 P2,0 P2,0 P2.1 P2.1 P2.2 P2.2 P2.3 P2.3 P2.4P2.4远距离电话遥控装置远距离电话遥控装置(与书上与书上P.235P.235类似的一种应用)类似的一种应用)8989C51C51晶振晶振复位复位电路电路电电 话话 外外 线线单片机应用系统设计与开发实例单片机应用系统设计与开发实例1 1:四川理工学院电信系四川理工学院电信系1.1.座机在无人值守情况下首先要通过光耦检测铃流,确定座机在无人值守情况下首先要通过光耦检测铃流,确定有电话打进。有电话打进。2.2.振铃响过设定次数
6、后,由三极管组成的模拟摘机电路执振铃响过设定次数后,由三极管组成的模拟摘机电路执行摘话筒动作,给座机及相应电路供电。行摘话筒动作,给座机及相应电路供电。3.3.通过通过APR9600APR9600语音电路发出语音电路发出“请输入密码请输入密码”提示后,根提示后,根据拨叫方输入的密码经据拨叫方输入的密码经MT8870MT8870译码后进行身份判识。身份译码后进行身份判识。身份不符则执行挂机操作。不符则执行挂机操作。4.4.相符则继续提示对方输入控制设备号(此处为相符则继续提示对方输入控制设备号(此处为0 07 7,可,可外连外连8 8个电器开关)和开个电器开关)和开/ /关动作类别(开关动作类别
7、(开1 1,关,关0 0),),依此对相应执行电路输出控制信号。然后再提示对方输入依此对相应执行电路输出控制信号。然后再提示对方输入下个要控制的设备号和开下个要控制的设备号和开/ /关动作类别关动作类别5.5.直至对方发出操作结束信号(),就执行挂机操作。直至对方发出操作结束信号(),就执行挂机操作。任务分析:任务分析:四川理工学院电信系四川理工学院电信系1.1.振铃检测电路振铃检测电路是以光耦是以光耦817817为主构成的。当有振铃信号时,为主构成的。当有振铃信号时,铃流进入铃流进入817817输入端输入端1 1、2 2脚,脚,4 4脚输出脉冲方波信号,送至脚输出脉冲方波信号,送至AT89C
8、51AT89C51的的/INT1/INT1端,由于语音信号和双音多频信号电压远低端,由于语音信号和双音多频信号电压远低于振铃信号电压,该电路不会引起误判。于振铃信号电压,该电路不会引起误判。 2.2.模拟摘机电路模拟摘机电路是由两个高压三极管组成,是由两个高压三极管组成,AT89C51AT89C51输出高输出高低电平,使三极管导通或截止,从而改变挂接在电话线上的低电平,使三极管导通或截止,从而改变挂接在电话线上的阻抗来模拟摘机和挂机。阻抗来模拟摘机和挂机。 3.3.双音多频解码电路双音多频解码电路由电桥由电桥B1B1、电容、电容C1C1、电阻、电阻R1R1及双音多频及双音多频识别集成电路识别集
9、成电路MT8870MT8870等组成。电桥起极性校正作用,信号经等组成。电桥起极性校正作用,信号经RCRC送至送至MT8870MT8870解码,最后输出相应的解码,最后输出相应的84218421码,供单片机判识。码,供单片机判识。4.4.语音芯片语音芯片SP+,SP-SP+,SP-端受控将预先录好的语音提示送至端受控将预先录好的语音提示送至LM386LM386进行放大,再经变压器进行放大,再经变压器T1T1耦合至电话回路,用户可从电话里耦合至电话回路,用户可从电话里听到系统控制语音芯片发出的提示,进行相应操作。听到系统控制语音芯片发出的提示,进行相应操作。 功能电路模块:功能电路模块:四川理工
10、学院电信系四川理工学院电信系双音多频双音多频 DTMFDTMF Double Tone Multi Double Tone Multi FrequencyFrequency:每一个拨号音是由两每一个拨号音是由两 个正弦波单音混合而成。个正弦波单音混合而成。 4 4个高音和个高音和4 4个低音个低音, ,有有1616种组合。种组合。在电信信令中:在电信信令中: “* *”“#”“#”仅作为开放电仅作为开放电 信新型业务中作特殊识别信新型业务中作特殊识别 码。而码。而“A”“B”“C”A”“B”“C” “D”“D”作为备用码。作为备用码。 四川理工学院电信系四川理工学院电信系双音多频解码芯片双音多
11、频解码芯片MT8870DMT8870D特性:特性:完全的完全的DTMFDTMF接收接收/ /解码器解码器低功耗低功耗内建增益设置放大器内建增益设置放大器可调警卫时间可调警卫时间提供掉电模式和禁止模式提供掉电模式和禁止模式与与MT8870C/MT8870C-1MT8870C/MT8870C-1兼容兼容 MT8870DMT8870D片内集成了裂带滤波器和数字解码功能片内集成了裂带滤波器和数字解码功能, ,滤波滤波器针对高音频和低音频采用了开关电容式滤波技术;译码器针对高音频和低音频采用了开关电容式滤波技术;译码器通过数字计数器对全部器通过数字计数器对全部1616个个DTMFDTMF音频组合进行探测
12、和译音频组合进行探测和译码。片上的差分输入放大器、时钟振荡电路和带锁存地三码。片上的差分输入放大器、时钟振荡电路和带锁存地三态接口仅需要极少的外接元件。态接口仅需要极少的外接元件。四川理工学院电信系四川理工学院电信系语音芯片语音芯片APR9600APR9600 APR9600 APR9600语音录放芯片,是继美国语音录放芯片,是继美国ISDISD公司以后公司以后采用模拟存储技术的又一款音质好、噪音低、不采用模拟存储技术的又一款音质好、噪音低、不怕断电、可反复录放的新型语音电路,单片电路怕断电、可反复录放的新型语音电路,单片电路可录放可录放32-6032-60秒,串行控制时可分秒,串行控制时可分
13、256256段以上,并段以上,并行控制时最大可分行控制时最大可分8 8段。与段。与ISDISD同类芯片相比它具同类芯片相比它具有:价格便宜,有多种手动控制方式,分段管理有:价格便宜,有多种手动控制方式,分段管理方便、多段控制时电路简单、采样速度及录放音方便、多段控制时电路简单、采样速度及录放音时间可调、每个单键均有开始停止循环多种功能时间可调、每个单键均有开始停止循环多种功能等特点。等特点。四川理工学院电信系四川理工学院电信系APR9600APR9600的全功能应用电路图的全功能应用电路图四川理工学院电信系四川理工学院电信系单片机应用系统设计与开发实例单片机应用系统设计与开发实例2 2:电话锁
14、电话锁+IP+IP电话号码自动拨号器任务分析:电话号码自动拨号器任务分析:1 1、能限拨用户自己设定的电话号码能限拨用户自己设定的电话号码 能设定和清除限拨号码(可存能设定和清除限拨号码(可存4040个号码)个号码) 可开锁和上锁(启动限拨)可开锁和上锁(启动限拨) 能设置和修改密码能设置和修改密码 忘记密码时可恢复默认密码忘记密码时可恢复默认密码2 2、能快速拨出事先存入的能快速拨出事先存入的IPIP卡号卡号3 3、无须另外为其供电,有无须另外为其供电,有“窃电窃电”功能功能四川理工学院电信系四川理工学院电信系IPIP电话自动拨号电话自动拨号& &电话号码限拨器电路设计电话号码限拨器电路设计
15、四川理工学院电信系四川理工学院电信系RST RST VCC VCC(RxD(RxD)P3.0 )P3.0 P1.7 P1.7(TxD(TxD)P3.1 )P3.1 P1.6 P1.6XTAL2 P1.5XTAL2 P1.5(T0)P3.4 P1.1(Ain1)(T0)P3.4 P1.1(Ain1)GND P3.7GND P3.7XTAL1 P1.4XTAL1 P1.4(INT0)P3.2 P1.3(INT0)P3.2 P1.3(INT1)P3.3 P1.2(INT1)P3.3 P1.2(T1)P3.5 P1.0(Ain0)(T1)P3.5 P1.0(Ain0)2020脚脚DIPDIP封装封装主
16、控单片机主控单片机AT89C2051AT89C2051:2020引脚引脚, ,片内片内2 2KB FlashROMKB FlashROM四川理工学院电信系四川理工学院电信系MT8880MT8880+Vcc+VccMitelMitel公司的公司的DTMFDTMF编码编码/ /解码芯片:解码芯片:MT8880MT8880 固定接线的引脚有固定接线的引脚有: :IN+,IN-,GS,Vref, VssIN+,IN-,GS,Vref, Vss,VDD,VDD, St/GT,Est St/GT,Est; RS0: RS0:寄存器选择控制端;寄存器选择控制端; 2: =12: =1表示表示( (由音频转变
17、成由音频转变成) )数据准备好数据准备好 IRQ/CP:IRQ/CP:数据准备好时可向外部发出中断申请信号数据准备好时可向外部发出中断申请信号TONE:DTMFTONE:DTMF音频输出端音频输出端IN-:DTMFIN-:DTMF音频输入端音频输入端OSC1,OSC2:OSC1,OSC2:接晶振端接晶振端R/W:R/W:读读/ /写控制端写控制端数数据据总总线线四川理工学院电信系四川理工学院电信系24CXX24CXX系列系列E E2 2PROMPROM2-2-线结构的串行线结构的串行CMOS ECMOS E2 2PROMPROM四川理工学院电信系四川理工学院电信系A0 VCCA0 VCCA1
18、WPA1 WPA2 SCLA2 SCLGND SDAGND SDA24C0224C022424C02C02: : 串行串行I I2 2C C总线(总线(SDASDA,SCLSCL) 256256字节字节E E2 2PROMPROM A2 A2、A1A1、A0A0可寻址可寻址8 8片并联工作片并联工作 具有写保护功能(具有写保护功能(WPWP高有效)高有效)SDASDASCLSCLSTART BITSTART BITSTOP BITSTOP BIT四川理工学院电信系四川理工学院电信系START: SETB SCLSTART: SETB SCL SETB SDA ; SETB SDA ;/ /*
19、* 由由SDA,SCLSDA,SCL发起始信号发起始信号 * */ / CALL DELAY ; CALL DELAY ;/ /* * 在在SCLSCL为为“1” 1” 的情况下的情况下 * */ / CLR SDA CLR SDA CALL DELAY CALL DELAY ;/ ;/* * 令令SDASDA产生产生负跳变负跳变 * */ / CLR SCL CLR SCL RET RET STOP: STOP: SETB SCL SETB SCL CLR SDA CLR SDA ; ;/ /* * 由由SDA,SCLSDA,SCL发结束信号发结束信号 * */ / CALL DELAY ;
20、 CALL DELAY ;/ /* * 在在SCLSCL为为“1” 1” 的情况下的情况下 * */ / SETB SDA SETB SDA CALL CALL DELAY ; DELAY ;/ /* * 令令SDASDA产生产生正跳变正跳变 * */ / RET RET四川理工学院电信系四川理工学院电信系约约 100100 S S 的整数倍的的整数倍的延时子程序延时子程序DELAY:DELAY:MOV R7,#32HMOV R7,#32HDELAY1: DJNZ R7,DELAY1DELAY1: DJNZ R7,DELAY1 RET RET 四川理工学院电信系四川理工学院电信系void WB
21、yte(char cwvoid WByte(char cw) ) / /* * 写一个字节进写一个字节进 24C02 24C02 * */ / char i; char i; / /* * 变量变量cwcw放着待写进放着待写进24C0224C02的数据的数据 * */ / for(i=0; i8; i+) for(i=0; i8; i+) if( cw if( cw&0 x80)!=0) SDA=1;&0 x80)!=0) SDA=1;/ /* *写一个写一个“bit”bit”进进2424C02C02* */ / else SDA=0; else SDA=0; cw=cw cw=cw1; DE
22、LAY(1); 1; DELAY(1); / /* * 将将cwcw左移一次左移一次 * */ / SCL=1; DELAY(1); SCL=1; DELAY(1); / /* * SCL SCL端送出一个时钟下跳沿端送出一个时钟下跳沿 * */ / SCL=0; SCL=0; DELAY(1); DELAY(1); / /* * SDA SDA端送出一个字节后延时端送出一个字节后延时1010uSuS * */ / SCL=1; DELAY(1); SCL=1; DELAY(1); / /* * 再发送再发送一个时钟下跳沿一个时钟下跳沿 * */ / SCL=0; DELAY(1); SCL=
23、0; DELAY(1); 四川理工学院电信系四川理工学院电信系char RBytechar RByte() () / /* * 从从24C0224C02读一个字节进读一个字节进MCU MCU * */ / char r, i; char r, i; / /* * 变量变量 r r 存放读进的字节存放读进的字节 * */ / for(i=0; i8; i+) for(i=0; i8; i+) / /* * 读读 8 8个位个位进单片机进单片机 * */ / r = r 1; r = r 1; / /* * 变量变量 r r 左移一次左移一次 * */ / if(SDA=1) r= r|0 x01
24、; if(SDA=1) r= r|0 x01; / /* *若若SDASDA端端=1=1则则 r r最低位最低位=1=1* */ / else r = r & 0 xfe; else r = r & 0 xfe; / /* * 若若SDASDA端端=0=0则则 r r最低位最低位=0 =0 * */ / SCL=1; DELAY(1); SCL=1; DELAY(1); / /* * 读进一个位后读进一个位后SCLSCL发下跳沿发下跳沿 * */ / SCL=0; DELAY(1); SCL=0; DELAY(1); return r; return r; / /* * 返回返回 r r 的值
25、的值 * */ / 四川理工学院电信系四川理工学院电信系/ /* * 写写6 6个字节进个字节进2424C02C02的的addressaddress到到address+5address+5单元中单元中 * */ /void WT2402(char address) void WT2402(char address) char i; char i; for(i=0; i6; i+) for(i=0; i6; i+) START(); START(); / /* * 发送发送起始信号起始信号 * */ / WByte WByte(0 xA0); (0 xA0); / /* * 写入写入写地址的标志
26、写地址的标志0 xA00 xA0 * */ / WByte WByte(address+i); (address+i); / /* * 写地址写地址 * */ / WByte(WData WByte(WDatai); i); / /* * 将数据写入上述地址中将数据写入上述地址中 * */ / STOP(); STOP(); / /* * 发送发送结束信号结束信号 * */ / 四川理工学院电信系四川理工学院电信系void RD2402(char void RD2402(char addraddr) ) / /* *从从2424C02C02的的addraddr地址读地址读6 6个字节个字节*
27、*/ / char i; char i; for(i=0; i6; i+) for(i=0; i6; i+) START(); START(); / /* * 发送发送起始信号起始信号 * */ / WByteWByte( (0 xA00 xA0); ); / /* * 写入写入写地址的标志写地址的标志0 0 xA0 xA0 * */ / WByte WByte( (addraddr+i); +i); / /* * 写写地址地址 * */ / START(); START(); / /* * 发送发送起始信号起始信号 * */ / WByteWByte( (0 xA10 xA1); ); /
28、/* * 写入写入读数据的标志读数据的标志0 0 xA1xA1 * */ / RDatai=RByte RDatai=RByte(); (); / /* * 读出一个字节数据读出一个字节数据 * */ / STOP(); STOP(); / /* * 发送发送结束信号结束信号 * */ / 四川理工学院电信系四川理工学院电信系单片机控制步进电机单片机控制步进电机单片机的单片机的P1P1口直接按时序(相位)输出控制口直接按时序(相位)输出控制信号到功率电路,再驱动步进电机。信号到功率电路,再驱动步进电机。单片机应用系统设计与开发实例单片机应用系统设计与开发实例3 3:四川理工学院电信系四川理工学
29、院电信系步进电机工作原理步进电机工作原理三相单三相单3 3拍:拍:A A B B C C A A B B C C三相双三相双3 3拍:拍:ABAB BCBC CACA ABAB BCBC三相单、双三相单、双6 6拍:拍:A AABABB BBCBCC CCACAA A四相单四相单4 4拍:拍:A A B B C C D D A A B B四相双四相双4 4拍拍:ABAB BCBC CDCD DADA ABAB各相绕组顺序轮流通电,令转子与定子带槽各相绕组顺序轮流通电,令转子与定子带槽的小磁机极依次对齐,从而受控旋转。的小磁机极依次对齐,从而受控旋转。四川理工学院电信系四川理工学院电信系A AA
30、AB BBBC CCC定子定子定子定子转子转子A ACCBB步进电机结构:步进电机结构:ABCABC三点三点共地共地定子磁极端面开槽定子磁极端面开槽转子园柱面也开槽转子园柱面也开槽转子转子四川理工学院电信系四川理工学院电信系四相双四相双4 4拍:拍:ABAB BC BC CD CD DA DA AB AB BC BC CD CD DA DA (P1.0) AC (P1.2)(P1.1)(P1.3)P1.3 P1.2 P1.1 P1.0 BD03 06 003 06 0C 09 03 C 09 03 0606步进电机工作原理步进电机工作原理四川理工学院电信系四川理工学院电信系步进电机工作原理步进
31、电机工作原理四相双四相双4 4拍:拍:AB AB BC BC CD CD DA DA AB AB P1.3 P1.2 P1.1 P1.00303H H06H06H0CH0CH09H09H硬件实验硬件实验1616(P1.0) AC (P1.2)(P1.1)(P1.3)BD四川理工学院电信系四川理工学院电信系主程序流程图:主程序流程图:四川理工学院电信系四川理工学院电信系SUNSZ: MOV P1,#03H FANSZ: MOV P1,#03H LCALL DELAY LCALL DELAY MOV P1,#06H MOV P1,#06H LCALL DELAY LCALL DELAY MOV P
32、1,#0CH MOV P1,#0CH LCALL DELAY LCALL DELAY MOV P1,#09H MOV P1,#09H LCALL DELAY LCALL DELAY SJMP SUNSZ SJMP FANSZ顺时针顺时针转动模块:依次对转动模块:依次对P1P1口送口送0303H H,06H06H,0CH,09H0CH,09H反时针反时针转动模块:依次对转动模块:依次对P1P1口送口送0909H H,0CH0CH,06H,03H06H,03H转动的快慢决定于延时模块转动的快慢决定于延时模块DELAYDELAY延时长短。延时长短。四川理工学院电信系四川理工学院电信系& & & 1
33、1 1 1P1.0P1.0P1.1P1.1P1.2P1.2P1.3P1.3P1.4P1.4P1.5P1.5PR2:PR2: MOV C,P1.1MOV C,P1.1ORL C,P1.2 ORL C,P1.2 ; ;得到得到A AANL C,P1.0ANL C,P1.0CPL C CPL C ; ;得到得到B BMOV F0,C MOV F0,C ; ;暂存暂存B BMOV C,P1.3MOV C,P1.3ANL C,/P1.4 ANL C,/P1.4 ; ;得到得到D DORL C,F0 ORL C,F0 ; ;得到结果得到结果MOV P1.5,C MOV P1.5,C ; ;输出输出RETRETA AC CB BD D书上例题:书上例题:以软件实现电梯中的某逻辑电路功能以软件实现电梯中的某逻辑电路功能单片机应用系统设计与开发实例单片机应用系统设计与开发实例4 4:四川理工学院电信系四川理工学院电信系OVER !