模块3 数码管显示接口控制_第1页
模块3 数码管显示接口控制_第2页
模块3 数码管显示接口控制_第3页
模块3 数码管显示接口控制_第4页
模块3 数码管显示接口控制_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

模块3数码管接口控制课题15位数码管的串行静态显示控制接口控制任务1数码管的编码控制任务21个数码管显示控制任务3串行静态显示“89C52”任务1动态扫描显示“bj2008”任务2动态显示课题26位数码管的动态扫描显示接口控制任务4串行静态跳变显示“000~255”数码管显示任务1一、数码管的识别与测量1、数码管的识别7段数码管由7个长形发光二极管和1个圆形发光二极管构成,它们的阳极(或阴极)接在一起作为公共端(COM),阴极(或阳极)各自引出作为控制端引脚dp、g、f、e、d、c、b、a(按二进制的位权左高右低的顺序排列)。(1)结构:任务11、数码管的识别(2)分类:公共端是阳极的数码管称为共阳极数码管,公共端是阴极的数码管称为共阴极数码管。共阴极数码管共阳极数码管数码管显示任务12、数码管的测量使用数字万用表的PN结测试档对数码管中的8个发光二极管加上正向电压,正常情况下8个发光二极管都会发光,以此可以判断该数码管是共阳极还是共阴极。数码管显示任务1二、数码管的编码1、数码管的编码方法将数码管的公共端接上直流电源的正极(共阳极)或负极(共阴极),并通过控制各控制端高低电平可显示如图3-1-3所示的字符。例1:让共阴极数码管显示“2”显示字符二进制码HEX码2DpgfedcbaP0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.001011000数码管显示5BH★共阳极7段数码管各段的数字排列表0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,

01234

567890H,88H,83H

,0C6H,0A1H,86H,8FH9ABCDEF★共阴极7段数码管各段的数字排列表03FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

01234

5678977H,7CH,39H,5EH

,79H,71HABCDEF任务1数码管显示任务1三、数码管的控制参数及控制电路设计数码管中每个发光二极管的额定参数与普通发光二极管一样:额定电压为3V,额定电流为10mA。1、控制参数数码管显示任务1单片机电源为5V,因此输到数码管时要进行分压:即在公共端(COM)接20欧电阻。一个数码管由8个发光二极管,正好构成一个字节的控制字,1个数码管可由1个I/O端口(如P1口)的位来控制,但是单片机的I/O口的驱动能力很小,不能用来直接驱动额定电流为10mA的发光二极管,因此,需要采用具有电流放大能力的元件(如锁存器74LS245、74LS373、74LS164、达林顿管或三极管)来驱动。三、数码管的控制参数及控制电路设计2、控制电路设计数码管显示任务1数码管显示1、让一个共阴极数码管显示数字“8”。ABGECDF四、数码管显示例子任务1

ORG0000HLJMPSTARTORG0030HSTART:MOVP0,#80HSETBP2.0LJMP$END参考程序数码管显示任务1数码管显示2、让一个共阴极数码管循环显示字符“0~F”。四、数码管显示例子ABGECDF任务1数码管显示格式:

段码表头标号:DBdata,data,dataDBdata,data,data☆新指令剖析1、制表指令DB功能:将程序写入单片机的程序存储器(ROM)时,在ROM中开辟一空间存储一些程序运行时所需要的数据。这些常数都是单字节常数。⊙段码表一般放在结束指令的前面。例1:将共阴极数码管显示“0-F”的断码存入单片机的ROM中。任务1数码管显示☆新指令剖析SEGTAB:;段码表

DB03FH,06H,5BH,4FH,66H,6DH;0,1,2,3,4,5DB7DH,07H,7FH,6FH,77H,7CH;6,7,8,9,A,BDB39H,5EH,79H,71H;C,D,E,FROM地址SEGTAB+0SEGTAB+1SEGTAB+2SEGTAB+3SEGTAB+4SEGTAB+5所存数据03FH06H5BH4FH66H6DHROM地址SEGTAB+6SEGTAB+7SEGTAB+8SEGTAB+9SEGTAB+10SEGTAB+11所存数据7DH07H7FH6FH77H7CHROM地址SEGTAB+12SEGTAB+13SEGTAB+14SEGTAB+15所存数据39H5EH79H71H任务1数码管显示☆新指令剖析格式:

MOVA,#data

MOVDPTR,#段码表头标号MOVCA,@A+DPTR2、查表指令MOVC功能:将以上制表指令在ROM中产生的常数取出,需借用此指令和数据指针寄存器“DPTR”⊙查出表格中第“data+1”个数据。例2:用查表指令查出段码表SEGTAB中数据“6FH”,并传送到寄存器R0中。SEGTAB:;段码表

DB03FH,06H,5BH,4FH,66H,6DH;0,1,2,3,4,5DB7DH,07H,7FH,6FH,77H,7CH;6,7,8,9,A,BDB39H,5EH,79H,71H;C,D,E,F任务1数码管显示☆新指令剖析参考答案:

