基于单片机的波形发生器课程设计版.docx
- 文档编号:8910061
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:19
- 大小:754.48KB
基于单片机的波形发生器课程设计版.docx
《基于单片机的波形发生器课程设计版.docx》由会员分享,可在线阅读,更多相关《基于单片机的波形发生器课程设计版.docx(19页珍藏版)》请在冰豆网上搜索。
基于单片机的波形发生器课程设计版
基于单片机的波形发生器课程设计版
基于单片机的波形发生器
摘要
本系统是基于AT89C51单片机的数字式低频信号发生器。
采用AT89C51单片机作为控制核心,外围采用数字/模拟转换电路(DAC0832)、运放电路(LM324)、按键和8位数码管等。
通过按键控制可产生方波、三角波、正弦波等,同时用数码管指示其对应的频率。
其设计简单、性能优好,可用于多种需要低频信号的场所,具有一定的实用性。
各种各样的信号是通信领域的重要组成部分,其中正弦波、三角波和方波等是较为常见的信号。
在科学研究及教学实验中常常需要这几种信号的发生装置。
为了实验、研究方便,研制一种灵活适用、功能齐全、使用方便的信号源是十分必要的。
本文介绍的是利用AT89C51单片机和数模转换器件DAC0832产生所需不同信号的低频信号源,其信号幅度和频率都是可以按要求控制的。
文中简要介绍了DAC0832数模转换器的结构原理和使用方法,AT89C51的基础理论,以及与设计电路有关的各种芯片。
文中着重介绍了如何利用单片机控制D/A转换器产生上述信号的硬件电路和软件编程。
信号频率幅度也按要求可调。
本次关于产生不同低频信号的信号源的设计方案,不仅在理论和实践上都能满足实验的要求,而且具有很强的可行性。
该信号源的特点是:
体积小、价格低廉、性能稳定、实现方便、功能齐全。
关键词:
AT89C51DAC0832LM3248位数码管显示
Keywords:
AT89C51,DA0832,LM324,8nixietubedisplay
前言
波形发生器也称函数发生器,作为实验信号源,是现今各种电子电路实验设计应用中必不可少的仪器设备之一。
目前,市场上常见的波形发生器多为纯硬件的搭接而成,且波形种类有限,多为锯齿波,正弦波,方波,三角波等波形。
信号发生器作为一种常见的应用电子仪器设备,传统的可以完全由硬件电路搭接而成,如采用555振荡电路发生正弦波、三角波和方波的电路便是可取的路经之一,不用依靠单片机。
但是这种电路存在波形质量差,控制难,可调范围小,电路复杂和体积大等缺点。
在科学研究和生产实践中,如工业过程控制,生物医学,地震模拟机械振动等领域常常要用到低频信号源。
而由硬件电路构成的低频信号其性能难以令人满意,而且由于低频信号源所需的RC很大;大电阻,大电容在制作上有困难,参数的精度亦难以保证;体积大,漏电,损耗显著更是致命的弱点。
一旦工作需求功能有增加,则电路复杂程度会大大增加。
1波形发生器概述
在电子工程、通信工程、自动控制、遥测控制、测量仪器、仪表和计算机等技术领域,经常需要用到各种各样的信号波形发生器。
随着集成电路的迅速发展,用集成电路可很方便地构成各种信号波形发生器。
用集成电路实现的信号波形发生器与其它信号波形发生器相比,其波形质量、幅度和频率稳定性等性能指标,都有了很大的提高。
1.1波形发生器的发展状况
波形发生器是能够产生大量的标准信号和用户定义信号,并保证高精度、高稳定性、可重复性和易操作性的电子仪器。
函数波形发生器具有连续的相位变换、和频率稳定性等优点,不仅可以模拟各种复杂信号,还可对频率、幅值、相移、波形进行动态、及时的控制,并能够与其它仪器进行通讯,组成自动测试系统,因此被广泛用于自动控制系统、震动激励、通讯和仪器仪表领域。
在70年代前,信号发生器主要有两类:
正弦波和脉冲波,而函数发生器介于两类之间,能够提供正弦波、余弦波、方波、三角波、上弦波等几种常用标准波形,产生其它波形时,需要采用较复杂的电路和机电结合的方法。
这个时期的波形发生器多采用模拟电子技术,而且模拟器件构成的电路存在着尺寸大、价格贵、功耗大等缺点,并且要产生较为复杂的信号波形,则电路结构非常复杂。
同时,主要表现为两个突出问题,一是通过电位器的调节来实现输出频率的调节,因此很难将频率调到某一固定值;二是脉冲的占空比不可调节。
在70年代后,微处理器的出现,可以利用处理器、A/D/和D/A,硬件和软件使波形发生器的功能扩大,产生更加复杂的波形。
这时期的波形发生器多以软件为主,实质是采用微处理器对DAC的程序控制,就可以得到各种简单的波形。
90年代末,出现几种真正高性能、高价格的函数发生器、但是HP公司推出了型号为HP770S的信号模拟装置系统,它由HP8770A任意波形数字化和HP1776A波形发生软件组成。
HP8770A实际上也只能产生8中波形,而且价格昂贵。
不久以后,Analogic公司推出了型号为Data-2020的多波形合成器,Lecroy公司生产的型号为9100的任意波形发生器等。
到了二十一世纪,随着集成电路技术的高速发展,出现了多种工作频率可过GHz的DDS芯片,同时也推动了函数波形发生器的发展,2003年,Agilent的产品33220A能够产生17种波形,最高频率可达到20M,2005年的产品N6030A能够产生高达500MHz的频率,采样的频率可达1.25GHz。
由上面的产品可以看出,函数波形发生器发展很快近几年来,国际上波形发生器技术发展主要体现在以下几个方面:
(1)过去由于频率很低应用的范围比较狭小,输出波形频率的提高,使得波形发生器能应用于越来越广的领域。
波形发生器软件的开发正使波形数据的输入变得更加方便和容易。
波形发生器通常允许用一系列的点、直线和固定的函数段把波形数据存入存储器。
同时可以利用一种强有力的数学方程输入方式,复杂的波形可以由几个比较简单的公式复合成v=f(t)形式的波形方程的数学表达式产生。
从而促进了函数波形发生器向任意波形发生器的发展,各种计算机语言的飞速发展也对任意波形发生器软件技术起到了推动作用。
目前可以利用可视化编程语言(如VisualBasic,VisualC等等)编写任意波形发生器的软面板,这样允许从计算机显示屏上输入任意波形,来实现波形的输入。
(2)与VXI资源结合。
目前,波形发生器由独立的台式仪器和适用于个人计算机的插卡以及新近开发的VXI模块。
由于VXI总线的逐渐成熟和对测量仪器的高要求,在很多领域需要使用VXI系统测量产生复杂的波形,VXI的系统资源提供了明显的优越性,但由于开发VXI模块的周期长,而且需要专门的VXI机箱的配套使用,使得波形发生器VXI模块仅限于航空、军事及国防等大型领域。
在民用方面,VXI模块远远不如台式仪器更为方便。
(3)随着信息技术蓬勃发展,台式仪器在走了一段下坡路之后,又重新繁荣起来。
不过现在新的台式仪器的形态,和几年前的己有很大的不同。
这些新一代台式仪器具有多种特性,可以执行多种功能。
而且外形尺寸与价格,都比过去的类似产品减少了一半。
1.2国内外波形发生器产品比较
早在1978年,由美国Wavetek公司和日本东亚电波工业公司公布了最高取样频率为5MHz,可以形成256点(存储长度)波形数据,垂直分辨率为8bit,主要用于振动、医疗、材料等领域的第一代高性能信号源,经过将近30年的发展,伴随着电子元器件、电路、及生产设备的高速化、高集成化,波形发生器的性能有了飞速的提高。
变得操作越来越简单而输出波形的能力越来越强。
波形操作方法的好坏,是由波形发生器控制软件质量保证的,编辑功能增加的越多,波形形成的操作性越好。
2方案论证与比较
依据应用场合.需要实现的波形种类,波形发生器的具体指标要求会有所不同。
依据不同的设计要求选取不同的设计方案。
通常,波形发生器需要实现的波形有正弦波、方波、三角波和锯齿波。
有些场合可能还需要任意波形的产生。
各种波形共有的指标有:
波形的频率、幅度要求,频率稳定度,准确度等。
对于不同波形,具体的指标要求也会有所差异,例如,占空比是脉冲波形特有的指标。
波形发生器的设计方案多种多样,大致可以分为三大类:
纯硬件设计法、纯软件设计法和软硬件结合设计法。
2.1方案一
波形发生器设计的纯硬件法早期,波形发生器的设计主要是采用运算放大器加分立元件来实现。
实现的波形比较单一,主要为正弦波、方波和三角波。
工作原理嗍也相对简单:
首先是产生正弦波,然后通过波形变换(正弦波通过比较器产生方波,方波经过积分器变为三角波)实现方波和三角波。
在各种波形后加上一级放大电路,可以使输出波形的幅度达到要求,通过开关电路实现不同输出波形的切换,改变电路的具体参数可以实现频率、幅度和占空比的改变。
通过对电路结构的优化及所用元器件的严格选取可以提高电路的频率稳定性和准确度。
纯硬件法中,正弦波的设计是基础,实现方法也比较多,电路形式一般有LC、RC和石英晶体振荡器三类。
LC振荡器适宜于产生几Hz至几百MHz的高频信号;石英晶体振荡器能产生几百kHz至几十MHz的高频信号且稳定度高;对于频率低于几MHz,特别是在几百Hz时,常采用RC振荡电路。
RC振荡电路又分为文氏桥振荡电路、双T网络式和移相式振荡电路等类型。
其中,以文氏桥振荡电路最为常用。
目前,实现波形发生器最简单的方法是采用单片集成的函数信号发生器。
它是将产生各种波形的功能电路集成优化到一个集成电路芯片里,外加少量的电阻、电容元件来实现。
采用这种方法的突出优势是电路简单,实现方便,精度高,性能优越;缺点是功能较全的集成芯片价格较贵。
实际中应用较多的单片函数信号发生器有MAX038(最高频率可达40MHz)和ICL8038(最高频率为300kHz)。
2.2方案二
波形发生器设计的纯软件法波形发生器的设计还可以采用纯软件的方法来实现。
虚拟仪器鞠使传统仪器发生了革命性的变化,是21世纪测试仪器领域技术发展的重要方向。
它以计算机为基础,软件为核心,没有传统仪器那样具体的物理结构.在计算机上实现仪器的虚拟面板,通过软件设计实现和改变仪器的功能。
例如用图形化编程工具LabVIEW来实现任意波形发生器的功能:
在LabVIEW软件的前面板通过拖放控件,设计仪器的功能面板(如波形显示窗口,波形选择按键,波形存储回放等工作界面),在软件的后面板直接拖放相应的波形函数并进行参数设置或直接调用编程函数来设计任意波形以实现波形产生功能;完成的软件打包后,可脱离编程环境独立运行。
实现任意波形发生器的功能。
采用纯软件的虚拟仪器设计思路可以使设计简单、高效,仅改变软件程序就可以轻松实现波形功能的改变或升级。
从长远角度来看,纯软件法成本较低。
软件法的缺点是波形的响应速度和精度逊色于硬件法。
2.3方案三
1.软硬件结合法软硬件结合的波形发生器设计方法同时兼具软硬件设计的优势:
既具有纯硬件设计的快速、高性能,同时又具有软件控制的灵活性、智能性。
如以单片机和单片集成函数发生器为核心(如图2.2)。
辅以键盘控制、液晶显示等电路,设计出智能型函数波形发生器,采用软硬件结合的方法可以实现功能较全、性能更优的波形发生器,同时还可以扩展波形发生器的功能,比如通过软件编程控制实现波形的存储、运算、打印等功能,采用USB接口设计。
使波形发生器具有远程通信功能等。
目前,实验、科研和工业生产中使用的信号源大多采用此方法来实现。
图2.2软硬件结合的波形发生器
2.纯硬件设计法功能较单一,波形改变困难、控制的灵活性不够,不具备智能性,其中由运算放大器加分立元件组成的波形发生器,除在学生实验训练中使用外。
基本不被采用。
纯软件设计法实现简单,程序改变及功能升级灵活,但实现的波形精度及响应速度不如硬件法高。
纯软件法主要适用于对波形精度、响应速度要求不是很高的场合。
相比之下,软硬件结合的方法可以设计出性能最优、功能扩展灵活、控制智能化的新一代的波形发生器,可以满足教学、科研、工业生产等各方面对波形发生器性能有较高要求的应用场合。
综合以上几种设计方案,本设计采用方案三的方法—软硬件设计法。
其方案能够产生很好的波形,也易实现。
3硬件原理
波形的产生是通过AT89S52单片机执行某一波形发生程序,向D/A转换器的输入端按一定的规律发生数据,从而在D/A转换电路的输出端得到相应的电压波形。
AT89S52单片机的最小系统有三种联接方式。
一种是两级缓冲器型,即输入数据经过两级缓冲器型,即输入数据经过两级缓冲器后,送D/A转换电路。
第二种是单级缓冲器型,输入数据经输入寄存器直接送入DAC寄存器,然后送D/A转换电路。
第三种是两个缓冲器直通,输入数据直接送D/A转换电路进行转换。
本电路仿真的总图如下:
图3.1系统电路图
3.1MCS-51单片机的内部结构
3.1.1内部结构概述
典型的MCS-51单片机芯片集成了以下几个基本组成部分。
1一个8位的CPU
2128B或256B单元内数据存储器(RAM)
34KB或8KB片内程序存储器(ROM或EPROM)
44个8位并行I/O接口P0~P3。
5两个定时/计数器。
65个中断源的中断管理控制系统。
7一个全双工串行I/O口UART(通用异步接收、发送器)
8一个片内振荡器和时钟产生电路。
图3.2单片机引脚
3.1.2CPU结构
CPU是单片机的核心部件。
它由运算器和控制器等部件组成。
1. 运算器
运算器以完成二进制的算术/逻辑运算部件ALU为核心。
它可以对半字节(4)、单字节等数据进行操作。
例如,能完成加、减、乘、除、加1、减1、BCD码十进制调整、比较等算术运算,完成与、或、异或、求反、循环等逻操作,操作结果的状态信息送至状态寄存器。
运算器还包含有一个布尔处理器,用以处理位操作。
它以进位标志位C为累加器,可执行置位、复位、取反、位判断转移,可在进位标志位与其他可位寻址的位之间进行位数据传诵等操作,还可以完成进位标志位与其他可位寻址的位之间进行逻辑与、或操作。
2.程序计数器PC
PC是一个16位的计数器,用于存放一条要执行的指令地址,寻址范围为64kB,PC有自动加1功能,即完成了一条指令的执行后,其内容自动加1。
3.指令寄存器
指令寄存器用于存放指令代码。
CPU执行指令时,由程序存储器中读取的指令代码送如指令寄存器,经指令译码器译码后由定时有控制电路发出相应的控制信号,完成指令功能。
3.1.3存储器和特殊功能寄存器
1.存储器(Memory)是计算机系统中的记忆设备,用来存放程序和数据。
计算机中的全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。
它根据控制器指定的位置存入和取出信息。
2.特殊功能寄存器
特殊功能寄存器(SFR)的地址范围为80H~FFH。
在MCS-51中,除程序计数器PC和四个工作寄存器区外,其余21个特殊功能寄存器都在这SFR块中。
其中5个是双字节寄存器,它们共占用了26个字节。
各特殊功能寄存器的符号和地址见附表2。
其中带*号的可位寻址。
特殊功能寄存器反映了8051的状态,实际上是8051的状态字及控制字寄存器。
用于CPUPSW便是典型一例。
这些特殊功能寄存器大体上分为两类,一类与芯片的引脚有关,另一类作片内功能的控制用。
与芯片引脚有关的特殊功能寄存器是P0~P3,它们实际上是4个八位锁存器(每个I/O口一个),每个锁存器附加有相应的输出驱动器和输入缓冲器就构成了一个并行口。
MCS-51共有P0~P3四个这样的并行口,可提供32根I/O线,每根线都是双向的,并且大都有第二功能。
其余用于芯片控制的寄存器中,累加器A、标志寄存器PSW、数据指针DPTR等的功能前已提及。
3.2P0-P3口结构
P0口功能:
P0口具有两种功能:
第一,P0口可以作为通用I/O接口使用,P0.7—P0.0用于传送CPU的输入/输出数据。
输出数据时可以得到锁存,不需外接专用锁存器,输入数据可以得到缓冲。
第二,P0.7—P0.0在CPU访问片外存储器时用于传送片外存储器de低8位地址,然后传送CPU对片外存储器的读写
P1口功能:
P1口的功能和P0口de第一功能相同,仅用于传递I/O输入/输出数据。
P2口的功能:
2口的第一功能和上述两组引脚的第一功能相同,即它可以作为通用I/O使用。
它的第二功能和P0口引脚的第二功能相配合,作为地址总线用于输出片外存储器的高8位地址。
P3口功能:
P3口有两个功能:
第一功能与其余三个端口的第一功能相同;第二功能作控制用,每个引脚都不同。
P3.0—RXD串行数据接收口
P3.1—TXD串行数据发送口
P3.2—INT0外中断0输入
P3.3—INT1外中断1输入
P3.4—T0计数器0计数输入
P3.5—T1计数器1计数输入
P3.6—WR外部RAM写选通信号
P3.7—RD外部RAM读选通信号
3.3时钟电路和复位电路
单片机的时钟信号用来提供单片机内各种微操作的时间基准;复位操作则使单片机的片内电路初始化,使单片机从一种确定的状态开始运行。
3.3.1时钟电路
单片机的时钟信号通常用两种电路形式得到:
内部振荡和外部振荡方式。
图3.3时钟部分电路图
在引脚XTAL1和XTAL2外接晶体振荡器或陶瓷谐振荡器,构成了内部振荡方式。
由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自积振荡,并产生振荡时钟脉冲。
晶振通常选用6MHZ、12MHZ、或24MHZ。
单片机的时序单位
振荡周期:
晶振的振荡周期,又称时钟周期,为最小的时序单位。
状态周期:
振荡频率经单片机内的二分频器分频后提供给片内CPU的时钟周期。
因此一个状态周期包含2个振荡周期。
机器周期:
1个机器周期由6个状态周期12个振荡周期组成,是计算机执行一种基本操作的时间单位。
指令周期:
执行一条指令所需的时间。
一个指令周期由1-4个机器周期组成,依据指令不同而不同.
3.3.2单片机的复位状态
当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,根据应用的要求,复位操作通常有两种基本形式:
上电复位和上电或开关复位。
上电复位要求接通电源后,自动实现复位操作。
上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。
上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。
当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。
图3.4复位电路
单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC=0000H,这表明程序从0000H地址单元开始执行。
单片机冷启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM区中的内容,21个特殊功能寄存器复位后的状态为确定值统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。
51单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个振荡周期后,51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,才检查EA引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。
51单片机在系统复位时,将其内部的一些重要寄存器设置为特定的值,至于内部RAM内部的数据则不变。
3.4DAC0832的引脚及功能
1DAC0832芯片:
DAC0832是8分辨率的D/A转换集成芯片。
与微处理器完全兼容。
这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。
D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。
2DAC0832的主要特性参数如下:
分辨率为8位;
电流稳定时间1us;
可单缓冲、双缓冲或直接数字输入;
只需在满量程下调整其线性度;
单一电源供电(+5V~+15V);
低功耗,200mW。
3DAC0832结构:
D0~D7:
8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错);
ILE:
数据锁存允许控制信号输入线,高电平有效;
CS:
片选信号输入线(选通数据锁存器),低电平有效;
WR1:
数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。
由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;
XFER:
数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;
WR2:
DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。
由WR1、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。
IOUT1:
电流输出端1,其值随DAC寄存器的内容线性变化;
IOUT2:
电流输出端2,其值与IOUT1值之和为一常数;
Rfb:
反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度;
Vcc:
电源输入端,Vcc的范围为+5V~+15V;
VREF:
基准电压输入线,VREF的范围为-10V~+10V;
AGND:
模拟信号地
DGND:
数字信号地
4DAC0832的工作方式:
根据对DAC0832的数据锁存器和DAC寄存器的不同的控制方式,DAC0832有三种工作方式:
直通方式、单缓冲方式和双缓冲方式
4软件原理
系统软件由主程序和产生波形的子程序组成,软件设计主要是产生各种波形的子程序的编程,通过编程可得到各种波形。
周期的改变可采用插入延时子程序的方法来实现。
主程序和几种常用波形子程序的流程图如图所示。
4.1主流程图
图4.1主程序流程图
信号的产生:
利用8位D/A转换器DAC0808,可以将8位数字量转换成模拟量输出。
数字量输入的范围为0~255,对应的模拟量输出的范围在VREF-到VREF+之间。
根据这一特性,可以利用单片机的并行口输出的数字量,产生常用的波形。
例如,要产生幅度为0~5V的锯齿波,只要将DAC0808的VREF-接地,VREF+接+5V,单片机的并行口首先输出00H,再输出01H、02H,直到输出FFH,再输出00H,依此循环,这样在图4.2所示的Vout端就可以看到在0到5V之间变化的锯齿波。
4.2锯齿波仿真图
图4.2锯齿波仿真
锯齿波产生是通过P0口将00H送入寄存器A中,DAC0832输出A中的内容,读取P2口的状态,取反后作为延时常数,当A中的内容不为0FFH时,A中的内容加1,当A中的内容等于FFH返回开始,从而输出波形。
锯齿波程序
voidjuchi()
{
uinti;
i=0;
while
(1)
{
P0=i;
delay(t);
i=i+1;
P0=i;
delay(t);
xianshiqi(t);
if(i==256)
{
i=0;
}
if(s5==0)
{
t=t+1;
}
if(s6==0)
{
t=t-1;
}
}
}
4.3三角波仿真图
图4.3三角波仿真
三角波产生是通过P0口将00H送入寄存器A中,DAC0832输出A中的内容,通过A中数值的加1递升,同时延时,当A中的内容为0FF时,A中的内容减1递减,从而循环产生三角波。
三角波程序如下:
voidsanjiaobo()
{
uintj=0;
while
(1)
{
P0=j;
delay(t);
j=j+1;
P0=j;
delay(t);
xianshiqi(t);
if(j==256)
{
if(j!
=0)
{
j=j-1;
P0=j;
delay(t);
xianshiqi(t);
if(s5==0)
{
t=t+1;
}
if(s6==0)
{
t=t-1;
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 波形 发生器 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)