基于AT89C51的数字温度显示装置 - 图文(4)

2019-02-15 17:03

用掉了几乎所有的接口资源,资源利用率低,观察设计图,接口主要用在了显示上,用掉了21个端口,其中行扫描用了16个,这种接法,电路简单,但是资源浪费,应该有办法降低行扫描控制线。这里我主要想到了三种方法:一是用列扫描式的方法,只需要5根控制线。但是这种方法速度慢,如果单片机时钟不够快的话,刷屏效果差。所以多单片机的时钟有较高要求。二是用一个八位I\\O口和一个扩展芯片(如8255)来实现I\\O口的扩充。这种方发的实质是扩展I\\O口,用一个八位端口在外围芯片的帮助下扩展为16位。这种方法成本高,软件复杂。三是使用一片四—十六译码器(如74154),通过单片机上的四位端口可以把从0000到1111十六种不同的状态信号送到译码器,由此产生相应的行扫描信号。这种方法的使用的行扫描控制端口最少,对程序的影响小,而且扫描没有变慢。是一个很好的改进方案。通过改进,显示仅仅用到9为端口,比现行的21位节省了12位,节省出来的端口可以用来构成通信线路。可以连接其他器件,可以扩充存储器等等。与现有设计相比,使用译码器可以为设计产品的升级提供很大空间。 ii.

LED点阵屏幕发光亮度与电源供电能力有很大关系。

在这次的设计中,行扫描线控制一行,在一行全部都亮的情况下,相应的行控制线应该能提供足够的电流,开始用的是功率芯片7407,但是功率仍然不足,所以一又加了上拉电阻,进一步提高功率,而实际上,此处完全可以接三极管来放大功率,放大效果好,工作稳定。其次是在行扫描时,不同行亮的LED不同,造成电流大小不同,

16

进而造成LED的亮度可能有变化,这个不足可以通过在列控制线上增加恒流电路来弥补。通过以上几个大的变化,显示部分变为:

改进后显示原理图

在程序编写上,我也参与了显示部分的程序设计工作,此次设计由单片机直接驱动16X32LED点阵,对行列扫描的控制要求就较高。开始时,我们只是把显示停留到想法上,但是真正转换成程序代码时,总是一头雾水,我认为是我们对模块化设计思想的认识和理解不足。几经修改,最终我们把一个显示模块有分为多个子程序,小到一个字节的传递就是一个程序。这样,显示程序就变得比较条理,写完底层支撑程序,真正的显示程序就变为控制调用不同显示子程序的顺序。通过这次的程设计,我对模块化程序设计思想有了更深的认识和了解。

17

九、参考资料

万光毅 单片机实验与实践教程(一) 北京航空航天大学出版社 浦昭邦、王宝光 测控仪器设计(第二版) 机械工业出版社 胡汉才 单片机原理及接口技术(第二版) 清华大学出版社 学林电子 http://www.8951.com/

18

十、 附录 程序:

BYTE_1 EQU 20H BYTE_2 EQU 21H BYTE_3 EQU 22H BYTE_4 EQU 23H SAVE_1 EQU 24H SAVE_2 EQU 25H DDS BIT P3.0 SH BIT P3.1 ST BIT P3.2 OE BIT P3.3 MR BIT P3.4 WD_1 EQU 26H WD_2 EQU 27H FUHAO BIT 7FH; WDIO BIT P1.0; TMEP EQU 28H; ORG 0000H AJMP MAIN; ORG 0040H MAIN:

MOV SP, #40H; LCALL DS18B20; MOV R5, #80H; LOOP1: LCALL DISPLAY; DJNZ R5, LOOP1; LJMP MAIN; DS18B20: LCALL RST; MOV A, #0CCH; LCALL WRITE; MOV A, #44H; LCALL WRITE; LCALL RST MOV A,#0CCH; LCALL WRITE; MOV A, #0BEH; LCALL WRITE; LCALL READ; RET

RST: CLR WDIO MOV R7,#32; LCALL DELAY15; JB WDIO,RST_0; MOV R7,#28; LCALL DELAY15; RST_0: RET; WRITE: CLR C;

MOV R1, #8;

WR_1:CLR WDIO; MOV R7,#1; LCALL DELAY15; RRC A; MOV WDIO, C; MOV R7, #1; LCALL DELAY15;

SETB WDIO; NOP;

DJNZ R1,WR_1; SETB WDIO;

RET;

READ: CLR C; MOV R1,#2; MOV R0,#TMEP; RD_1: MOV R2, #8; RD_2: SETB WDIO; NOP; NOP; CLR WDIO; NOP; NOP; SETB WDIO; MOV R7, #1; LCALL DELAY15; MOV C, WDIO; RRC A;

19

DJNZ R2,RD_2; MOV @R0,A; INC R0; DJNZ R1,RD_1; LCALL BCD;

RET;

BCD:

MOV A, TMEP+1; CLR C; CLR FUHAO; SUBB A,#80H; JC BCD_1; SETB FUHAO;

LCALL WORK_BCD;

BCD_1:

MOV R2, TMEP; MOV R3, TMEP+1; MOV A, R2; ANL A,#00000111B; RL A; RL A; RL A; RL A; MOV R2, A; MOV A, R3;

ANL A,#11110000B;

SWAP A ; ORL A, R2; MOV TMEP,A; RET; WORK_BCD: CLR C; MOV A, TMEP; CPL A; ADD A,#1; MOV TMEP, A ; CPL A ; ADDC A, #0; MOV TMEP+1,A; RET; DELAY15:

MOV R4, #7; DELAY_1:

DJNZ R4,DELAY_1;

DJNZ R7,DELAY15;

RET;

DISPLAY: CLR C; MOV A,#80; SUBB A, TMEP; JNC GG0; SJMP CONTINUE; GG0: LJMP GG; CONTINUE: LCALL BCDD MOV DPTR, #TAB1; MOV SAVE_1, DPL; MOV SAVE_2, DPH; MOV P0, #00H; MOV P2, #00H; MOV R0, #0; MOV R1, #80H; MOV P0, R1; LCALL T; LCALL SHEET; M: INC R0;

CJNE R0, #8H,MM; MOV P0, #00H; MOV P2, #00H; MOV R1, #80H; MOV P2, R1; MOV R0, #0;

MOV DPTR, #TAB1+8; MOV SAVE_1,DPL; MOV SAVE_2,DPH; LCALL T; LCALL SHEET; N: INC R0;

CJNE R0, #8, NN; RET; MM: SETB C; MOV A, R1; RRC A; MOV R1,A; MOV P0, R1;

20


基于AT89C51的数字温度显示装置 - 图文(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:最新-四川省凉山州2018届高中毕业班第二次诊断性考试语文试题及

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: