


已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机实习报告学 院: 电气信息工程学院 专 业: 通 信 工 程 班 级: 通 信 11-1 学 号: 姓 名: 指导教师: 实习日期: 2014.5.262014.6.6 目录1、 实习目的2、 实习内容与要求3、 实验硬件原理图4、 芯片介绍5、 程序流程图6、 汇编程序7、 调试过程8、 考核内容9、 实习心得10、 参考文献1、 实习目的:1、掌握A/D转换与单片机的接口方法及单片机如何进行数据采集2、进一步的掌握中断处理的编程方法3、掌握51单片机扩展SPI接口芯片的方法4、了解keil软件操作,程序下载及调试方法2、 实习内容与要求:根据实验箱上8位数码管的显示电路和TLC2543的应用电路,设计一个数字直流电压表。要求:能够对输入的05V的直流电压进行测量,并通过数码管进行显示3、 实验硬件原理图 AT89S52模块 数码管显示模块 TLC2543 A/D转换模块及SPI信号控制端口74LS138片选控制模块4、 芯片介绍1 TLC2543芯片介绍 TLC2543A/D模块16时钟传送时序图 16时钟传送时序图(1)控制字的格式设置控制字为从Din端串行输入的8位数据,它规定了TLC2543要转换的模拟量通道、转换后的输出数据长度、输出数据的格式。高4位(D7D4)决定通道号,对于0通道至10通道,该4位分别为00001010H,当为10111101时,用于对TLC2543的自检,分别测试(VREFVREF)/2、VREF、VREF的值,当为1110时,TLC2543进入休眠状态。低4位决定输出数据长度及格式,D3、D2决定输出数据长度,01表示输出数据长度为8位,11表示输出数据长度为16位,其他为12位。D1决定输出数据是高位先送出,还是低位先送出,为0表示高位先送出D0决定输出数据是单极性(二进制)还是双极性(2的补码),若为单极性,该位为0,反之为1。(2)转换过程上电后,片选CS必须从高到低,才能开始一次工作周期,此时EOC为高,输入数据寄存器被置为0,输出数据寄存器的内容是随机的。开始时,CS片选为高,I/O CLOCK、DATA INPUT被禁止,DATA OUT 呈高阻状,EOC为高。使CS变低,I/OCLOCK、DATAINPUT使能,DATAOUT脱离高阻状态。12个时钟信号从I/OCLOCK端依次加入,随着时钟信号的加入,控制字从DATAINPUT一位一位地在时钟信号的上升沿时被送入TLC2543(高位先送入),同时上一周期转换的A/D数据,即输出数据寄存器中的数据从DATAOUT一位一位地移出(下降沿)。(在CS=0时输出第一位,其他的在下降沿输出)(3)TLC2543的简要工作过程TLC2543的工作过程分为两个周期:I/O周期和转换周期。l I/O周期I/O周期由外部提供的I/O CLOCK定义,延续8、12或16个时钟周期,决定于选定的输出数据长度。器件进入I/O周期后同时进行两种操作。在I/O CLOCK的前8个脉冲的上升沿,以MSB前导方式从DATA INPUT端输入8位数据流到输入寄存器。其中前4位为模拟通道地址,控制14通道模拟多路器从11个模拟输入和三个内部测电压中选通一路送到采样保持电路,该电路从第4个I/O CLOCK脉冲的下降沿开始对所选信号进行采样,直到最后一个I/O CLOCK脉冲的下降沿。I/O周期的时钟脉冲个数与输出数据长度(位数)同时由输入数据的D3、D2位选择为8、12或16。当工作于12或16位时,在前8个时钟脉冲之后,DATA INPUT无效。在DATA OUT端串行输出8、12或16位数据。当CS保持为低时,第一个数据出现在EOC的上升沿。若转换由CS控制,则第一个输出数据发生在CS的下降沿。这个数据串是前一次转换的结果,在第一个输出数据位之后的每个后续位均由后续的I/O时钟下降沿输出。l 转换周期 在I/O周期的最后一个I/O CLOCK下降沿之后,EOC变低,采样值保持不变,转换周期开始,片内转换器对采样值进行逐次逼近式A/D转换,其工作由与I/O CLOCK同步的内部时钟控制。转换完成后EOC变高,转换结果锁存在输出数据寄存器中,待下一个I/O周期输出。I/O周期和转换周期交替进行,从而可减小外部的数字噪声对转换精度的影响。2 74LS595(8位输出锁存移位寄存器)芯片介绍 74LS595的数据端:O0O7: 八位并行输出端,可以直接控制数码管的8个段。Q7: 级联输出端。SER: 串行数据输入端。74595的控制端说明:SRCLR(10脚): 低电平时将移位寄存器的数据清零。通常接Vcc。SRCLK(11脚):上升沿时数据寄存器的数据移O0-O1-O2-.-O7;下降沿移位寄存器数据不变。RCLK(12脚):上升沿时移位寄存器的数据进入数据存储寄存器,下降沿时存储寄存器数据不变。通常将RCLK置为低电平,当移位结束后,在RCLK端产生一个正脉冲,更新显示数据。E(13脚): 高电平时禁止输出(高阻态)。如果单片机的引脚不紧张,用一个引脚控制它,可以方便地产生闪烁和熄灭效果。比通过数据端移位控制要省时省力。3 74LS138芯片介绍74LS138 为3线8 线译码器,共有 74S138和 74LS138 两种线路结构型式,其74LS138工作原理如下:当一个选通端(G1)为高电平,另两个选通端(/(G2A)和/(G2B))为 低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低 电平译出。 74LS138的作用: 利用 G1、/(G2A)和/(G2B)可级联扩展成 24 线译码器;若外接一个反 相器还可级联扩展成 32 线译码器。74LS595工作时序图74LS138电路图由该电路图知,单片机通过控制Encode A、Encode B、Encode C来控制CS Y0CS Y7的输出。LED译码方式译码方式是指由显示字符转换得到对应的字段码的方式,对于LED数码管显示器,通常的译码方式有硬件译码和软件译码方式两种。硬件译码是指利用专门的硬件电路来实现显示字符码的转换。软件译码就是编写软件译码程序,通过译码程序来得到要显示的字符的字段码,译码程序通常为查表程序。本设计系统中为了简化硬件线路设计,LED译码采用软件编程来实现。由于本设计采用的是共阳极LED,其对应的字符和字段码如下表所示。显示字符共阴极字段码00C0H10F9H20A4H30B0H499H592H682H70F8H880H五、程序流程图开始READ子程序开始74LS138的P2.7,P2.6,P2.5置0选中TLC2543MOV R0,#08H循环8次按位读入数字量,同时循环左移A,按位写控制字给TLC2543变量初始化R0-1=0??输入控制字N子程序返回调用READ子程序串行读入转换的8位数字量 Y TRANS子程序开始调用TRANS子程序完成数字量到模拟量的转换 将转换的数字量乘以5取整数位存入20H74LS138的P2.7、P2.6置1,P2.5置0选中74LS595将低位乘以0AH取高位位存入21H调用DISPLAY子程序完直流电压值显示将低位乘以0AH取高位位存入22H结束子程序返回DISP子程序开始DISPLAY子程序开始 循环左移A,按位写数据给74LS595MOV R2,#08H循环8次R2-1=0??按位读入数字量,同时循环左移A,按位写控制字给TLC2543先送22H中的数显示调用DISP子程序送21H中的数显示 N YMOV R2,#08H循环8次调用DISP子程序调用DELAY子程序送20H中的数显示 子程序返回调用DISP子程序 熄灭其余5个数码管 子程序返回DELAY子程序开始MOV R7,#0F0HR7-1=0??子程序返回 程序流程图6、 汇编程序 ENA EQU P2.7 ENB EQU P2.6 ENC EQU P2.5 CLK EQU P1.5 DIN EQU P1.4 DOUT EQU P1.3 INT_1 EQU 20H DECI_1 EQU 21H DECI_2 EQU 22H ORG 0000HAD : CLR ENA ;LS138 ABC为000 选中TCL2543 CLR ENB CLR ENC CLR CLK NOP MOV A,#44H ;输入方式控制字 0100 0100 MOV R0,#08H ;循环8次,输入一个字节 LCALL READ LCALL DISPLAY SJMP ADREAD:MOV C,DOUT ;串行读入转换的8位数字量 RLC A ;控制字循环左移 MOV DIN,C ;送控制字到TLC2543 SETB CLK ;CLK=1 NOP CLR CLK ;CLK=0 NOP DJNZ R0,READ MOV R1,A ;转换的8位数字量存入R1中 SETB ENA SETB ENB SETB ENC CLR C LCALL TRANS RETTRANS:MOV A,R1 ;将8位数字量转换成十进制数显示 MOV B,#5H MUL AB MOV INT_1,B ;整数位 MOV B,#0AH MUL AB MOV DECI_1,B ;小数点第一位 MOV B,#0AH MUL AB MOV DECI_2,B ;小数点第二位 RETDISPLAY:SETB ENA ;显示子程序 SETB ENB CLR ENC CLR CLK NOP NOP CLR C MOV R2,#08H ;8次 MOV A,DECI_2 MOV DPTR,#TABLE MOVC A,A+DPTR LCALL DISP MOV A,DECI_1 MOV DPTR,#TABLE MOVC A,A+DPTR LCALL DISP MOV A,INT_1 MOV DPTR,#TABLE MOVC A,A+DPTR ANL A,#7FH LCALL DISP MOV R5,#5T1: MOV A,#0FFH ;屏蔽不使用的数码管 LCALL DISP DJNZ R5,T1 SETB ENA SETB ENB SETB ENC RETDISP:RLC A MOV DIN,C SETB CLK NOP NOP CLR CLK NOP NOP DJNZ R2,DISP ACALL DELAY MOV R2,#08H ;8次 RETDELAY:MOV R7,#0F0H ;延时子程序DELAY1:NOP NOP DJNZ R7,DELAY1 RETTABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH END7、 调试过程通过对数字直流电压表设计调试,遇到以下几个问题,并且采取了适当的解决方案:第一,将电压值送数码管显示时出现乱序显示的问题。通过分析74LS595的工作原理,调整向74LS595写数据的顺序,将数据反着写入,实现了正确显示。第二,定义标号时与一些汇编指令名称相同,出现重复定义等情况第三,对74LS2543转换后的数字量转换为实际电压值显示(即二进制数转换为十进制数显示)算法。通过查资料及之前数电知识的学习,根据ADC的原理,采集的二进制信号addata所指代的电压值为addata/2565V,若将其显示到小数点后两位,不考虑小数点的存在(将其乘以100),其计算的数值为:addata100/2565Vaddata1.96V,但在实际编程中发现由于汇编语言本身存在的弊端,需要对公式进行调整,最后通过各种计算,我们最后确定只需要将二进制乘以5V,然后乘以100保留小数点后两位即可实现设计要求。这种算法的缺点是最大显示电压只能达到4.98V,精确度不够高。第四,接线错误,下载到试验箱上数码管不显示结果,必须按照程序中所对应的端口连接。才能显示出结果8、 考核内容l 编写程序并调试实现在数码管最左端显示电压04V,并将其余未使用的数码管熄灭。程序如下: ENA EQU P2.7 ENB EQU P2.6 ENC EQU P2.5 CLK EQU P1.5 DIN EQU P1.4 DOUT EQU P1.3 HUND EQU 20H TEN EQU 21H GEW EQU 22H ORG 0000HAD: CLR ENA ;LS138 ABC为000 选中TCL2543 CLR ENB CLR ENC CLR CLK NOP NOP MOV A,#44H ;输入方式控制字01000100 MOV R0,#08H ;8次 LCALL READ LCALL TRANS LCALL DISPLAY SJMP ADREAD:MOV C,DOUT ;串行读入转换的8位数字量 RLC A MOV DIN,C SETB CLK NOP CLR CLK NOP DJNZ R0,READ MOV R1,A ;转换的8位数字量存入R1中 SETB ENA SETB ENB SETB ENC CLR C RETTRANS: MOV A,R1 MOV B,#5H MUL AB MOV HUND,B MOV B,#0AH MUL AB MOV TEN,B MOV B,#0AH MUL AB MOV GEW,B RET DISPLAY:SETB ENA SETB ENB CLR ENC MOV A,#0FFH ACALL DISP MOV A,#0FFH ACALL DISP MOV A,#0FFH ACALL DISP MOV A,#0FFH ACALL DISP MOV A,#0FFH ACALL DISP MOV A,#0FFH ACALL DISP MOV A,#0FFH ACALL DISP MOV A,HUND MOV DPTR,#TABLE MOVC A,A+DPTR ACALL DISP SETB ENA SETB ENB SETB ENC RETDISP: MOV R7,#8 CLR C CLR CLKT0: RLC A MOV IN,C SETB CLK NOP CLR CLK NOP DJNZ R7,T0 RETTABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H, END l 采用外部中断实现定时1s计数一次,并将数值计数在数码管上,显示的数自由选定数码管程序如下: ORG 0000H ;指向后面的程序或数据块以0000H为起始地址存放 LJMP START ORG 0030H ;主程序 ENA EQU P2.7 ENB EQU P2.6 ENC EQU P2.5 CLK EQU P1.5 IN EQU P1.4 OUT EQU P1.3 MOV 20H,00HSTART:SETB ENA SETB ENB SETB ENC CLR ENA CLR ENB CLR ENC CLR CLK MAIN: SETB IT1 ;边沿触发中断 SETB EX1 ;允许INT1中断 SETB EA ;开中断开关 MOV R0,#00H ;计数初值为00H MOV A,R0 MOVC A,A+DPTR ;查表 MOV 20H,A ACALL XS ;调用XSAGA: SJMP $ ;等待中断INTV1: INC R0 ;中断次数加1 MOV A,R0 MOVC A,A+DPTR MOV 20H,A ACALL XS CJNE R0,#0FH,RE ;15次中断未到转RE CLR EA ;15次到关中断RE: RETI XS: MOV A,20H ACALL WR_595 MOV A,#0FFH ACALL WR_595 MOV A,#0FFH ACALL WR_595 MOV A,#0FFH ACALL WR_595 MOV A,#0FFH ACALL WR_595 MOV A,#0FFH ACALL WR_595 MOV A,#0FFH ACALL WR_595 MOV A,#0FFH ACALL WR_595 MOV A,#0FFH ACALL WR_595 MOV A,#0FFH ACALL WR_595 SETB P2.7 SETB P2.5 LJMP STARTWR_595:MOV R6,#8 CLR C CLR CLK NOP NOPWW: RLC A ;将A取反 MOV IN,C NOP CLR CLK NOP DJNZ R6,WW RETTABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H, 90H,88H,83H
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浦发银行鄂尔多斯市康巴什区2025秋招信息科技岗笔试题及答案
- 招商银行佛山市南海区2025秋招笔试EPI能力测试题专练及答案
- 光大银行郑州市荥阳市2025秋招笔试英文行测高频题含答案
- 农发行玉溪市江川区2025秋招无领导小组面试案例库
- 2025年银行岗位通关题库含答案详解【预热题】
- 光大银行烟台市芝罘区2025秋招结构化面试经典题及参考答案
- 监理三控考试题及答案
- 中信银行钦州市钦北区2025秋招笔试EPI能力测试题专练及答案
- 2025年整形外科手术常规操作流程真题答案及解析
- 农发行连云港市赣榆区2025秋招笔试创新题型专练及答案
- 药品采购与供应链管理
- 智能悬架系统集成开发关键技术与实践-2024-12-技术资料
- 应用PDCA降低药占比
- 分包商安全管理规定(4篇)
- 超重与失重+说课高一上学期物理人教版(2019)必修第一册
- 公司收取管理费协议书范本
- JTS-165-6-2008滚装码头设计规范-PDF解密
- 设备维修与保养(课件)
- 医院培训课件:《和谐医患关系的建构与医疗纠纷的应对》
- 《肺癌基础知识课件》
- 会计继续教育《政府会计准则制度》专题题库及答案
评论
0/150
提交评论