基于单片机的交通信号灯的设计 求详细···拜谢!
2个回答
展开全部
引言
近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。由于单片机面向的是控制性应用领域,且单片机的性能不断完善,品种大量增加,在功能、功耗、体积、价格等方面能满足各种复杂的或简单的应用场合需求,单片机应用深入到各行业和消费类的电子产品中,因此本产品也以单片机作为核心。
交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。随着中国加入WTO,我们不但要在经济、文化、科技等各方面与国际接轨,在交通控制方面也应与国际接轨。俗话说“要想富,先修路”,但路修好了如果在交通控制方面做不好道路还是无法保障畅通安全。作为交通控制的重要组成部份的交通信号灯也应国际化。因此,本人选择制作交通灯作为课题加以研究。又用AT89S52单片机实现与PC机之间的通讯时,必须使用电平转换接口芯片(本系统采用MAX232芯片),因为单片机输出的是TTL电平,必须经过电平转换才能和PC机的一致大多数的电脑设备都具有RS-232C接口,尽管它的性能指标并非很好。在广泛的市场支持下依然常胜不衰。就使用而言,RS-232也确实有其优势:仅需3根线便可在两个数字设备之间全双工的传送数据。不过,RS-232C的控制要比使用并行通讯的打印机接口更难于控制。RS-232C使用了远较并行口更多的寄存器。这些寄存器用来实现串行数据的传送及RS-232C设备之间的握手与流量控制。本文将分别描述PC机及单片机MCS-52的串行通讯的原理及具体的实现模拟交通信号灯的软件设计。
设计内容及要求
交通信号灯模拟控制系统设计利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭,用P0口做输出口,控制十二个发光二极管燃灭,模拟交通灯管理。在一个交通十字路口有一条主干道(东西方向),一条从干道(南北方向),主干道的通行时间比从干道通行时间长,四个路口安装红,黄,蓝,灯各一盏;(由于南北方向或东西方向的交通信号灯状态一致,故简化成6个二极管,以节约成本)。
(1)以单片机为核心兼容一部分扩展槽。
(2)设计一个十字路口的交通灯控制电路,要求南北方向(主干道)车道和东西方向(支干道)车道两条交叉道路上的车辆交替运行。
(3)在绿灯转为红灯时,要求黄灯先亮,才能变换运行车道。
(4)黄灯亮时,要求每秒闪亮一次。
(5)选做内容:显示交通信号灯亮的时间。
电路工作原理及分析
单片机交通信号灯系统的概述
本次设计的单片机交通信号灯系统是由AT89S52单片机为核心组成的最小系统加6个发光二极管组成。所谓的单片机最小系统或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统. 对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路等。
应用89S51(52)单片机设计并制作一个单片机最小系统,达到如下基本要求:
(1) 具有上电复位和手动复位功能。
(2) 使用单片机片内程序存储器。
(3) 具有一定的可扩展性,单片机I/O口可方便地与其他电路板连接。
为了节约成本,这次系统没有加入8255芯片而6个发光二极管直接与P0口相连,虽然信号衰减很厉害。
单片机最小系统
一般来说,单片机的最小系统包括电源(地),单片机,晶振(一般使用11.0592M或者12M),复位电路。有了以上三块内容,单片机就能够工作了。另外要注意的一点是,EA(31脚)也要接高电平,告诉单片机不使用片外存储器,这样单片机系统才会老老实实地执行你烧写进去的程序。下面简介主要的几个功能模块。
图3.2.1 单片机最小系统图
图3.2.2 串口接线图
单片机内部结构
单片机是把微型计算机的主要组成部分CPU、存储器、输入/输出接口等集成在一块超大规模集成电路芯片上。下图为典型的单片机内结构图。
它是由CPU系统、程序存储器、数据存储器、各种I/O端口、基本功能单元(定时器/计数器等)组成。
(1) CPU系统
CPU系统包括有CPU、时钟系统、复位、总线(BUS,即信号的公共通道)控制逻辑。
1 CPU
单片机中的CPU与微型计算机中的CPU有所不同,它的特点是,面向控制、面向嵌入系统、面向单芯片化。
2 时钟系统
时钟系统用于产生单片机工作所需的时钟信号。它必须满足CPU及单片机内各单元电路对时钟的要求。时钟振荡器的工作频率一般在1.2~12MHz。
3 复位电路
复位电路应满足上电复位、信号控制复位的要求。
4 总线控制逻辑
总线控制逻辑应满足CPU对内部总线和外部总线的控制要求。
(2) 程序存储器
程序存储器是一种只读存储器ROM(Read Only Memory),用它来固化单片机的应用程序和一些表格常数。单片机生产厂家按单片机内部程序存储器的不同结构,形成单片机的不同结构类型,计有:
1 Mask ROM型
由半导体生产厂家提供掩膜(生产集成电路的一种工艺)状态的程序存储器。使用这类单片机时,用户将调试奸的程序交给半导体生产厂家,在单片机掩膜工艺阶段将程序代码和数据掩膜到程序存储器中。这种存储器可靠性高、成本低,但程序只能一次生成不能修改,适合定型产品批量生产。
2 EPROM型
这是一种紫外线可擦程序存储器,使用这种存储器的单片机芯片上面开有一个透明窗口,可通过紫外线照射(一般照射5分钟左右)可擦除片内所有信息,使其内容全为“1”。这类存储器,用户自己就可以使用写入器S(市场上有产品销售)把程序方便地写入存储器。若需修改时,可用紫外线檫除后再重写。这种存储器用户使用方便,适合产品研制过程或试制过程使用。但这种存储器价钱较高,而且必须使用专用的写入器,修改时也较麻烦(需紫外线擦除且只能全部擦除)。
3 ROM less型
这是一种片内没有程序存储器的结构形式,必须在单片机片外扩展一定容量的EPROM器件。因此,这类单片机必须有并行扩展总线。
4 OTP ROM型
这是一种用户可一次性编程写入程序的程序存储器,写入程序时,用户需用专门的写入装置。这种单片机价钱便宜,适合定型的小批量产品,但写入的程序不能修改。
5 Flash ROM(MTP ROM)型
这是一种用户可多次编程写入的存储器。程序存储器闪速存储器(FlashMemory)。这种存储器只需输入一定条件的电信号,可擦除字节或整片信息,因此修改数据非常方便。
前三种程序存储器的单片机是早期的产品,目前EPROM、ROM Less型已较少使用。
(3) 数据存储器RAM
RAM是一种可读写的存储器,也叫随机存储器。单片机内部的RAM除了作为工作寄存器、位标志和堆栈区以外的单元都可以作为数据缓冲器使用,存放输入的数据或运算的结果。
由于单片机主要是面向测控系统,所以单片机内部的数据存储器容量较小,通常不多于256字节,而且都使用静态随机存储器SRAM(Static Random Access Memory)。
(4) 各种I/O端口
I/O端口是计算机的输入、输出接口(T是输入,O是输出之意)。单片机中的I/O端口都是芯片的辅入/输出引脚。这些I/O端口,可分为以下几种类型:
1 总线输入/输出端口
2 用户I/O端口。由用户用于外部电路的输入/输出控制。
3 单片机内部功能的输入/输出端口。例如,定时器/计数器的计数辅入、外部中断源辅入等。
为减少单片机引脚数量,一般I/O口都有复式功能。例如不使用外部总线时,总线端口可出让给用户做辅入/辅出端口用。
从I/O口的结构上还可以分为并行I/O口,即多位数据一起输出或输入,这种形式传送数据速度快但使用的引脚多。另—种I/O口称为串行I/O口,即传送数据是顺序输出或输入,这种形式可大大减少I/O口的引脚数,但传送数据较慢。
(5) 基本功能单元
基本功能单元是为满足单片机测控功能而设置的一些电路,是用来完善和扩大计算机功能的一些基本电路,如定时器/计数器,中断系统等。定时器/计数器在实际应用中作用非常大,如精确的定时,或者对外部事件进行计数等。
图3.2.3 单片机内部结构图
晶振电路
晶振电路:89S52等CMOS型单片机内部有一个可控的反相放大器,引脚XTAL1、XTAL2为反相放大器的输入端和输出端,在XTAL1,XTAL2上外接晶振(或陶瓷谐振器)和电容便成振荡器。下图为89S52的时钟电路框图。典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的uS级时歇,方便定时操作)
电容C1,C2的典型值为30pF±10pF(晶振)或40pF±10pF(陶瓷谐振器)。振荡器频率主要取决于晶振(或陶瓷谐振器)的频率,但必须小于器件所允许的最高频率。振荡器的工作受PCON·1控制,复位以后PCON·1=1振荡器工作,可由软件置“0”PCON·1,使振荡器停止振荡,从而使整个单片机停止工作,以达到节电目的。CMOS型单片机也可以从外部输入时钟。
图3.2.4 时钟电路图
复位电路
计算机在启动运行时都需要复位,使CPU和其他部件都置为一个确定的初始状态,并从这个状态开始工作。
(1) 复位电路原理:由电容串联电阻构成,由图并结合"电容电压不能突变"的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位.一般教科书推荐C 取10u,R取8.2K.当然也有其他取法的,原则就是要让RC组合可以在RST脚上产生不少于2个机周期的高电平.
(2) 复位电路:89S52等CMOS51系列单片机的复位引脚RST是史密特触发输入脚,内部有一个拉低电阻(电阻值为80K~300K)。当振荡器起振以后,在RST引脚上输入2个机器周期以上的高电平,器件便进入复位状态,此时ALE、PSEN、 P0、P1、P2、P3输出高电平,RST上输入返回低电平后,便退出复位状态开始工作。利用RST这个特性便可以设计复位电路。下面给出几种复位方式。
1 上电自动复位电路
89C52等CMOS型52单片机,只要在RST端接一个电容至Vcc,便可实现上电自动复位,在加电瞬间,电容通过内部电阻通电,在RST端出现充电正脉冲,只要正脉冲宽度足够宽,就能使89C52有效复位。RST在加电时应保持的高电平时间包括Vcc上升时间和振荡器起振时间,振荡器起振时间和频率有关,若Vcc的上升时间为10ms,振荡器的频率取12MHZ,则复位电容C的典型值为1μF。
2 人工开关复位
有些应用系统除上电自动复位以外,还需人工复位,将一个按钮开关并联于上电自动复位电路,在系统运行是,按一下开关,就在RST端出现一段时间高电平,是器件复位。
3 外部Watchdog电路复位
89C52等单片机内部没有定时监视器(Watchdog Timer),可以用单稳态电路在外部设计一个Watchdog。系统正常工作时,定是输出脉冲,使单稳态输出低电平,若系统软件出现故障时,未及时输出脉冲,单稳态电路翻转输出高电平,于是复位器件。
表3.3.1 复位后部分内部寄存器状态图
图3.3.1 两种复位电路图
主要芯片的技术参数
芯片
(1) AT89S52芯片的特性及功能描述
1 与 MCS-51单片机产品兼容
2 28K字节在系统可编程 Flash存储器
3 1000次擦写周期
4 全静态操作:0Hz~33Hz
5 三级加密程序存储器
6 32个可编程 I/O口线
7 三个 16位定时器/计数器
8 八个中断源
9 全双工 UART串行通道
10 低功耗空闲和掉电模式
11 掉电后中断可唤醒
12 看门狗定时器
13 双数据指针
14 掉电标识符
AT89S52是一种低功耗、高性能 CMOS8位微控制器,具有 8K在系统可编程 Flash存储器。使用 Atmel公司高密度非易失性存储器技术制造,与工业 80C51产品指令和引脚完全兼容。片上 Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的 8位 CPU和在系统可编程 Flash,使得 AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 AT89S52具有以下标准功能:8k字节 Flash,256字节 RAM, 32位 I/O口线,看门狗定时器,2个数据指针,三个 16位定时器/计数器,一个 6向量 2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至 0Hz静态逻辑操作,支持 2种软件可选择节电模式。空闲模式下,CPU停止工作,允许 RAM、定时器 /计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
图4.1.1 AT89S52芯片管脚图
(2) AT89S52芯片的引脚功能:
89S52的封装形式有PDIP-40、PQFP/TQFP-44、PLCC/LCC-44等,其中PDIP-40的引脚排列和逻辑符号如图7所示。AT89S52芯片用40Pin封装的双列直接DIP结构,它具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。在40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用,一根复位引脚,一根EA/Vpp引脚,一根 引脚,一根ALE/ 引脚。现在我们对这些引脚的功能加以说明:
VCC : 电源
GND:地
P0口:P0口是一个 8位漏极开路的双向 I/O口。作为输出口,每位能驱动 8个 TTL逻辑电平。对 P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低 8位地址/数据复用。在这种模式下, P0具有内部上拉电阻。在 flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。
P1口:P1口是一个具有内部上拉电阻的 8位双向 I/O口,p1输出缓冲器能驱动 4个 TTL逻辑电平。对 P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和 P1.2分别作定时器/计数器 2的外部计数输入(P1.0/T2)和时器/计数器 2的触发输入(P1.1/T2EX),具体如下表所示。在 flash编程和校验时,P1口接收低 8位地址字节。
P2口:P2口是一个具有内部上拉电阻的 8位双向 I/O口,P2输出缓冲器能驱动 4个 TTL逻辑电平。对 P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用 16位地址读取外部数据存储器(例如执行 MOVX @DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送 1。在使用 8位地址(如 MOVX @RI)访问外部数据存储器时,P2口输出 P2锁存器的内容。在 flash编程和校验时,P2口也接收高 8位地址字节和一些控制信号。
P3口:P3口是一个具有内部上拉电阻的 8位双向 I/O口,p2输出缓冲器能驱动 4个 TTL逻辑电平。对 P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 P3口亦作为 AT89S52特殊功能(第二功能)使用,如下表所示。在 flash编程和校验时,P3口也接收一些控制信号。
表4.1.1 P1口第二功能表
表4.1.2 P3口的第二功能表
(3) AT89S52单片机内部结构
单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿Princeton)结构。INTEL的MCS-51系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则采用普林斯顿结构。
AT89S52单片机包含中央处理器、程序存储器(FLASH)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:
1 中央处理器:
中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
2 数据存储器(RAM):
AT89S52内部有256个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据。
3 程序存储器(ROM):
AT89S52共有8k个8位掩膜ROM,用于存放用户程序。
4 定时/计数器(ROM):
AT89S52有3个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。
5 并行输入输出(I/O)口:
AT89S52共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。
6 全双工串行口:
AT89S52内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。
7 中断系统:
AT89S52具备较完善的中断功能,有两个外中断、3个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。
8 时钟电路:
AT89S52内置最高频率达24MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但AT89S52单片机需外置振荡电容。
图4.1.1 AT89S52芯片内部结构图
芯片
max232是一种把电脑的串行口rs232信号电平(-10 ,+10v)转换为单片机所用到的TTL信号点平(0 ,+5)的芯片,下面我来介绍一下max232引脚图以及max232和电脑串口的连接电路,RS232引脚定义。看下面的图。
图4.2.1 max232的引脚图
图4.2.2 max232的接线图
表4.2.1 RS232引脚定义表
引脚
定义
符号
1
载波检测
DCD
2
接收数据
RXD
3
发送数据
TXD
4
数据终端准备好
DTR
5
信号地
SG
6
数据准备好
DSR
7
请求发送
RTS
8
清除发送
CTS
9
振铃提示
RI
表4.2.2 max232的一些测试参数
组装及调试
划分出相互独立的电路模块,便于分别安装调试。每安装好一个模块,就上电测试一下。
(1)硬件调试:
硬件调试是利用DVCC实验与开发系统、基本测试仪器(万用表、示波器等),检查用户系统硬件中存在的故障。其中硬件调试可分为静态调试与动态调试两步进行。
静态调试是在用户系统未工作时的一种硬件检测。
第一步:目测。检查外部的各种元件或者是电路是否有断点。
第二步用万用表测试。先用万用表复核目测中有疑问的连接点,再检测各种电源线与地线之间是否有短路现象。
第三步加电检测。给板加电,检测所有插座或是器件的电源端是否符合要求的值
第四步是联机检查。因为只有用单片机开发系统才能完成对用户系统的调试。
动态调试是在用户系统工作的情况下发现和排除用户系统硬件中存在的器件内部故障、器件连接逻辑错误等的一种硬件检查。动态调试的一般方法是由近及远、由分到合。由分到合是指首先按逻辑功能将用户系统硬件电路分为若干块,当调试电路时,与该元件无关的 器件全部从用户系统中去掉,这样可以将故障范围限定在某个局部的电路上。当各块电路无故障后,将各电路逐块加入系统中,在对各块电路功能及各电路间可能存在的相互联系进行调试。由分到合的调试既告完成。由近及远是将信号流经的各器件按照距离单片机的逻辑距离进行由近及远的分层,然后分层调试。调试时,仍采用去掉无关元件的方法,逐层调试下去,就会定位故障元件了。
(2)软件调试:
软件调试是通过对程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。用软件WAVE6000进行调试。
设计总结
这次课程设计碰到了不少困难,也走了不少弯路。因此想给参考者讲述自己的一些经验:
(1)在设计电路图时除了要择优电路之外,还应当考虑经济性。因为课程设计的目的是为了提高我们的动手能力,所以应把经济作为第一考虑要素。
(2)用protel 99SE制作原理图时一定要清楚管脚标号的顺序,这是为让封装做得更好而做的准备。当然最好的是自己建立一个元件库,这样做可使自己做的原理图可读性更好,可移植性也更好。另外要注意的是一定要有控制元件工作的电源(一般都是5v左右)。还有就是网络标号一定要保证正确。总之一定要按部就班,不可跳步骤,这会对接下来的工作繁琐度有很大的影响。
(3)在做PCB板图时,针对这个电路最好先自动布局看清大概,然后手工布局。要手工布线。这是因为电路元件较少,人工布局排线更好。单层布线最好先手工布线后自动布线。为保证后期制作电路板的质量,要注意焊孔的类型及尺寸。针对现有技术及考虑到发热量等各方面,电线宽度最好要大于15mil。
(4)电路板的制作过程没什么感想,就按步骤来就可以了。在焊接过程中一定要保证焊接质量,这对以后的调试有重大影响。同时焊接质量好坏对仪器的精度有一定的影响。在焊接过程中一定要注意管脚标号。注意不要焊得太久,以免烧坏元器件。
通过这次对单片机交通信号灯的设计与制作,使我了解了设计一个嵌入式产品的大概流程,在这次设计中让我学到了不少东西。本系统是以单片机AT89S52芯片为核心部件,实现了能根据实际车流量通过AT89S52芯片设置红、绿灯燃亮时间的功能。此次在软件上是花费时间最多的,我们上网找资料,上图书馆,尽可能的了解有关于交通灯这方面的知识。通过这次计算机课程设计,使我得到了一次用理论知识、实践技能和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步。在实际接线中有着各种各样的条件制约着,因此结果并不重要,我们要重视过程,我们懂得了过程,学到了方法就是我们最大的收获。在设计时应考虑诸多因素与实际的差异,从诸多方法中选择最优的就可以了。
[1] 张友德等编.单片微型机原理、应用与实验.上海:复旦大学出版社,2008年
[2] 王守中编.51单片机开发入门与典型实例.北京:人民邮电出版社,2007年
[3] 靳达编.单片机应用系统开发实例导航. 北京:人民邮电出版社,2003年
[4] 郑初华编.汇编语言、微机原理及接口技术.北京:电子工业出版社,2008年
转眼间,二周的时间快过去了!通过这两周的计算机课程设计实践,使我很荣幸和大家一起共度难关。最后的成果是比较令人满意的。这次实验设计也随着这份报告将画上一个圆满的句号。显然能够完成这次任务是大家共同努力的功劳,因此,在此我要感谢大家的支持及协作。首先我要感谢的是我的总指导——吴伟老师,他们的帮助对这次设计的成功是不言而喻的,尤其是给我讲解一些有实际操作性的经验。这使我够胜任这一任务。其次要感谢的是我周围的同学,是他们帮我解决了一些工作中的困难和解答了我遇到的一些疑惑,也感谢他们给我提出的一些建议。当然我也要感谢我所在团队的全体人员,虽然全队是分配任务的,但是他们还是热心的帮了我不少忙,所以我要感谢我们全体队员的通力合作。另外我还要感谢学校及厂家。感谢学校能给我们提供一个动手平台,感谢学校给我提供一些元器件、设备和场地。感谢厂家是因为他们提供的一些实际参数使我能合理地规划PCB板图等。最后我想对他们说的是:“感谢你们提供帮助!衷心感谢你们!谢谢!”
近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。由于单片机面向的是控制性应用领域,且单片机的性能不断完善,品种大量增加,在功能、功耗、体积、价格等方面能满足各种复杂的或简单的应用场合需求,单片机应用深入到各行业和消费类的电子产品中,因此本产品也以单片机作为核心。
交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。随着中国加入WTO,我们不但要在经济、文化、科技等各方面与国际接轨,在交通控制方面也应与国际接轨。俗话说“要想富,先修路”,但路修好了如果在交通控制方面做不好道路还是无法保障畅通安全。作为交通控制的重要组成部份的交通信号灯也应国际化。因此,本人选择制作交通灯作为课题加以研究。又用AT89S52单片机实现与PC机之间的通讯时,必须使用电平转换接口芯片(本系统采用MAX232芯片),因为单片机输出的是TTL电平,必须经过电平转换才能和PC机的一致大多数的电脑设备都具有RS-232C接口,尽管它的性能指标并非很好。在广泛的市场支持下依然常胜不衰。就使用而言,RS-232也确实有其优势:仅需3根线便可在两个数字设备之间全双工的传送数据。不过,RS-232C的控制要比使用并行通讯的打印机接口更难于控制。RS-232C使用了远较并行口更多的寄存器。这些寄存器用来实现串行数据的传送及RS-232C设备之间的握手与流量控制。本文将分别描述PC机及单片机MCS-52的串行通讯的原理及具体的实现模拟交通信号灯的软件设计。
设计内容及要求
交通信号灯模拟控制系统设计利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭,用P0口做输出口,控制十二个发光二极管燃灭,模拟交通灯管理。在一个交通十字路口有一条主干道(东西方向),一条从干道(南北方向),主干道的通行时间比从干道通行时间长,四个路口安装红,黄,蓝,灯各一盏;(由于南北方向或东西方向的交通信号灯状态一致,故简化成6个二极管,以节约成本)。
(1)以单片机为核心兼容一部分扩展槽。
(2)设计一个十字路口的交通灯控制电路,要求南北方向(主干道)车道和东西方向(支干道)车道两条交叉道路上的车辆交替运行。
(3)在绿灯转为红灯时,要求黄灯先亮,才能变换运行车道。
(4)黄灯亮时,要求每秒闪亮一次。
(5)选做内容:显示交通信号灯亮的时间。
电路工作原理及分析
单片机交通信号灯系统的概述
本次设计的单片机交通信号灯系统是由AT89S52单片机为核心组成的最小系统加6个发光二极管组成。所谓的单片机最小系统或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统. 对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路等。
应用89S51(52)单片机设计并制作一个单片机最小系统,达到如下基本要求:
(1) 具有上电复位和手动复位功能。
(2) 使用单片机片内程序存储器。
(3) 具有一定的可扩展性,单片机I/O口可方便地与其他电路板连接。
为了节约成本,这次系统没有加入8255芯片而6个发光二极管直接与P0口相连,虽然信号衰减很厉害。
单片机最小系统
一般来说,单片机的最小系统包括电源(地),单片机,晶振(一般使用11.0592M或者12M),复位电路。有了以上三块内容,单片机就能够工作了。另外要注意的一点是,EA(31脚)也要接高电平,告诉单片机不使用片外存储器,这样单片机系统才会老老实实地执行你烧写进去的程序。下面简介主要的几个功能模块。
图3.2.1 单片机最小系统图
图3.2.2 串口接线图
单片机内部结构
单片机是把微型计算机的主要组成部分CPU、存储器、输入/输出接口等集成在一块超大规模集成电路芯片上。下图为典型的单片机内结构图。
它是由CPU系统、程序存储器、数据存储器、各种I/O端口、基本功能单元(定时器/计数器等)组成。
(1) CPU系统
CPU系统包括有CPU、时钟系统、复位、总线(BUS,即信号的公共通道)控制逻辑。
1 CPU
单片机中的CPU与微型计算机中的CPU有所不同,它的特点是,面向控制、面向嵌入系统、面向单芯片化。
2 时钟系统
时钟系统用于产生单片机工作所需的时钟信号。它必须满足CPU及单片机内各单元电路对时钟的要求。时钟振荡器的工作频率一般在1.2~12MHz。
3 复位电路
复位电路应满足上电复位、信号控制复位的要求。
4 总线控制逻辑
总线控制逻辑应满足CPU对内部总线和外部总线的控制要求。
(2) 程序存储器
程序存储器是一种只读存储器ROM(Read Only Memory),用它来固化单片机的应用程序和一些表格常数。单片机生产厂家按单片机内部程序存储器的不同结构,形成单片机的不同结构类型,计有:
1 Mask ROM型
由半导体生产厂家提供掩膜(生产集成电路的一种工艺)状态的程序存储器。使用这类单片机时,用户将调试奸的程序交给半导体生产厂家,在单片机掩膜工艺阶段将程序代码和数据掩膜到程序存储器中。这种存储器可靠性高、成本低,但程序只能一次生成不能修改,适合定型产品批量生产。
2 EPROM型
这是一种紫外线可擦程序存储器,使用这种存储器的单片机芯片上面开有一个透明窗口,可通过紫外线照射(一般照射5分钟左右)可擦除片内所有信息,使其内容全为“1”。这类存储器,用户自己就可以使用写入器S(市场上有产品销售)把程序方便地写入存储器。若需修改时,可用紫外线檫除后再重写。这种存储器用户使用方便,适合产品研制过程或试制过程使用。但这种存储器价钱较高,而且必须使用专用的写入器,修改时也较麻烦(需紫外线擦除且只能全部擦除)。
3 ROM less型
这是一种片内没有程序存储器的结构形式,必须在单片机片外扩展一定容量的EPROM器件。因此,这类单片机必须有并行扩展总线。
4 OTP ROM型
这是一种用户可一次性编程写入程序的程序存储器,写入程序时,用户需用专门的写入装置。这种单片机价钱便宜,适合定型的小批量产品,但写入的程序不能修改。
5 Flash ROM(MTP ROM)型
这是一种用户可多次编程写入的存储器。程序存储器闪速存储器(FlashMemory)。这种存储器只需输入一定条件的电信号,可擦除字节或整片信息,因此修改数据非常方便。
前三种程序存储器的单片机是早期的产品,目前EPROM、ROM Less型已较少使用。
(3) 数据存储器RAM
RAM是一种可读写的存储器,也叫随机存储器。单片机内部的RAM除了作为工作寄存器、位标志和堆栈区以外的单元都可以作为数据缓冲器使用,存放输入的数据或运算的结果。
由于单片机主要是面向测控系统,所以单片机内部的数据存储器容量较小,通常不多于256字节,而且都使用静态随机存储器SRAM(Static Random Access Memory)。
(4) 各种I/O端口
I/O端口是计算机的输入、输出接口(T是输入,O是输出之意)。单片机中的I/O端口都是芯片的辅入/输出引脚。这些I/O端口,可分为以下几种类型:
1 总线输入/输出端口
2 用户I/O端口。由用户用于外部电路的输入/输出控制。
3 单片机内部功能的输入/输出端口。例如,定时器/计数器的计数辅入、外部中断源辅入等。
为减少单片机引脚数量,一般I/O口都有复式功能。例如不使用外部总线时,总线端口可出让给用户做辅入/辅出端口用。
从I/O口的结构上还可以分为并行I/O口,即多位数据一起输出或输入,这种形式传送数据速度快但使用的引脚多。另—种I/O口称为串行I/O口,即传送数据是顺序输出或输入,这种形式可大大减少I/O口的引脚数,但传送数据较慢。
(5) 基本功能单元
基本功能单元是为满足单片机测控功能而设置的一些电路,是用来完善和扩大计算机功能的一些基本电路,如定时器/计数器,中断系统等。定时器/计数器在实际应用中作用非常大,如精确的定时,或者对外部事件进行计数等。
图3.2.3 单片机内部结构图
晶振电路
晶振电路:89S52等CMOS型单片机内部有一个可控的反相放大器,引脚XTAL1、XTAL2为反相放大器的输入端和输出端,在XTAL1,XTAL2上外接晶振(或陶瓷谐振器)和电容便成振荡器。下图为89S52的时钟电路框图。典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的uS级时歇,方便定时操作)
电容C1,C2的典型值为30pF±10pF(晶振)或40pF±10pF(陶瓷谐振器)。振荡器频率主要取决于晶振(或陶瓷谐振器)的频率,但必须小于器件所允许的最高频率。振荡器的工作受PCON·1控制,复位以后PCON·1=1振荡器工作,可由软件置“0”PCON·1,使振荡器停止振荡,从而使整个单片机停止工作,以达到节电目的。CMOS型单片机也可以从外部输入时钟。
图3.2.4 时钟电路图
复位电路
计算机在启动运行时都需要复位,使CPU和其他部件都置为一个确定的初始状态,并从这个状态开始工作。
(1) 复位电路原理:由电容串联电阻构成,由图并结合"电容电压不能突变"的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位.一般教科书推荐C 取10u,R取8.2K.当然也有其他取法的,原则就是要让RC组合可以在RST脚上产生不少于2个机周期的高电平.
(2) 复位电路:89S52等CMOS51系列单片机的复位引脚RST是史密特触发输入脚,内部有一个拉低电阻(电阻值为80K~300K)。当振荡器起振以后,在RST引脚上输入2个机器周期以上的高电平,器件便进入复位状态,此时ALE、PSEN、 P0、P1、P2、P3输出高电平,RST上输入返回低电平后,便退出复位状态开始工作。利用RST这个特性便可以设计复位电路。下面给出几种复位方式。
1 上电自动复位电路
89C52等CMOS型52单片机,只要在RST端接一个电容至Vcc,便可实现上电自动复位,在加电瞬间,电容通过内部电阻通电,在RST端出现充电正脉冲,只要正脉冲宽度足够宽,就能使89C52有效复位。RST在加电时应保持的高电平时间包括Vcc上升时间和振荡器起振时间,振荡器起振时间和频率有关,若Vcc的上升时间为10ms,振荡器的频率取12MHZ,则复位电容C的典型值为1μF。
2 人工开关复位
有些应用系统除上电自动复位以外,还需人工复位,将一个按钮开关并联于上电自动复位电路,在系统运行是,按一下开关,就在RST端出现一段时间高电平,是器件复位。
3 外部Watchdog电路复位
89C52等单片机内部没有定时监视器(Watchdog Timer),可以用单稳态电路在外部设计一个Watchdog。系统正常工作时,定是输出脉冲,使单稳态输出低电平,若系统软件出现故障时,未及时输出脉冲,单稳态电路翻转输出高电平,于是复位器件。
表3.3.1 复位后部分内部寄存器状态图
图3.3.1 两种复位电路图
主要芯片的技术参数
芯片
(1) AT89S52芯片的特性及功能描述
1 与 MCS-51单片机产品兼容
2 28K字节在系统可编程 Flash存储器
3 1000次擦写周期
4 全静态操作:0Hz~33Hz
5 三级加密程序存储器
6 32个可编程 I/O口线
7 三个 16位定时器/计数器
8 八个中断源
9 全双工 UART串行通道
10 低功耗空闲和掉电模式
11 掉电后中断可唤醒
12 看门狗定时器
13 双数据指针
14 掉电标识符
AT89S52是一种低功耗、高性能 CMOS8位微控制器,具有 8K在系统可编程 Flash存储器。使用 Atmel公司高密度非易失性存储器技术制造,与工业 80C51产品指令和引脚完全兼容。片上 Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的 8位 CPU和在系统可编程 Flash,使得 AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 AT89S52具有以下标准功能:8k字节 Flash,256字节 RAM, 32位 I/O口线,看门狗定时器,2个数据指针,三个 16位定时器/计数器,一个 6向量 2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至 0Hz静态逻辑操作,支持 2种软件可选择节电模式。空闲模式下,CPU停止工作,允许 RAM、定时器 /计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
图4.1.1 AT89S52芯片管脚图
(2) AT89S52芯片的引脚功能:
89S52的封装形式有PDIP-40、PQFP/TQFP-44、PLCC/LCC-44等,其中PDIP-40的引脚排列和逻辑符号如图7所示。AT89S52芯片用40Pin封装的双列直接DIP结构,它具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。在40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用,一根复位引脚,一根EA/Vpp引脚,一根 引脚,一根ALE/ 引脚。现在我们对这些引脚的功能加以说明:
VCC : 电源
GND:地
P0口:P0口是一个 8位漏极开路的双向 I/O口。作为输出口,每位能驱动 8个 TTL逻辑电平。对 P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低 8位地址/数据复用。在这种模式下, P0具有内部上拉电阻。在 flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。
P1口:P1口是一个具有内部上拉电阻的 8位双向 I/O口,p1输出缓冲器能驱动 4个 TTL逻辑电平。对 P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和 P1.2分别作定时器/计数器 2的外部计数输入(P1.0/T2)和时器/计数器 2的触发输入(P1.1/T2EX),具体如下表所示。在 flash编程和校验时,P1口接收低 8位地址字节。
P2口:P2口是一个具有内部上拉电阻的 8位双向 I/O口,P2输出缓冲器能驱动 4个 TTL逻辑电平。对 P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用 16位地址读取外部数据存储器(例如执行 MOVX @DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送 1。在使用 8位地址(如 MOVX @RI)访问外部数据存储器时,P2口输出 P2锁存器的内容。在 flash编程和校验时,P2口也接收高 8位地址字节和一些控制信号。
P3口:P3口是一个具有内部上拉电阻的 8位双向 I/O口,p2输出缓冲器能驱动 4个 TTL逻辑电平。对 P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 P3口亦作为 AT89S52特殊功能(第二功能)使用,如下表所示。在 flash编程和校验时,P3口也接收一些控制信号。
表4.1.1 P1口第二功能表
表4.1.2 P3口的第二功能表
(3) AT89S52单片机内部结构
单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿Princeton)结构。INTEL的MCS-51系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则采用普林斯顿结构。
AT89S52单片机包含中央处理器、程序存储器(FLASH)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:
1 中央处理器:
中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
2 数据存储器(RAM):
AT89S52内部有256个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据。
3 程序存储器(ROM):
AT89S52共有8k个8位掩膜ROM,用于存放用户程序。
4 定时/计数器(ROM):
AT89S52有3个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。
5 并行输入输出(I/O)口:
AT89S52共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。
6 全双工串行口:
AT89S52内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。
7 中断系统:
AT89S52具备较完善的中断功能,有两个外中断、3个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。
8 时钟电路:
AT89S52内置最高频率达24MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但AT89S52单片机需外置振荡电容。
图4.1.1 AT89S52芯片内部结构图
芯片
max232是一种把电脑的串行口rs232信号电平(-10 ,+10v)转换为单片机所用到的TTL信号点平(0 ,+5)的芯片,下面我来介绍一下max232引脚图以及max232和电脑串口的连接电路,RS232引脚定义。看下面的图。
图4.2.1 max232的引脚图
图4.2.2 max232的接线图
表4.2.1 RS232引脚定义表
引脚
定义
符号
1
载波检测
DCD
2
接收数据
RXD
3
发送数据
TXD
4
数据终端准备好
DTR
5
信号地
SG
6
数据准备好
DSR
7
请求发送
RTS
8
清除发送
CTS
9
振铃提示
RI
表4.2.2 max232的一些测试参数
组装及调试
划分出相互独立的电路模块,便于分别安装调试。每安装好一个模块,就上电测试一下。
(1)硬件调试:
硬件调试是利用DVCC实验与开发系统、基本测试仪器(万用表、示波器等),检查用户系统硬件中存在的故障。其中硬件调试可分为静态调试与动态调试两步进行。
静态调试是在用户系统未工作时的一种硬件检测。
第一步:目测。检查外部的各种元件或者是电路是否有断点。
第二步用万用表测试。先用万用表复核目测中有疑问的连接点,再检测各种电源线与地线之间是否有短路现象。
第三步加电检测。给板加电,检测所有插座或是器件的电源端是否符合要求的值
第四步是联机检查。因为只有用单片机开发系统才能完成对用户系统的调试。
动态调试是在用户系统工作的情况下发现和排除用户系统硬件中存在的器件内部故障、器件连接逻辑错误等的一种硬件检查。动态调试的一般方法是由近及远、由分到合。由分到合是指首先按逻辑功能将用户系统硬件电路分为若干块,当调试电路时,与该元件无关的 器件全部从用户系统中去掉,这样可以将故障范围限定在某个局部的电路上。当各块电路无故障后,将各电路逐块加入系统中,在对各块电路功能及各电路间可能存在的相互联系进行调试。由分到合的调试既告完成。由近及远是将信号流经的各器件按照距离单片机的逻辑距离进行由近及远的分层,然后分层调试。调试时,仍采用去掉无关元件的方法,逐层调试下去,就会定位故障元件了。
(2)软件调试:
软件调试是通过对程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。用软件WAVE6000进行调试。
设计总结
这次课程设计碰到了不少困难,也走了不少弯路。因此想给参考者讲述自己的一些经验:
(1)在设计电路图时除了要择优电路之外,还应当考虑经济性。因为课程设计的目的是为了提高我们的动手能力,所以应把经济作为第一考虑要素。
(2)用protel 99SE制作原理图时一定要清楚管脚标号的顺序,这是为让封装做得更好而做的准备。当然最好的是自己建立一个元件库,这样做可使自己做的原理图可读性更好,可移植性也更好。另外要注意的是一定要有控制元件工作的电源(一般都是5v左右)。还有就是网络标号一定要保证正确。总之一定要按部就班,不可跳步骤,这会对接下来的工作繁琐度有很大的影响。
(3)在做PCB板图时,针对这个电路最好先自动布局看清大概,然后手工布局。要手工布线。这是因为电路元件较少,人工布局排线更好。单层布线最好先手工布线后自动布线。为保证后期制作电路板的质量,要注意焊孔的类型及尺寸。针对现有技术及考虑到发热量等各方面,电线宽度最好要大于15mil。
(4)电路板的制作过程没什么感想,就按步骤来就可以了。在焊接过程中一定要保证焊接质量,这对以后的调试有重大影响。同时焊接质量好坏对仪器的精度有一定的影响。在焊接过程中一定要注意管脚标号。注意不要焊得太久,以免烧坏元器件。
通过这次对单片机交通信号灯的设计与制作,使我了解了设计一个嵌入式产品的大概流程,在这次设计中让我学到了不少东西。本系统是以单片机AT89S52芯片为核心部件,实现了能根据实际车流量通过AT89S52芯片设置红、绿灯燃亮时间的功能。此次在软件上是花费时间最多的,我们上网找资料,上图书馆,尽可能的了解有关于交通灯这方面的知识。通过这次计算机课程设计,使我得到了一次用理论知识、实践技能和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步。在实际接线中有着各种各样的条件制约着,因此结果并不重要,我们要重视过程,我们懂得了过程,学到了方法就是我们最大的收获。在设计时应考虑诸多因素与实际的差异,从诸多方法中选择最优的就可以了。
[1] 张友德等编.单片微型机原理、应用与实验.上海:复旦大学出版社,2008年
[2] 王守中编.51单片机开发入门与典型实例.北京:人民邮电出版社,2007年
[3] 靳达编.单片机应用系统开发实例导航. 北京:人民邮电出版社,2003年
[4] 郑初华编.汇编语言、微机原理及接口技术.北京:电子工业出版社,2008年
转眼间,二周的时间快过去了!通过这两周的计算机课程设计实践,使我很荣幸和大家一起共度难关。最后的成果是比较令人满意的。这次实验设计也随着这份报告将画上一个圆满的句号。显然能够完成这次任务是大家共同努力的功劳,因此,在此我要感谢大家的支持及协作。首先我要感谢的是我的总指导——吴伟老师,他们的帮助对这次设计的成功是不言而喻的,尤其是给我讲解一些有实际操作性的经验。这使我够胜任这一任务。其次要感谢的是我周围的同学,是他们帮我解决了一些工作中的困难和解答了我遇到的一些疑惑,也感谢他们给我提出的一些建议。当然我也要感谢我所在团队的全体人员,虽然全队是分配任务的,但是他们还是热心的帮了我不少忙,所以我要感谢我们全体队员的通力合作。另外我还要感谢学校及厂家。感谢学校能给我们提供一个动手平台,感谢学校给我提供一些元器件、设备和场地。感谢厂家是因为他们提供的一些实际参数使我能合理地规划PCB板图等。最后我想对他们说的是:“感谢你们提供帮助!衷心感谢你们!谢谢!”
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
告诉我邮箱,我发给你,我以前做过有详细的论文
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询