MOVA,#9

MOVDPTR,#SEGTABMOVCA,@A+DPTRMOVR0,A

MOVA,#3MOVDPTR,#TABLEMOVCA,@A+DPTRTABLE:DB08H,0C5H,0B0H,45H,60H,4FHDB6FH,03CHEND问:执行完此程序后,A=()任务1数码管显示☆练习任务1数码管显示☆新指令剖析3、比较不相等转移指令CJNE格式:

CJNEA,#data,relCJNEA,direct,relCJNE@Ri,#data,relCJNERn,#data,rel功能:比较两个字节中的值,若两个字节中的值不相等,则转移。3、比较不相等转移指令CJNE⊙注意:具有比较和判断双重功能,可产生3个分支程序,即相等分支、大于分支、小于分支任务1数码管显示☆新指令剖析不相等情况下,若第一操作数内容小于第二操作数内容,则(CY)=1,否则(CY)=0.例4:若(R2)=60H,问执行完指令CJNER2,#68H,DL0后,(CY)=()。任务1数码管显示☆新指令剖析例3:试写出以下指令的执行结果:

MOVR0,#0DL0:INCR0CJNER0,#6,DL0LJMP$结果:(R0)=()例2:让一个共阴极数码管循环显示字符“0~F”。任务1数码管显示1、制段码表SEGTAB:;段码表

DB03FH,06H,5BH,4FH,66H,6DHDB7DH,07H,7FH,6FH,77H,7CHDB39H,5EH,79H,71H任务1数码管显示MOVR1,#0MOVDPTR,#SEGTABMOVA,R1MOVCA,@A+DPTRMOVP0,ASETBP2.0INCR1LCALLDELAYCJNER1,#16,DISPLJMPSTART2、程序流程图DISPSTARTORG0000HLJMPSTARTORG0030HORG0000HLJMPSTARTORG0030H

START:MOVR1,#0MOVDPTR,#SEGTABDISP:MOVA,R1MOVCA,@A+DPTRMOVP0,ASETBP2.0INCR1LCALLDELAYCJNER1,#16,DISPLJMPSTARTDELAY:......(略)SEGTAB:;段码表

DB03FH,06H,5BH,4FH,66H,6DH,7DH,07H,

DB7FH,6FH,77H,7CH,39H,5EH,79H,71HEND格式:

段码表头标号:DBdata,data,dataDBdata,data,data1、制表指令DB数码管显示课前复习格式:

MOVA,#data

MOVDPTR,#段码表头标号MOVCA,@A+DPTR2、查表指令MOVC⊙查出表格中第“data+1”个数据。3、比较不相等转移指令CJNE格式:

CJNEA,#data,relCJNEA,direct,relCJNE@Ri,#data,relCJNERn,#data,rel数码管显示课前复习任务1数码管显示课堂练习1、将以下数据:03FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H存入单片机的ROM中(即编制成程序表格,要求表头为TABLE)。2、编写程序,查出以上表格中的第8个数据,并传送到寄存器B中。3、试写出以下指令的执行结果:

MOVR0,#12DL0:DECR0CJNER0,#6,DL0LJMP$结果:(R0)=()任务1数码管显示课堂练习数码管显示课堂练习4、让一个共阴极数码管循环显示字符“1-9”,试在例题程序的基础上做修改,完成此功能。5、让一个共阴极数码管循环显示字符“F-1”,试在例题程序的基础上做修改,完成此功能。任务2例1:采用AT89C51单片机的2位I/O口来控制下图所示的串行静态显示电路,将5位“89C52”的断码通过串行方式输出到5片移位寄存器的输出端锁存,并由5位数码管显示。数码管显示应用举例任务2数码管显示一、硬件电路由单片机最小应用系统、5个由串行输入并行输出的74LS164锁存器驱动的共阴极数码管组成。数据输入口为“Din”,并将它接到单片机的P3.0口,移位脉冲输入“CLK”接到单片机的P3.1口。1、硬件电路的组成任务2数码管显示☆8位串行输入并行输出移位锁存器74LS164●1、2脚为与门输入端“Din”,并一起作为输入引脚;●3-6脚、10-13脚(QA-QH)为并行输出端;●8脚“CLK”为移位脉冲输入端,上升沿时移入一位;●9脚为清零端,低电平时并行输出清零,一般常接高电平。(1)74LS164芯片的引脚功能●电路中的“CLK”出现一个移位脉冲时(即由低电平变为高电平),“Din”端的状态移入到Q0,而原来Q0的状态将移到Q1,从“Din”端输入的状态就逐位从Q0到Q7,这样移位8次后74LS164芯片的Q0-Q7的状态与单片机输出端的数据状态是一致的。任务2数码管显示☆8位串行输入并行输出移位锁存器74LS164(2)74LS164芯片的数据传送原理●多个74LS164进行连接时,前一个寄存器的第13脚(Q7)连接到下一个寄存器的“Din”脚。这样再移位8次后前一个74LS164芯片的Q0-Q7的状态则移位到下一个74LS164芯片的Q0-Q7中,而前一个74LS164芯片的Q0-Q7的状态则与当前单片机输出端的数据状态是一致的。☆8位串行输入并行输出移位锁存器74LS164(2)74LS164芯片的数据传送原理任务2数码管显示●若要使这5位数码管从左至右显示5位段码字符,先将要显示的“89C52”编成共阴极段码“5BH、6DH、58H、6FH、7FH”,然后将这5个段码数据按逆序逐个分8位传送即可。如此如此移位5*8次即可将5位段码完整地输出到5位数码管显示。☆8位串行输入并行输出移位锁存器74LS164(2)74LS164芯片的数据传送原理任务2数码管显示☆8位串行输入并行输出移位锁存器74LS164(3)74LS164的数据传送的实现任务2数码管显示●74LS164串行输入端数据的传送:MOVP3.0,C●移位脉冲实现指令:CLRP3.1SETBP3.1任务2数码管显示☆新指令剖析格式:名字BIT内部数据存储器的位存储单元地址●BIT伪指令功能:用来给单片机的内部数据存储器的位存储单元定义一个名字例:DINBITP3.0CLKBITP3.1任务2数码管显示一、程序设计1、程序流程图主程序显示子程序

