完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
本帖最后由 blackwinter 于 2017-12-25 14:02 编辑
通过单片机控制LCD显示,但是并不能完全显示所需内容 ,只能显示一部分 如图1、2 且运行过程LCD闪烁数字时显时不显 注:在启动的瞬间有过完整显示
|
|
相关推荐
17个回答
|
|
大神快到碗里来
|
|
|
|
显示屏是否正常
|
|
|
|
|
|
|
|
|
|
|
|
但这是仿真,应该不会出现这种问题吧,我觉得是不是电路连接或者参数设置出现问题。 |
|
|
|
最好把代码贴上来,下载是要扣积分的
|
|
|
|
本帖最后由 blackwinter 于 2017-12-25 16:38 编辑
S_SET BIT P1.0 M_SET BIT P1.1 H_SET BIT P1.2 RESET BIT P1.3 D_SET BIT P1.4 YUE_SET BIT P1.5 Y_SET BIT P1.6 RS BIT P2.4 RW BIT P2.5 EN BIT P2.6 SJ EQU P0 SECOND EQU 30H MINUTE EQU 31H HOUR EQU 32H TCNT EQU 34H YEAR_H EQU 35H YEAR_L EQU 36H MONTH EQU 37H DAT EQU 38H ORG 00H SJMP START ORG 0BH LJMP INT_T0 START: MOV HOUR,#0 MOV MINUTE,#0 MOV SECOND,#0 MOV TCNT,#0 MOV YEAR_H,#20 MOV YEAR_L,#17 MOV MONTH,#0 MOV DAT,#0 MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H MOV IE,#82H SETB TR0 A1: LCALL DISPLAY MOV P1,#0FFH JNB S_SET,S1 JNB M_SET,S2 JNB H_SET,S3 JNB D_SET,S4 JNB YUE_SET,T5 JNB Y_SET,T6 JNB RESET,START LJMP A1 T5: LJMP S5 T6: LJMP S6 S1: LCALL DELAY JB S_SET,A1 INC SECOND LCALL DISPLAY MOV A,SECOND CJNE A,#60,J0 MOV SECOND,#0 LJMP K1 J0:JB S_SET,A1 LCALL DISPLAY SJMP J0 S2: LCALL DELAY JB M_SET,A1 K1: INC MINUTE MOV A,MINUTE CJNE A,#60,J1 MOV MINUTE,#0 LJMP K2 J1:JB M_SET,A1 LCALL DISPLAY SJMP J1 S3: LCALL DELAY JB H_SET,A1 K2: INC HOUR MOV A,HOUR CJNE A,#24,J2 MOV HOUR,#0 LJMP K3 J2:JB H_SET,V6 LCALL DISPLAY SJMP J2 V6:LJMP A1 S4: LCALL DELAY JB D_SET ,V7 K3: INC DAT MOV A,DAT CJNE A,#31,J3 MOV DAT,#0 LJMP K4 V7:LJMP A1 J3:JB D_SET,V1 LCALL DISPLAY SJMP J3 V1:LJMP A1 S5: LCALL DELAY JB YUE_SET ,V2 K4: INC MONTH MOV A,MONTH CJNE A,#12,J4 MOV MONTH,#0 LJMP K5 V2:LJMP A1 J4:JB YUE_SET,V3 LCALL DISPLAY SJMP J4 V3:LJMP A1 S6: LCALL DELAY JB Y_SET ,V4 K5: INC YEAR_L MOV A,YEAR_L CJNE A,#99,J5 MOV YEAR_L,#0 INC YEAR_H MOV A,YEAR_H CJNE A,#99,J5 MOV YEAR_H,#0 LJMP A1 V4:LJMP A1 J5:JB Y_SET,V5 LCALL DISPLAY SJMP J5 V5:LJMP A1 INT_T0: MOV TH0,#3CH MOV TL0,#0B0H INC TCNT MOV A,TCNT CJNE A,#20,RETUNE INC SECOND MOV TCNT,#0 MOV A,SECOND CJNE A,#60,RETUNE INC MINUTE MOV SECOND,#0 MOV A,MINUTE CJNE A,#60,RETUNE INC HOUR MOV MINUTE,#0 MOV A,HOUR CJNE A,#24,RETUNE INC DAT MOV HOUR,#0 MOV TCNT,#0 MOV A,DAT CJNE A,#31,RETUNE INC MONTH MOV DAT,#0 MOV A,MONTH CJNE A,#12,RETUNE INC YEAR_L MOV MONTH,#0 MOV A,YEAR_L CJNE A,#99,RETUNE MOV YEAR_L,#0 INC YEAR_H MOV A,YEAR_H CJNE A,#99,RETUNE MOV YEAR_H,#0 RETUNE:RETI DISPLAY:LCALL initial ;是LCD初始化 LCALL DISPLAY1 MOV SJ,#01H LCALL ENABLE LCALL DELAY RET initial:MOV SJ,#38H LCALL ENABLE MOV SJ,#08H LCALL ENABLE MOV SJ,#01H LCALL ENABLE MOV SJ,#06H LCALL ENABLE MOV SJ,#0CH LCALL ENABLE LCALL DELAY RET DISPLAY1: MOV SJ,#80H ACALL ENABLE MOV A,YEAR_H MOV B,#10 DIV AB ADD A,#30H MOV A,B ADD A,#30H LCALL XIESJ MOV A,YEAR_L MOV B,#10 DIV AB ADD A,#30H LCALL XIESJ MOV A,B ADD A,#30H LCALL XIESJ MOV A,#2DH LCALL XIESJ MOV A,MONTH MOV B,#10 DIV AB ADD A,#30H LCALL XIESJ MOV A,B ADD A,#30H LCALL XIESJ MOV A,#2DH LCALL XIESJ MOV A,DAT MOV B,#10 DIV AB ADD A,#30H LCALL XIESJ MOV A,B ADD A,#30H LCALL XIESJ MOV SJ,#0C0H LCALL ENABLE MOV A,HOUR MOV B,#10 DIV AB ADD A,#30H LCALL XIESJ MOV A,B ADD A,#30H LCALL XIESJ MOV A,#3AH LCALL XIESJ MOV A,MINUTE MOV B,#10 DIV AB ADD A,#30H LCALL XIESJ MOV A,B ADD A,#30H CALL XIESJ MOV A,#3AH LCALL XIESJ MOV A,SECOND MOV B,#10 DIV AB ADD A,#30H LCALL XIESJ MOV A,B ADD A,#30H LCALL XIESJ MOV A,#73H LCALL XIESJ MOV A,#20H LCALL XIESJ ENABLE: CLR RS CLR RW SETB EN LCALL DELAY CLR EN RET XIESJ: MOV SJ,A SETB RS CLR RW SETB EN LCALL DELAY CLR EN RET DELAY: MOV R6,#5 D1: MOV R7,#250 DJNZ R7,$ DJNZ R6,D1 RET END |
|
|
|
|
|
|
|
|
|
|
|
仿真中不存在LCD损坏的问题。何况也出现过完整显示的情形。
任何不被留意的瑕疵都会导致错误,而又难以找到缘由。 从LCD初始化和每一个显示的程序安排来查找,看看程序执行中临时修改过什么,事后又忘记恢复到原有设置。 仅供参考。 |
|
|
|
最好能更改一下程序结构,现在的结构不容易读,也不容易查错,再增加一个扫描按键的程序,
比如主程序可以改成 A1: LCALL DISPLAY LCALL SCAN_KEY JNB PRESS_KEY,A1 MOV A,KEY_VALUE CJNE A,#S_SET,A2 LCALL SET_SECOND SJMP A1 A2: CJNE A,#M_SET,A3 LCALL SET_MINUTE SJMP A1 A3: CJNE A,#H_SET,A4 LCALL SET_HOUR SJMP A1 A4: CJNE A,#D_SET,A5 LCALL SET_DATE SJMP A1 A5: CJNE A,#YUE_SET,A6 LCALL SET_MONTH SJMP A1 A6: CJNE A,#Y_SET,A7 LCALL SET_YEAR SJMP A2 A7: CJNE A,#REST,A1 SJMP START 设置时分秒等部分可以写成子程序,每个子程序都尽量只有一个出口 按键扫描程序除了要判断是哪个按键按下外,还要判断按键的松开。 |
|
|
|
DISPLAY里的初始化和开显示部分只需要再单片机启动后执行一次就可以了,不需要每次显示的时候都执行,如果不想改太多的话,可以把DISPLAY放到START里,从A1开始都用DISPLAY1应该就可以了
|
|
|
|
可以检查一下是不是坐标配置的有问题。
|
|
|
|
|
|
|
|
你先检查下你电脑能不能完全实时带的动这个系统,我之前用过垃圾的电脑就是仿真会出错,原因就是电脑配置太差,无法实时仿真电路
|
|
|
|
|
|
|
|
新手不建议用这种仿真软件,买个学习板吧,投入也不多,200元搞定,基本都有了。仿真有些东西是一准确的。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-使用AHT20进行环境监测之AHT20传感器介绍
203 浏览 0 评论
761 浏览 0 评论
806 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
743 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
1195 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11811 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 03:21 , Processed in 1.512881 second(s), Total 107, Slave 88 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号