我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 1639|回复: 4

拉幕式数码显示技术

[复制链接]

该用户从未签到

135

主题

2418

回帖

6591

积分

二级逆天

积分
6591

社区居民社区劳模原创达人最爱沙发忠实会员终身成就奖优秀斑竹奖

QQ
发表于 2015-3-22 09:30:46 | 显示全部楼层 |阅读模式
1. 实验任务  

用AT89S51单片机的P0.0/AD0-P0.7/AD7端口接数码管的a-h端,8位数码管

的S1-S8通过74LS138译码器的Y0-Y7来控制选通每个数码管的位选端。

AT89S51单片机的P1.0-P1.2控制74LS138的A,B,C端子。在8位数码管上

从右向左循环显示“12345678”。能够比较平滑地看到拉幕的效果。  

2. 电路原理图  

3.png

3. 系统板上硬件连线  

(1. 把“单片机系统”区域中的P0.0/AD0-P0.7/AD7用8芯排线连接到“动

态数码显示”区域中的a-h端口上;  (2. 把“三八译码模块”区域中的Y0-Y7用8芯排线连接到“动态数码显示”

区域中的S1-S8端口上;  

(3. 把“单片机系统”区域中的P1.0-P1.2端口用3根导线连接到“三八译

码模块”区域中的A、B、C“端口上;  

4. 程序设计方法  

(1. 动态数码显示技术;如何进行动态扫描,由于一次只能让一个数码管

显示,因此,要显示8位的数据,必须经过让数码管一个一个轮流显

示才可以,同时每个数码管显示的时间大约在1ms到4ms之间,所以

为了保证正确显示,我必须每隔1ms,就得刷新一个数码管。而这刷

新时间我们采用单片机的定时/计数器T0来控制,每定时1ms对数码

管刷新一次,T0采用方式2。  

(2. 在进行数码显示的时候,要对显示单元开辟8个显示缓冲区,每个显

示缓冲区装有显示的不同数据即可。  

5. 程序框图   
4.png


5.png


                       图4.21.2  

6. 汇编源程序

DISPBUF EQU 30H

DISPCNT EQU 38H

DISPBIT EQU 39H

T1CNTA EQU 3AH

T1CNTB EQU 3BH

CNT EQU 3CH



ORG 00H

LJMP START

ORG 0BH

LJMP INT_T0 START: MOV DISPCNT,#8

MOV A,#10

MOV R1,#DISPBUF

LP: MOV @R1,A

INC R1

DJNZ DISPCNT,LP

MOV DISPBIT,#00H

MOV T1CNTA,#00H

MOV T1CNTB,#00H

MOV CNT,#00H

MOV TMOD,#01H

MOV TH0,#(65536-1000) / 256

MOV TL0,#(65536-1000) MOD 256

SETB TR0

SETB ET0

SETB EA

SJMP $



INT_T0:

MOV TH0,#(65536-1000) / 256

MOV TL0,#(65536-1000) MOD 256

MOV A,DISPBIT

ADD A,#DISPBUF

MOV R0,A

MOV A,@R0

MOV DPTR,#TABLE

MOVC A,@A+DPTR

MOV P0,A

MOV A,P1

ANL A,#0F8H

ADD A,DISPBIT

MOV P1,A

INC DISPBIT

MOV A,DISPBIT

CJNE A,#08H,NEXT

MOV DISPBIT,#00H

NEXT: INC T1CNTA

MOV A,T1CNTA

CJNE A,#50,LL1

MOV T1CNTA,#00H

INC T1CNTB

MOV A,T1CNTB

CJNE A,#8,LL1

MOV T1CNTB,#00H INC CNT

MOV A,CNT

CJNE A,#9,LLX

MOV CNT,#00H

MOV A,CNT

LLX: CJNE A,#01H,NEX1

MOV 30H,#8

LL1: LJMP DONE

NEX1: CJNE A,#02H,NEX2

MOV 31H,#8

MOV 30H,#8

LJMP DONE

NEX2: CJNE A,#03H,NEX3

MOV 32H,#8

MOV 31H,#8

MOV 30H,#8

LJMP DONE

NEX3: CJNE A,#04H,NEX4

MOV 33H,#8

MOV 32H,#8

MOV 31H,#8

MOV 30H,#8

LJMP DONE

NEX4: CJNE A,#05H,NEX5

MOV 34H,#8

MOV 33H,#8

MOV 32H,#8

MOV 31H,#8

MOV 30H,#8

LJMP DONE

NEX5: CJNE A,#06H,NEX6

MOV 35H,#8

MOV 34H,#8

MOV 33H,#8

MOV 32H,#8

MOV 31H,#8

MOV 30H,#8

LJMP DONE

NEX6: CJNE A,#07H,NEX7

MOV 36H,#8

MOV 35H,#8

MOV 34H,#8

MOV 33H,#8

MOV 32H,#8 MOV 31H,#8

MOV 30H,#8

LJMP DONE

NEX7: CJNE A,#08H,NEX8

MOV 37H,#8

MOV 36H,#8

MOV 35H,#8

MOV 34H,#8

MOV 33H,#8

MOV 32H,#8

MOV 31H,#8

MOV 30H,#8

LJMP DONE

NEX8: CJNE A,#00H,DONE

MOV 37H,#10

MOV 36H,#10

MOV 35H,#10

MOV 34H,#10

MOV 33H,#10

MOV 32H,#10

MOV 31H,#10

MOV 30H,#10

LL: LJMP DONE

DONE: RETI

TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H

END

7. C语言源程序

#include <AT89X51.H>

unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71,0x00};

unsigned char dispbitcode[]={0xf8,0xf9,0xfa,0xfb,

0xfc,0xfd,0xfe,0xff};

unsigned char dispbuf[8]={16,16,16,16,16,16,16,16};

unsigned char dispbitcnt;

unsigned int t02scnt;

unsigned char t5mscnt;

unsigned char u;

unsigned char i;



void main(void)

{

TMOD=0x02; TH0=0x06;

TL0=0x06;

TR0=1;

ET0=1;

EA=1;

while(1);

}



void t0(void) interrupt 1 using 0

{

t5mscnt++;

if(t5mscnt==4)

{

t5mscnt=0;

P0=dispcode[dispbuf[dispbitcnt]];

P1=dispbitcode[dispbitcnt];

dispbitcnt++;

if(dispbitcnt==8)

{

dispbitcnt=0;

}

}

t02scnt++;

if(t02scnt==1600)

{

t02scnt=0;

u++;

if(u==9)

{

u=0;

}

for(i=0;i<8;i++)

{

dispbuf=16;

}

for(i=0;i<u;i++)

{

dispbuf=8;

}

}

}  
回复

使用道具 举报

该用户从未签到

17

主题

563

回帖

799

积分

游客

积分
799

社区居民终身成就奖

QQ
发表于 2015-3-23 08:50:53 | 显示全部楼层
回复

使用道具 举报

该用户从未签到

10

主题

91

回帖

97

积分

二级逆天

积分
97

终身成就奖社区居民

QQ
发表于 2015-3-23 09:01:12 | 显示全部楼层
回复

使用道具 举报

该用户从未签到

135

主题

2418

回帖

6591

积分

二级逆天

积分
6591

社区居民社区劳模原创达人最爱沙发忠实会员终身成就奖优秀斑竹奖

QQ
 楼主| 发表于 2015-3-23 09:02:21 | 显示全部楼层
回复

使用道具 举报

该用户从未签到

1

主题

326

回帖

381

积分

二级逆天

积分
381

社区居民终身成就奖

QQ
发表于 2015-3-23 11:35:14 | 显示全部楼层
给你赞一下吧
毕竟我也是这么过来的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

论坛开启做任务可以
额外奖励金币快速赚
积分升级了


Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

平平安安
TOP
快速回复 返回顶部 返回列表