1、目 录1、 课程设计说明书12、 电子音乐播放器13、 芯片介绍14、 程序框图25、 控制字36、 电路连接37、 源程序代码48、 温度测控系统69、 接口芯片原理610、程序框图911、电路连接912、源程序代码1013、实施结果1414、总结1515课程设计说明书一:电子音乐播放器1、设计题目:电子音乐播放器(1)8253芯片介绍8253可编程定时/计数器是Intel公司生产的通用外围芯片之一,有3个独立的十六位计数器,技术频率范围为02MHZ,它所有的技术方式和操作方式都通过编程控制。 8253引脚图8253的功能用途是:(1) 延时中断(2) 可编程频率发生器(3) 事件计数器(4
2、) 二进倍频器(5) 实时时钟(6) 数字单稳(7) 复杂的电机控制器8253有六种工作方式:(1) 方式0:计数结束中断(2) 方式1:可编程频率发生器(3) 方式2:频率发生器(4) 方式3:方波频率发生器(5) 方式4:软件触发的选通信号(6) 方式5:硬件触发的选通信号8253引脚图如图所示,各引脚功能如下。D7D0八条双向数据线;WR(低电平有效)写输入信号;RD(低电平有效)读输入信号;CS(低电平有效)片选输入信号;A0、A1片内寄存器地址输入信号;CLK计数输入,用于输入定时基准脉冲或计数脉冲;OUT输出信号,以相应的电平指示计数的完成,或输出脉冲波形;GATE选通输入(门控输
3、入),用于启动或禁止计数器的操作,以使计数器和计测对象同步。(2)程序框图通过给8253定时器装入不同的计数值,可以使其输出不同频率的波形。当与门打开后,经过放大器放大的作用,便可驱动扬声器发出不同频率的音调,要使该音调的声音持续一段时间,只要插入一段延时程序,之后再将扬声器(关闭与门)即可。开始调用音乐子程序歌曲各音符频率设置歌曲各音符时间设置读取音乐频率freq频率=0N读取时间节拍time调用speaker子程序计算次数送计算器,产生该频率信号,再送至扬声器发出声音延时wait(3) 控制字(4)电路连接CLK0 8253时钟信号GATE0OUT0CS开关(置高电平)音响200-203A
4、0A1 A25、源程序代码:code segmentassume cs:codestart: jmp start1start1:mov al,00110110bmov dx,203hout dx,almusic:lea si,yylea bp,jpLop: mov di,cs:si cmp di,0 je send mov bx,cs:bp call AAcall BBadd SI,2 ;取下一频率值add BP,2 ;取下一时间节拍值jmp Lop AA proc nearmov ax,dimov dx,200hout dx,almov al,ahout dx,alretAA endpBB
5、proc nearPUSH CXDDD: MOV CX,10 ;CCC: LOOP CCCDEC BXCMP BX,0JNE DDDPOP CXRETBB endpsend:nopyy dw 2 dup(247,277,311,247) dw 2 dup(311,330,370) dw 2 dup(370,415,370,330,311,247) dw 2 dup(311,370,247) ;歌曲频率jp dw 8 dup (10000) dw 2 dup (10000,10000,20000) dw 12 dup (9000) dw 6 dup(18000) ;歌曲时间节拍值 dw 10 d
6、up(10000)code endsend start ;1 247;2 277;3 311;4 330;5 370;6 415;7 466二:温度测控系统1、设计题目:温度测控系统2、接口芯片原理:(一)ADC0809是采样分辨率为8位的、以逐次逼近原理进行模数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。 1内部结构ADC0809是CMOS单片型逐次逼近式AD转换器,内部结构如图1322所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近 2外部特性(引脚功能)ADC0809芯片有28
7、条引脚,采用双列直插式封装,如图1323所示。下面说明各引脚功能。 IN0IN7:8路模拟量输入端。 2-12-8:8位数字量输出端。 ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路 ALE:地址锁存允许信号,输入,高电平有效。 START: AD转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。 EOC: AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平)。 OE:数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量
8、。 CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。 REF(+)、REF(-):基准电压。 Vcc:电源,单一5V。 GND:地。 3、ADC0809的工作过程首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 AD转换,之后EOC输出信号变低,指示转换正在进行。直到AD转换完成,EOC变为高电平,指示AD转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。(二)8255作为主机与外设的连接芯片,必须提供与主机相
9、连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口A、B、C口。由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。 1、特性:(1)一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口. (2)具有24个可编程设置的I/O口,即使3组8位的I/O口为PA口,PB口和PC口.它们又可分为两组12位的I/O口,A组包括A口及C口(高4位,PC4PC7),B组包括B口及C口(低4位,PC0PC3).A组可设置为基本的I/O口,闪控(STROBE)的I/O闪控式,双向I/O3
10、种模式;B组只能设置为基本I/O或闪控式I/O两种模式,而这些操作模式完全由控制寄存器的控制字决定. 2、引脚功能RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。 CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输. RD:读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。 WR:写入信号,当这个输入引脚为低电平时,即/W
11、R=0且/CS=0时,允许CPU将数据或控制字写入8255。 D0D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。 PA0PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。 PB0PB7:端口B输入输出线,一个8位的I/O锁存器, 一个8位的输入输出缓冲器。 PC0PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口A和端
12、口B配合使用,可作为控制信号输出或状态信号输入端口。 A0,A1:地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器.当A0=0,A1=0时,PA口被选择; 当A0=0,A1=1时,PB口被选择; 当A0=1,A1=0时,PC口被选择; 当A0=1.A1=1时,控制寄存器被选择.3、8259的功能:就是在有多个中断源的系统中,接受外部的中断请求,并进行判断,选中当前优先级最高的中断请求,再将此请求送到cpu的INTR端;当cpu响应中断并进入中断子程序的处理过程后,中断控制器仍负责对外部中断请求的管理。3、程序框图4、 电路连接5、源程序代码:code segment assum
13、e cs:code,ds:codestart: mov ax,cs mov ds,ax mov dx,213h mov al,80h out dx,al ;8255初始化 mov al,13h ;8259初始化 mov dx,208h out dx,al ;ICW1初始化 mov al,08h mov dx,209h out dx,al ;ICW2初始化 mov al,01h out dx,al ;ICW4初始化 in al,dx and al,0feh out dx,al ;OCW1打开非屏蔽位 push ds mov ax,0 mov ds,ax mov ax,offset intr mo
14、v ds:word ptr4*08h,ax mov ax,cs mov ds:word ptr4*08h+2,ax ;设置中断向量 pop ds mov dx,200h mov ax,0 out dx,al;开始转化 sti rel : nop jmp relprint proc near push bx push ax push di push cx lea bx,TABLE lea di,BUFDA mov cl,11110111b ;位码next: mov dx,211h mov al,cl out dx,al ;输出位码 mov al,di ;取段码 xlat mov dx,210h
15、;输出段码 out dx,al push cx mov cx,030hdelay1: loop delay1 ;软件延迟 pop cx cmp cl,11111110b ;判断是否扫完一遍 jz r1 ;显示完一遍则返回 inc di ror cl,1 ;循环右移一位 jmp nextr1: pop cx pop di pop axpop bx retprint endpintr proc nearpush axpush bxmov dx,200hin al,dxmov dl,100mul dlmov dl,255div dlpush axcall binideccall printpop a
16、xcmp al,30jl runoffcmp al,60jl r2runon:mov dx,213hmov al,1out dx,aljmp r2runoff:mov dx,213hmov al,0out dx,alr2:mov dx,200hmov al,0out dx,almov al,20hmov dx,208hout dx,alpop bxpop axiretintr endpbinidec proc nearpush dxpush simov ah,0mov dl,100div dlmov si,offset BUFDAmov si,almov dl,10mov al,ahmov a
17、h,0div dlinc simov si,almov al,ahinc simov si,alpop sipop dxretbinidec endpTABLE:db 3fh ;0的段码db 06h ;1的段码db 5bh ;2的段码db 4fh ;3的段码db 66h ;4的段码db 6dh ;5的段码db 7dh ;6的段码db 07h ;7的段码db 7fh ;8的段码db 6fh ;9的段码 db 39h ;C的段码BUFDA: db0,0,0,10code ends end start6、实施结果1. 数码管显示结果前三位显示的是模拟温度值,后三位显示的是A/D转换后的数字量。2直流
18、电机运行图当温度高于60度时启动直流电动机7、总结 本次课程设计历时一周,从前期的准备、查资料、整体构思,到后期的测试、校验,都有很多值得学习的地方。8255、8253芯片的原理的理解,接口的使用,曾经多次出错,把PC0接口接到电压输出上去,PA0和PB0接反了,200207HZ的接口接到了8259的CS59上等等,最后也是反复看图,重新连接才完成的。后期答辩,指导老师详细讲解了8253在频率转换起到的作用,以至于传输不出不同的音调。一直以来我们只学书本的知识,却不懂得去实践课本上的知识,甚至是不屑于亲自动手锻炼,这样我们学的知识就不会完全被吸收,有可能我们学的又会很快就忘记,那样我们付出的时间和精力就白费了。而这次的课程设计让我们真正感受到动手操作的魅力,它不光会加深我们已学的课本知识,而且会使我们认识一些常用芯片是怎么工作的,当我们调试程序正确执行后,我们会有一种成就感,虽然它并不是多么值得自豪的事情,可毕竟甚至是我们第一次做东西,无疑会提升我们的兴趣。通过这次课程设计,我懂得了要把学到的东西充分应用到实践中去,就算会遇到各种各样的问题,只要我们仔细,用心的去思考,总会有解决的办法,锻炼了我们的动手能力,这对我们毕业后就业会有很大的帮助的。