ORG0000HLJMPSTARTORG0030HSTART:MOV40H,#5BH;“2”的段码MOV41H,#6DH;“5”的段码

MOV42H,#58H;“C”的段码MOV43H,#6FH;“9”的段码MOV44H,#7FH;“8”的段码LCALLDISPLJMP$任务2数码管显示一、程序设计2、源程序设计DISP:MOVR0,#40HMOVR1,#5DP0:MOVR2,#8MOVA,@R0DP1:RLCAMOVP3.0,CCLRP3.1SETBP3.1DJNZR2,DP1INCR0DJNZR1,DP0RETDP0DP1ORG0000HLJMPSTARTORG0030HSTART:MOV40H,#5BH;“2”的段码MOV41H,#6DH;“5”的段码

MOV42H,#58H;“C”的段码MOV43H,#6FH;“9”的段码MOV44H,#7FH;“8”的段码LCALLDISPLJMP$DISP:MOVR0,#40HMOVR1,#5DP0:MOVR2,#8MOVA,@R0DP1:RLCAMOVP3.0,CCLRP3.1SETBP3.1DJNZR2,DP1INCR0DJNZR1,DP0RETEND任务2数码管显示DBUFEQU30HTEMPEQU40HDINBITP3.0CLKBITP3.1

ORG0000HLJMPSTARTORG0030H

START:LCALLCRSJLCALLQDMLCALLDISPSJMP$DBUFEQU30HTEMPEQU40HDINBITP3.0CLKBITP3.1

ORG0000HLJMPSTARTORG0030H

START:LCALLCRSJLCALLQDMLCALLDISPSJMP$CRSJ:MOV30H,#2HMOV31H,#5HMOV32H,#0CHMOV33H,#9HMOV34H,#8HRETQDM:MOVR0,#DBUFMOVR1,#TEMPMOVR2,#5QDM1:MOVDPTR,#SEGTABMOVA,@R0MOVCA,@A+DPTRMOV@R1,AINCR1INCR0DJNZR2,QDM1RETDISP:MOVR0,#40HMOVR1,#5DP0:MOVR2,#8HMOVA,@R0DP1:RLCAMOVDIN,CCLRCLKSETBCLKDJNZR2,DP1INCR0DJNZR1,DP0RET

DBUFEQU30HTEMPEQU40HDINBITP3.0CLKBITP3.1ORG0000HLJMPSTARTORG0030H

START:LCALLCRSJLCALLQDMLCALLDISPSJMP$CRSJ:MOV30H,#2HMOV31H,#5HMOV32H,#0CHMOV33H,#9HMOV34H,#8HRETQDM:MOVR0,#DBUFMOVR1,#TEMPMOVR2,#5QDM1:MOVDPTR,#SEGTABMOVA,@R0MOVCA,@A+DPTRMOV@R1,AINCR1INCR0DJNZR2,QDM1RETDISP:MOVR0,#40HMOVR1,#5DP0:MOVR2,#8HMOVA,@R0DP1:RLCAMOVDIN,CCLRCLKSETBCLKDJNZR2,DP1INCR0DJNZR1,DP0RETSEGTAB:;段码表DB03FH,06H,5BH,4FH,66H,6DHDB7DH,07H,7FH,6FH,77H,7CHDB39H,5EH,79H,71HEND用工作于最小应用系统的AT89C51单片机的P1口来控制动态扫描电路中的段码借口,P0口来控制动态扫描显示电路中的位码接口,让6位数码管显示“bj2008”字符。动态扫描应用举例显示数据段码表SEGTAB:DB03FH,06H,5BH,4FH,66H,6DH

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论