1、ADDA实验实验十五 静态串行显示实验一、实验目的1、掌握数字、字符转换成显示段码的软件译码方法2、静态显示的原理和相关程序的编写二、实验电路1、静态显示,电路中图所示。显示器由5个共阴极LED数码管组成。输入只有两个信号,它们是串行数据线DIN和移位信号CLK。5个串/并移位寄存器芯片74LS164首尾相连。每片的并行输出作为LED数码管的段码。74LS164的引脚图如图所示;74LS164为8位串入并出移位寄存器,1、2为 串行输入端,Q0Q7为并行输出端,CLK为移位时钟脉冲,上升沿移入一位;MR为清零端,低电平时并行输出为零。三、实验内容及步骤 单片机的P3.0作数据串行输出,P3.1
2、作移位脉冲输出,可参考实验十一串行数转换并行数。 1、使用单片机最小应用系统1模块,用导线连接RXD、TXD到串行静态显示模块的DIN、CLK端。2、安装好仿真器,用串行数据通信线连接计算机与仿真器,把仿真头插到模块的单片机插座中,打开模块电源,打开仿真器电源。3、启动计算机,打开伟福仿真软件,进入仿真环境。选择仿真器型号、仿真头型号、CPU类型;选择通信端口,测试串行口。4、打开 串行显示.ASM源程序,编译无误后,全速运行程序。5LED显示“89C51”。程序停止运行时,显示不变,说明静态显示模块具有数据锁存功能。5、可把源程序编译成可执行文件,烧录到89C51芯片中。四、流程图及源程序1
3、、流程图2、源程序 DBUF0 EQU 30H ;置存储区首址 TEMP EQU 40H ;置缓冲区首址 DIN BIT 0B0H; ;置串行输出口 CLK BIT 0B1H; ;置时钟输出口 ORG 0 MOV 30H, #8 ;存入显示数据 MOV 31H, #9 MOV 32H, #C MOV 33H, #5 MOV 34H, #1DISP: MOV R0, #DBUF0 MOV R1, #TEMP MOV R2, #5 DP10: MOV DPTR, #SEGTAB ;表头地址 MOV A, R0 MOVC A, A+DPTR ;查表指令 MOV R1, A INC R0 INC R1
4、 DJNZ R2, DP10 MOV R0, #TEMP ;段码地址指针 MOV R1, #5 ;段码字节数DP12: MOV R2, #8 ;输出子程序 MOV A, R0 ;取段码DP13: RLC A ;段码左移 MOV DIN, C ;输出一位段码 CLR CLK ;发送移位脉冲一位 SETB CLK DJNZ R2, DP13 INC R0 DJNZ R1, DP12 SJMP $SEGTAB: DB 3FH,06H,5BH,4FH,66H,6DH ;0,1,2,3,4,5 DB 7DH,07H,7FH,6FH,77H,7CH ;6,7,8,9,A,B DB 58H,5EH,7BH,
5、71H,00H,40H ;C,D,E,F, ,-DELAY: MOV R4, #03H ;延时子程序AA1: MOV R5, #0FFHAA: DJNZ R5, AA DJNZ R4, AA1 RET END五、电路图实验三十 ADC0809模数转换实验一、实验目的1、掌握ADC0809模/数转换芯片与单片机的连接方法及ADC0809的典型应用。2、掌握用查询方式、中断方式完成模/数转换程序的编写方法。二、实验说明本实验使用ADC0809模数转换器,ADC0809是8通道8位CMOS逐次逼近式A/D转换芯片,片内有模拟量通道选择开关及相应的通道锁存、译码电路,A/D转换后的数据由三态锁存器输出
6、,由于片内没有时钟需外接时钟信号。下图为该芯片的引脚图。各引脚功能如下:IN0IN7:八路模拟信号输入端。ADD-A、ADD-B、ADD-C:三位地址码输入端。八路模拟信号转换选择由这三个端口控制。CLOCK:外部时钟输入端(小于1MHz)。D0D7:数字量输出端。OE:A/D转换结果输出允许控制端。当OE为高电平时,允许A/D转换结果从D0D7端输出。ALE:地址锁存允许信号输入端。八路模拟通道地址由A、B、C输入,在ALE信号有效时将该八路地址锁存。START:启动A/D转换信号输入端。当START端输入一个正脉冲时,将进行A/D转换。EOC:A/D转换结束信号输出端。当 A/D转换结束后
7、,EOC输出高电平。Vref(+)、Vref(-):正负基准电压输入端。基准正电压的典型值为+5V。VCC和GND:芯片的电源端和地端。三、实验步骤1、单片机最小应用系统1的 P0口接A/D转换的D0D7口,单片机最小应用系统1的Q0Q7口接0809的A0A7口,单片机最小应用系统1的WR、RD、P2.0、ALE、INT1分别接A/D转换的WR、RD、P2.0、CLOCK、INT1,A/D转换的IN接入+5V,单片机最小应用系统1的RXD、TXD连接到串行静态显示实验模块的DIN、CLK。2、安装好仿真器,用串行数据通信线连接计算机与仿真器,把仿真头插到模块的单片机插座中,打开模块电源,打开仿
8、真器电源。3、启动计算机,打开伟福仿真软件,进入仿真环境。选择仿真器型号、仿真头型号、CPU类型;选择通信端口,测试串行口。4、打开AD0809.ASM源程序,编译无误后,全速运行程序,5LED静态显示“AD XX”,“XX”为AD转换后的值,8位逻辑电平显示“XX”的二进制值,调节模拟信号输入端的电位器旋钮,显示值随着变化,顺时针旋转值增大,AD转换值的范围是0FFH。5、可把源程序编译成可执行文件,烧录到89C51芯片中。四、流程图及源程序1.流程图2.源程序 DBUF0 EQU 30H TEMP EQU 40H DIN BIT 0B0H ;P3.0地址 CLK BIT 0B1H ;P3.
9、1地址 ORG 0000HSTART: MOV R0,#DBUF0 ;显示缓冲器存放0AH,0DH,-,0XH,0XH MOV R0,#0AH ;“A”送显示缓冲区串行静态显示“AD XX”XX表示0F INC R0 MOV R0,#0DH ;“D”送显示缓冲区 INC R0 MOV R0,#10H ;“10”送显示缓冲区,空格的段码偏移地址 INC R0 MOV DPTR,#0FEF3H ;A/D地址 MOV A,#0 ;清零 MOVX DPTR,A ;启动A/D JNB P3.3,$ ;等待转换结束 MOVX A,DPTR ;读入结果 MOV P1,A ;转换结果送入发光二极管显示 MOV
10、 B,A ;累加器内容存入B中 SWAP A ;A的内容高四位与低四位交换 ANL A,#0FH ;A的内容高四位清零 XCHD A,R0 ;A/D转换结果高位送入DBUF3中(低半字节交换) INC R0 MOV A,B ;取出A/D转换后的结果 ANL A,#0FH ;A的内容高四位清零 XCHD A,R0 ;结果低位送入DBF4中(低半字节交换) ACALL DISP1 ;串行静态显示“AD XX” ACALL DELAY ;延时 AJMP STARTDISP1: ;静态显示子程序 MOV R0,#DBUF0 MOV R1,#TEMP MOV R2,#5DP10: MOV DPTR,#S
11、EGTAB ;表头地址 MOV A,R0 MOVC A,A+DPTR ;取段码 MOV R1,A ;到TEMP中 INC R0 INC R1 DJNZ R2,DP10 MOV R0,#TEMP ;段码地址指针 MOV R1,#5 ;段码字节数DP12: MOV R2,#8 ;移位次数 MOV A,R0 ;取段码DP13: RLC A ;段码左移(带进位左移一位) MOV DIN,C ;输出一位段码 CLR CLK ;发送一个位移脉冲 SETB CLK DJNZ R2,DP13 INC R0 DJNZ R1,DP12 RETSEGTAB: DB 3FH,6,5BH,4FH,66H,6DH ;0,
12、1,2,3,4,5 DB 7DH,7,7FH,6FH,77H,7CH ;6,7,8,9,A,b DB 58H,5EH,79H,71H,0,40H ;C,d,E,F,(空格),-DELAY: ;延时 MOV R4,#08HAA1: MOV R5,#0FFHAA: NOP NOP NOP DJNZ R5,AA DJNZ R4,AA1 RET END五、思考题1、A/D转换程序有三种编制方式:中断方式、查询方式、延时方式,实验中使用了查询方式,请用另两种方式编制程序。2、P0口是数据/地址复用的端口,请说明实验中ADC0809的模拟通道选择开关在利用P0口的数据口或地址地位口时,程序指令和硬件连线的
13、关系。 六、电路图74ls02是四2输入或非门.作用是二个输入的或运算,运算后反相输出.实验三十一 DAC0832数模转换实验一、实验目的1、 掌握DAC0832直通方式,单缓冲器方式、双缓冲器方式的编程方法2、 掌握D/A转换程序的编程方法和调试方法二、实验说明DAC0832是8位D/A转换器,它采用CMOS工艺制作,具有双缓冲器输入结构,其引脚排列如图所示,DAC0832各引脚功能说明:DI0DI7:转换数据输入端。CS:片选信号输入端,低电平有效。ILE:数据锁存允许信号输入端,高电平有效。WR1:第一写信号输入端,低电平有效,Xfer:数据传送控制信号输入端,低电平有效。WR2:第二写
14、信号输入端,低电平有效。Iout1:电流输出1端,当数据全为1时,输出电流最大;当数据全为0时,输出电流最小。Iout2:电流输出2端。DAC0832具有:Iout1+Iout2=常数的特性。Rfb:反馈电阻端。Vref:基准电压端,是外加的高精度电压源,它与芯片内的电阻网络相连接,该电压范围为:-10V+10V。VCC和GND:芯片的电源端和地端。DAC0832内部有两个寄存器,而这两个寄存器的控制信号有五个,输入寄存器由ILE、CS、WR1控制,DAC寄存器由WR2、Xref控制,用软件指令控制这五个控制端可实现三种工作方式:直通方式、单缓冲方式、双缓冲方式。直通方式是将两个寄存器的五个控
15、制端预先置为有效,两个寄存器都开通只要有数字信号输入就立即进入D/A转换。单缓冲方式使DAC0832的两个输入寄存器中有一个处于直通方式,另一个处于受控方式,可以将WR2和Xfer相连在接到地上,并把WR1接到89C51的WR上,ILE接高电平,CS接高位地址或地址译码的输出端上。双缓冲方式把DAC0832的输入寄存器和DAC寄存器都接成受控方式,这种方式可用于多路模拟量要求同时输出的情况下。三种工作方式区别是:直通方式不需要选通,直接D/A转换;单缓冲方式一次选通;双缓冲方式二次选通。三、实验步骤1、单片机最小应用系统1的 P0口接0832的DI0DI7口,单片机最小应用系统1的P2.0、W
16、R分别接D/A转换的P2.0、WR,Vref接-5V,D/A转换的OUT接示波器探头。2、安装好仿真器,用串行数据通信线连接计算机与仿真器,把仿真头插到模块的单片机插座中,打开模块电源,打开仿真器电源。3、启动计算机,打开伟福仿真软件,进入仿真环境。选择仿真器型号、仿真头型号、CPU类型;选择通信端口,测试串行口。4、打开DA0832.ASM源程序,编译无误后,全速运行程序,观察示波器测量输出波形的周期和幅度。5、可把源程序编译成可执行文件,烧录到89C51芯片中。四、流程图及源程序1. 流程图 2.源程序ORG 00H AJMP START ORG 0100HSTART: MOV DPTR,
17、#0FEFFH ;置DAC0832的地址LP: MOV A,#0FFH ;设定高电平MOVX DPTR,A ;启动D/A转换,输出高电平 LCALL DELAY ;延时显示高电平 MOV A,#00H ;设定低电平 MOVX DPTR,A ;启动D/A转换,输出低电平 LCALL DELAY ;延时显示低电平 SJMP LP ;连续输出方波DELAY: MOV R3,#11 ;延时子程序D1: NOP NOP NOP NOP NOP DJNZ R3,D1 RET END五、思考题1、计算输出方波的周期,并说明如何改变输出方波的周期。2、硬件电路不改动的情况下,请编程实现输出波形为锯齿波及三角波。3、请画出DAC0832在双缓冲工作方式时的接口电路,并用两片DAC0832实现图形x轴和y轴偏转放大同步输出。六、电路图