完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我打算实现在lcd上显示时分秒功能,但是无法显示,求大神们指导啊!!!要哭了都!!!
#include #define unit unsigned int #define unit unsigned long int #define unit unsigned char uchar code table[]={'0','1','2','3','4','5','6','7','8','9'}; unsigned char table[]; unsigned char table1[]=" : "; ***it RS_LCD=P0^7; ***it RW_LCD=P0^6; ***it EN_LCD=P0^5; void init_lcd(); void init_zd(); void Write_com(unsigned char com); void Write_date(unsigned char date); void lcd_pos (unsigned char pos); void delay(unit xms); void date_processing(); unit sum = 0 ; unsigned char time_seconds=0; unsigned char time_minutes=0; unsigned char time_hours=0; unsigned char x=0; void main() { unsigned char i; init_lcd(); init_zd(); while(1); { date_processing(); lcd_pos (0x41); Write_date(table[time_hours/10]); delay(5); Write_date(table[time_hours%10]); delay(5); for(i=0;i<3;i++) { Write_date(table1); delay(5); } Write_date(table[time_minutes/10]); delay(5); Write_date(table[time_minutes%10]); delay(5); for(i=0;i<3;i++) { Write_date(table1); delay(5); } Write_date(table[time_seconds/10]); delay(5); Write_date(table[time_seconds%10]); delay(500); Write_com(0x01); } } void date_processing() { time_hours=sum/3600; time_minutes=(sum%3600)/60; time_seconds=(sum%3600)/60; if(time_hours==24) { sum=0; } } void init_zd() { TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; } void lcd_pos (unsigned char pos) { Write_com(pos|0x80); } void IT_0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; x++; if(x==20) { x=0; sum++; } } void init_lcd() { Write_com(0x38); delay(5); Write_com(0x0c); delay(5); Write_com(0x06); delay(5); Write_com(0x01); delay(5); } void Write_com(char com) { RS_LCD=0; RW_LCD=0; EN_LCD=0; delay(5); P2=com; delay(5); EN_LCD=1; delay(5); EN_LCD=0; } void Write_date(unsigned char date) { RS_LCD=1; RW_LCD=0; EN_LCD=0; delay(5); P2=date; delay(5); EN_LCD=1; delay(5); EN_LCD=0; } void delay(unit xms) { unit i,j; for(i=xms;i>0;i--) for(j=100;j>0;j--) ; } |
|
相关推荐
9个回答
|
|
你要分两部分去调试 一个是 时钟芯片来的数据 处理成 时分秒 另一个是LCD1602显示程序,写成函数 有参数 这样
最佳答案
|
|
|
|
P0口有没有接上拉电阻,1602没有用查忙,用了延时,那就要看延时够不够了,增加延时试试。另外就象楼上说的,先调显示,能正确显示想要显示的内容,然后再调时间部分
|
|
|
|
屏幕能点亮吗??
|
|
|
|
|
|
|
|
显示程序没问题的,那就是时钟问题了吧 |
|
|
|
|
|
|
|
OK了 解决了 谢谢大家了
|
|
|
|
找一个调试好的简单程序,测试一下是硬件问题还是软件问题,然后解决。
|
|
|
|
学习了,看看效果如何
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
277 浏览 0 评论
【敏矽微ME32G070开发板免费体验】之原厂2812测试例程解析
368 浏览 0 评论
766 浏览 2 评论
《DNESP32S3使用指南-IDF版_V1.6》第二十六章 INFRARED_RECEPTION实验
592 浏览 0 评论
879 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12034 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 22:30 , Processed in 0.872963 second(s), Total 89, Slave 72 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号