预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共99页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

接口技术显示器接口一、数码管显示器的结构“0”→亮二、字段码常用一个8位并行I/O口的输出(如P2.7~P2.0)对应控制数码管的dp~a以显示不同字形。从I/O口输出的驱动数码管以显示不同字形的数据称为字段码(字形码、显示代码)。显示字符三、显示字符转换为字段码(查表法)1.静态显示方式【例】用P2、P3口作为静态显示接口ORG0000HLJMPMAINORG0030HMAIN:MOV40H,#06HMOV41H,#08H;显示缓冲单元MOVDPTR,#DTABMOVA,40HMOVCA,@A+DPTR;查表求字形码MOVP3,AMOVA,41HMOVCA,@A+DPTRMOVP2,ASJMP$2.动态显示方式原理【例】一个8位LED动态显示2008.10.10的过程(以共阴极数码管为例)。实验板LED数码显示器动态驱动的编程逻辑关系:字段驱动:A口8个输出端通过八反相三态缓冲器74LS240驱动阳极段线,从A口输出的8位码与字段的关系如下:字位驱动:B口输出通过双与非OC驱动器75452驱动8个LED数码显示器的公共阴极端,从B口输出的8位码与字位的关系如下:实验板动态显示电路简单显示功能驱动程序的设计【例】在右边第2位显示“P”字样:ORG0000HLCALLD60MS;稍加延时(60mS),等待各芯片均上电复位结束MOVDPTR,#0FEFFH;82C55A(U3)控制口地址MOVA,#89H;82C55A(U3)初始化方式字10001001B=89HMOVX@DPTR,A;A、B口输出驱动字段、字位,C口输入MOVDPTR,#0FEFDH;8255-B口(字位码输出口)MOVA,#02H;位码00000010B,驱动右边第2位MOVX@DPTR,A;输出字位码MOVDPTR,#0FEFCH;8255-A口(字段码输出口)MOVA,#8CH;“P”的字段码10001100BMOVX@DPTR,A;输出字段码SJMP$D60MS:……;软件延时40mS子程序RETEND【例】在左边两位稳定显示“HA”字样ORG0000H……;等待复位及82C55(U3)初始化LOOP:MOVDPTR,#0FEFDH;8255-B口(字位码输出口)MOVA,#80H;位码10000000BMOVX@DPTR,A;输出字位码MOVDPTR,#0FEFCH;8255-A口(字段口)MOVA,#89H;“H”的字段码10001001BMOVX@DPTR,A;输出字段码LCALLD1MS;保持显示1毫秒MOVDPTR,#0FEFDH;8255-B口(字位码输出口)MOVA,#40H;位码01000000BMOVX@DPTR,A;输出字位码MOVDPTR,#0FEFCH;8255-A口(字段口)MOVA,#88H;“A”的字段码10001000BMOVX@DPTR,A;输出字段码LCALLD1MS;保持显示1毫秒SJMPLOOPD1MS:……;软件延时1mS子程序D60MS:……;软件延时60mS子程序END【例】以1S间隔在8个数码显示器上巡回显示“L”字样ORG0000H……;等待复位及8255(U3)初始化MOVDPTR,#0FEFCH;8255-A口(字段码输出口)MOVA,#0C7H;“L”的字段码11000111BMOVX@DPTR,A;输出字段码MOVDPTR,#0FEFDH;8255-B口(字位码输出口)MOVA,#01H;初始位码00000001LOOP:MOVX@DPTR,A;输出新的字位码LCALLD1S;保持1秒时间RLA;字位码循环左移一位SJMPLOOPD1S:……;软件延时1S子程序D60MS:……;软件延时60mS子程序END。C4-7:MOVA,@R0;取当前数据(字符在字段码表中的序号)ADDA,#TAB-NEXTPC;加上TAB与NEXTPC差址(此例为#01H)MOVCA,@A+PC;查表得相应字段码NEXTPC:RETTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H;字段码表:"0"~"6"DB0F8H,80H,90H;字段码表续:"7"~"9"从SW0~SW3输入BCD码查表求七段码且驱动显示的程序方法【TEST2016.ASM中拆字、动态显示子程序编写实例】【TEST2016.ASM中拆字子程序编写实例】CZ:MOVR0,#3AH;拆字子程序。R0指向秒分时单元首址(秒单元)MOVR1,#30H;R1指向显示缓冲单元首地址(对应最右位)CZ1:MOVA,@R0;取当前压缩BCD码ANLA,#0FH;保留低4位(个位)MOV@R1,A;送非压缩BCD码个位单元INCR1;R1指向高位单元(十位)MOVA,@R0;再取原压缩BCD码ANLA,#0F0H;保留高4位(十位)SWAP