1、,第七讲: 单片机应用系统设计,本讲重点:正确认识系统设计的基本原则,掌握简单任务分析的一般流程,尝试自己制定方案;对所举应用实例能消化理解,对部分模块能独立编程实现.,第七章 单片机应用系统设计与开发,系统设计应当考虑的主要技术性能 速度 精度 功耗 可靠性 驱动能力,基本设计原则 从系统功能需求出发设计功能模块显示,键盘,数据采集,检测,通信,控制,驱动,供电方式 从系统应用需求定位元器件资源分配定时/计数器,中断,串口,I/O引脚,A/D,D/A,信号调理,晶振频率 从开发条件与市场情况出发选择元器件仿真机,编程器,元器件,熟悉程度,编程语言 从系统可靠性需求确定系统设计工艺去耦,光隔,
2、屏蔽,印制板,低功耗,散热,传输距离/速度,节电方式,掉电保护,软件措施,基本设计原则(续) 从系统成本需求选择合理电路方案元器件,外壳,面板,键盘,显示,单/双面PCB,驱动 功能满足系统要求的前提下尽量以软代硬逻辑功能,滤波功能,译码功能,动态显示,模拟I2C、SPI总线,软ADC,加密,220V,J,P1.0 P1.1 P1,2 P1.3 P1.4 P1.5 P1.6 P1.7,语音芯片,语音输出,话音输入,振铃检测,DTMF 译码 8870,模拟摘机,电话机,P0.0 P0.3P2,0 P2.1 P2.2 P2.3 P2.4,远距离电话遥控装置(与书上P.235类似的一种应用),89C
3、51,晶振复位电路,电 话 外 线,单片机应用系统设计与开发实例1:,1.座机在无人值守情况下首先要通过光耦检测铃流,确定有电话打进。 2.振铃响过设定次数后,由三极管组成的模拟摘机电路执行摘话筒动作,给座机及相应电路供电。 3.通过APR9600语音电路发出“请输入密码”提示后,根据拨叫方输入的密码经MT8870译码后进行身份判识。身份不符则执行挂机操作。 4.相符则继续提示对方输入控制设备号(此处为07,可外连8个电器开关)和开/关动作类别(开1,关0),依此对相应执行电路输出控制信号。然后再提示对方输入下个要控制的设备号和开/关动作类别 5.直至对方发出操作结束信号(),就执行挂机操作。
4、,任务分析:,1.振铃检测电路是以光耦817为主构成的。当有振铃信号时,铃流进入817输入端1、2脚,4脚输出脉冲方波信号,送至AT89C51的/INT1端,由于语音信号和双音多频信号电压远低于振铃信号电压,该电路不会引起误判。 2.模拟摘机电路是由两个高压三极管组成,AT89C51输出高低电平,使三极管导通或截止,从而改变挂接在电话线上的阻抗来模拟摘机和挂机。 3.双音多频解码电路由电桥B1、电容C1、电阻R1及双音多频识别集成电路MT8870等组成。电桥起极性校正作用,信号经RC送至MT8870解码,最后输出相应的8421码,供单片机判识。 4.语音芯片SP+,SP-端受控将预先录好的语音
5、提示送至LM386进行放大,再经变压器T1耦合至电话回路,用户可从电话里听到系统控制语音芯片发出的提示,进行相应操作。,功能电路模块:,双音多频 DTMF Double Tone Multi Frequency:,每一个拨号音是由两 个正弦波单音混合而成。 4个高音和4个低音,有16种组合。,在电信信令中: “*”“#”仅作为开放电 信新型业务中作特殊识别 码。而“A”“B”“C” “D”作为备用码。,双音多频解码芯片MT8870D,特性: 完全的DTMF接收/解码器 低功耗 内建增益设置放大器 可调警卫时间 提供掉电模式和禁止模式 与MT8870C/MT8870C-1兼容,MT8870D片内
6、集成了裂带滤波器和数字解码功能,滤波器针对高音频和低音频采用了开关电容式滤波技术;译码器通过数字计数器对全部16个DTMF音频组合进行探测和译码。片上的差分输入放大器、时钟振荡电路和带锁存地三态接口仅需要极少的外接元件。,语音芯片APR9600,APR9600语音录放芯片,是继美国ISD公司以后采用模拟存储技术的又一款音质好、噪音低、不怕断电、可反复录放的新型语音电路,单片电路可录放32-60秒,串行控制时可分256段以上,并行控制时最大可分8段。与ISD同类芯片相比它具有:价格便宜,有多种手动控制方式,分段管理方便、多段控制时电路简单、采样速度及录放音时间可调、每个单键均有开始停止循环多种功
7、能等特点。,APR9600的全功能应用电路图,单片机应用系统设计与开发实例2:,电话锁+IP电话号码自动拨号器任务分析: 1、能限拨用户自己设定的电话号码能设定和清除限拨号码(可存40个号码)可开锁和上锁(启动限拨)能设置和修改密码忘记密码时可恢复默认密码 2、能快速拨出事先存入的IP卡号 3、无须另外为其供电,有“窃电”功能,IP电话自动拨号&电话号码限拨器电路设计,RST VCC,(RxD)P3.0 P1.7,(TxD)P3.1 P1.6,XTAL2 P1.5,(T0)P3.4 P1.1(Ain1),GND P3.7,XTAL1 P1.4,(INT0)P3.2 P1.3,(INT1)P3.
8、3 P1.2,(T1)P3.5 P1.0(Ain0),20脚DIP封装,主控单片机AT89C2051:20引脚,片内2KB FlashROM,MT8880,+Vcc,Mitel公司的DTMF编码/解码芯片:MT8880, 固定接线的引脚有:IN+,IN-,GS,Vref, Vss,VDD,St/GT,Est; RS0:寄存器选择控制端;2: =1表示(由音频转变成)数据准备好IRQ/CP:数据准备好时可向外部发出中断申请信号,TONE:DTMF音频输出端,IN-:DTMF音频输入端,OSC1,OSC2:接晶振端,R/W:读/写控制端,数据总线,24CXX系列E2PROM 2-线结构的串行CMO
9、S E2PROM,A0 VCC,A1 WP,A2 SCL,GND SDA,24C02,24C02:串行I2C总线(SDA,SCL)256字节E2PROMA2、A1、A0可寻址8片并联工作具有写保护功能(WP高有效),SDA,SCL,START BIT,STOP BIT,void START() /* 由SDA,SCL发起始信号 */ SCL=1; SDA=1; DELAY(1); /* 在SCL为“1” 的情况下 */SDA=0; DELAY(1); /* 令SDA产生负跳变 */SCL=0; void STOP() /* 由SDA,SCL发结束信号 */ SCL=1; SDA=0; DELA
10、Y(1); /* 在SCL为“1” 的情况下 */SDA=1; DELAY(50); /* 令SDA产生正跳变 */SCL=0 ; ,约 100S 的整数倍的延时子程序 void DELAY(unsigned int value) value=value*2; while (value!=0) value-; ,void WByte(char cw) /* 写一个字节进 24C02 */ char i; /* 变量cw放着待写进24C02的数据 */for(i=0; i8; i+) if( cw,char RByte() /* 从24C02读一个字节进MCU */ char r, i; /*
11、变量 r 存放读进的字节 */for(i=0; i8; i+) /* 读 8个位进单片机 */ r = r 1; /* 变量 r 左移一次 */if(SDA=1) r= r|0x01; /*若SDA端=1则 r最低位=1*/ else r = r /* 返回 r 的值 */ ,/* 写6个字节进24C02的address到address+5单元中 */ void WT2402(char address) char i; for(i=0; i6; i+) START(); /* 发送起始信号 */WByte(0xA0); /* 写入写地址的标志0xA0 */ WByte(address+i);
12、/* 写地址 */ WByte(WDatai); /* 将数据写入上述地址中 */ STOP(); /* 发送结束信号 */ ,void RD2402(char addr) /*从24C02的addr地址读6个字节*/ char i; for(i=0; i6; i+) START(); /* 发送起始信号 */WByte(0xA0); /* 写入写地址的标志0xA0 */ WByte(addr+i); /* 写地址 */ START(); /* 发送起始信号 */WByte(0xA1); /* 写入读数据的标志0xA1 */RDatai=RByte(); /* 读出一个字节数据 */ STOP
13、(); /* 发送结束信号 */ ,单片机控制步进电机 单片机的P1口直接按时序(相位)输出控制信号到功率电路,再驱动步进电机。,单片机应用系统设计与开发实例3:,步进电机工作原理,三相单3拍:A B C A B C 三相双3拍:AB BC CA AB BC 三相单、双6拍:AABBBCCCAA 四相单4拍:A B C D A B 四相双4拍:AB BC CD DA AB,各相绕组顺序轮流通电,令转子与定子带槽的小磁机极依次对齐,从而受控旋转。,A,A,B,B,C,C,定子,定子,转子,A,C,B,步进电机结构:,ABC三点共地,定子磁极端面开槽转子园柱面也开槽,转子,四相双4拍: AB BC
14、 CD DA AB BC CD DA ,(P1.0) A,C (P1.2),(P1.1),(P1.3),P1.3 P1.2 P1.1 P1.0,B,D,03 06 0C 09 03 06,步进电机工作原理,步进电机工作原理,四相双4拍:AB BC CD DA AB,P1.3 P1.2 P1.1 P1.0,03H06H0CH09H,硬件实验16,(P1.0) A,C (P1.2),(P1.1),(P1.3),B,D,主程序流程图:,SUNSZ: MOV P1,#03H FANSZ: MOV P1,#03HLCALL DELAY LCALL DELAYMOV P1,#06H MOV P1,#06H
15、LCALL DELAY LCALL DELAYMOV P1,#0CH MOV P1,#0CHLCALL DELAY LCALL DELAYMOV P1,#09H MOV P1,#09HLCALL DELAY LCALL DELAYSJMP SUNSZ SJMP FANSZ,顺时针转动模块:依次对P1口送03H,06H,0CH,09H 反时针转动模块:依次对P1口送09H,0CH,06H,03H 转动的快慢决定于延时模块DELAY延时长短。,&,&,1,1,P1.0,P1.1,P1.2,P1.3,P1.4,P1.5,PR2: MOV C,P1.1ORL C,P1.2 ;得到AANL C,P1.0CPL C ;得到BMOV F0,C ;暂存BMOV C,P1.3ANL C,/P1.4 ;得到DORL C,F0 ;得到结果MOV P1.5,C ;输出RET,A,C,B,D,书上例题:以软件实现电梯中的某逻辑电路功能,单片机应用系统设计与开发实例4:,OVER !,