找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
楼主: xiaoyao
打印 上一主题 下一主题
收起左侧

单片机+lcd12864万年历制作(大字体 超炫好看)

  [复制链接]
201#
ID:218266 发表于 2017-7-13 20:41 | 只看该作者

程序
回复

使用道具 举报

202#
ID:152163 发表于 2017-8-16 13:59 | 只看该作者
ankun11 发表于 2015-6-14 09:45
制作成功,改了下。

我这边显示有好多点点是怎么回事
回复

使用道具 举报

203#
ID:227956 发表于 2017-8-16 18:58 | 只看该作者
太棒了,51hei有你更精彩..
回复

使用道具 举报

204#
ID:152163 发表于 2017-8-16 22:14 | 只看该作者
ankun11 发表于 2015-6-14 09:45
制作成功,改了下。

你好  我问一下  问什么我的程序出来 有好多黑点   感觉是字库的问题  能帮忙看看吗
回复

使用道具 举报

205#
ID:82134 发表于 2017-8-20 09:39 | 只看该作者
王志鹏23 发表于 2017-8-16 22:14
你好  我问一下  问什么我的程序出来 有好多黑点   感觉是字库的问题  能帮忙看看吗

贴个图片,大家一起看看。
回复

使用道具 举报

206#
ID:140644 发表于 2017-8-23 12:03 | 只看该作者
辛苦,辛苦,
回复

使用道具 举报

207#
ID:163950 发表于 2017-8-24 08:41 | 只看该作者
楼主我的为什么只要调用void disp_sfm()这个函数就这样,还保留开机界面,开机时候显示的都正常,就是进入时间界面这样!!请指导!void disp_sfm()
{
        uint temper;
        uchar temper_ge,temper_shi,temper_bai,day_temp,date_temp,month_temp,year_temp;
        lcdWriteCommand(0x36);        //启动扩充指令集,启动绘图模式
          ss = read_clock(0x81);        //更新数据                                                

        if(sec_temp!=ss)//读取秒,只要有改变液晶显示也改变
        {
                sec_temp=ss;
                deal(sec_temp);
                if(secl!=shi)
                {
                        secl=shi;
                        display(6,secl);
                }
                display(7,ge);       
        }
        mm = read_clock(0x83);                                                         //读取分,只要有改变液晶显示也改变
        if(min_temp!=mm)
        {
                min_temp=mm;
                deal(mm);
                display(3,shi);
                display(4,ge);
        }
        hh = read_clock(0x85);                                                        //读取小时,只要有改变液晶显示也改变
        if(hour_temp!=hh)
        {
                hour_temp=hh;
                deal(hh);
                display(0,shi);
                display(1,ge);
        }

        if(ge/1%2==0)
        {
        display(2,10);
        display(5,10);
        }
        else
        {
        display(2,11);
        display(5,11);
        }       
         
        lcdWriteCommand(0x30);
        dd = read_clock(0x87);                                                //读取日,只要有改变液晶显示也改变
        if(date_temp!=dd)
        {       
                date_temp=dd;
                deal(dd);
                lcdWriteCommand(0x85);
                lcdWriteData(shi+0x30);
                lcdWriteData(ge+0x30);
        }
        mo = read_clock(0x89);                                                //读取月,只要有改变液晶显示也改变
        if(month_temp!=mo)
        {
                month_temp=mo;
                lcdWriteCommand(0x83);
                deal(mo);
                lcdWriteData(shi+0x30);
                lcdWriteData(ge+0x30);
        }
        yy = read_clock(0x8d);                                                        //读取年,只要有改变液晶显示也改变
        if(year_temp!=yy)
        {
                year_temp=yy;
                lcdWriteCommand(0x81);
                deal(yy);
                lcdWriteData(shi+0x30);
                lcdWriteData(ge+0x30);
        }
                xq = read_clock(0x8b);                                          //读取星期,只要有改变液晶显示也改变
        if(day_temp!=xq)
        {       
                day_temp=xq;
                switch(xq)
        {
                case 1:        dispString(3, 2, 1, "一");break;
                case 2:        dispString(3, 2, 1, "二");break;
                case 3:        dispString(3, 2, 1, "三");break;
                case 4:        dispString(3, 2, 1, "四");break;
                case 5:        dispString(3, 2, 1, "五");break;
                case 6:        dispString(3, 2, 1, "六");break;
                case 7:        dispString(3, 2, 1, "日");break;
                default:break;
                }
        }
        temper=read_temp();//读取温度
        temper_ge=temper%10+0x30;
        temper_shi=temper%100/10+0x30;
        temper_bai=temper/100+0x30;

        //lcdWriteCommand(0x9b); //此处可以用来测试各种红外遥控的键值
        //lcdWriteData(workcode/10+0x30);
        //lcdWriteData(workcode%10+0x30);

        if(tflag==1)
        {

                        dispString(3, 4, 1, " -");
        }
        else
        {
         dispString(3, 4, 1, "  ");
        }
        if(temper_bai==0x30) temper_bai=0x20;
        lcdWriteCommand(0x9d);
        lcdWriteData(temper_bai);
        lcdWriteData(temper_shi);
        lcdWriteData('.');
        lcdWriteData(temper_ge);

        lcdWriteCommand(0x36);       

},

1.jpg (71.63 KB, 下载次数: 329)

1.jpg

2.jpg (41.92 KB, 下载次数: 312)

2.jpg
回复

使用道具 举报

208#
ID:82134 发表于 2017-8-24 18:09 | 只看该作者
c03131401 发表于 2017-8-24 08:41
楼主我的为什么只要调用void disp_sfm()这个函数就这样,还保留开机界面,开机时候显示的都正常,就是进入 ...

调用前清屏试试。
回复

使用道具 举报

209#
ID:232571 发表于 2017-9-12 10:18 来自手机 | 只看该作者
楼主厉害!
回复

使用道具 举报

210#
ID:151000 发表于 2017-9-26 16:52 | 只看该作者
谢谢楼主分享!!!  
回复

使用道具 举报

211#
ID:68429 发表于 2017-9-26 22:47 来自手机 | 只看该作者
学习一下大字体 谢谢分享
回复

使用道具 举报

212#
ID:240756 发表于 2017-10-18 21:41 | 只看该作者
我就是想瞅瞅啥原理
回复

使用道具 举报

213#
ID:187478 发表于 2017-10-22 16:20 | 只看该作者
请问,你这用的是AT89S51?能存储这么大的么,我用了下STC的,程序太大,少不进去
回复

使用道具 举报

214#
ID:187478 发表于 2017-10-22 20:13 | 只看该作者
您好,请问下 为什么PCB中还有跟线没连上,你做出实物了没?  不会有问题吧
回复

使用道具 举报

215#
ID:187478 发表于 2017-10-22 20:17 | 只看该作者
ankun11 发表于 2015-6-14 09:45
制作成功,改了下。

您好,可以把你的万年历的程序等都发过来吗?谢谢我的邮箱798013942@qq.com
回复

使用道具 举报

216#
ID:240523 发表于 2017-10-23 09:04 | 只看该作者
怎么原理图没有数码管的
回复

使用道具 举报

217#
ID:240523 发表于 2017-10-25 13:06 | 只看该作者
ankun11 发表于 2015-7-2 19:43
已经发给你了,程减掉了些也还有8K多,89C52只有8K的写不进。我用的是STC11F20XE.20K

可以发程序  元件清单  还有仿真图给我吗   
回复

使用道具 举报

218#
ID:65179 发表于 2017-11-4 20:55 | 只看该作者
编译通不过
回复

使用道具 举报

219#
ID:246166 发表于 2017-11-8 18:32 | 只看该作者
楼主太强了,学习学习
回复

使用道具 举报

220#
ID:70915 发表于 2017-11-22 15:16 | 只看该作者
楼主牛逼。用的是51单片机的哪个型号?
回复

使用道具 举报

221#
ID:263727 发表于 2017-12-20 13:35 | 只看该作者
灰常感谢,多谢分享
回复

使用道具 举报

222#
ID:123592 发表于 2017-12-20 16:55 | 只看该作者
共享资料的黑币奖励!
回复

使用道具 举报

223#
ID:210978 发表于 2017-12-21 11:31 | 只看该作者
51hei有你更精彩..
回复

使用道具 举报

224#
ID:272155 发表于 2018-1-5 21:55 | 只看该作者
很好的帖子
回复

使用道具 举报

225#
ID:266116 发表于 2018-1-6 15:15 | 只看该作者
下了一个看了,谢谢分享.
回复

使用道具 举报

226#
ID:253767 发表于 2018-1-7 08:13 | 只看该作者
好东西,学习
回复

使用道具 举报

227#
ID:273753 发表于 2018-1-9 14:55 | 只看该作者
很棒  很给力
回复

使用道具 举报

228#
ID:263912 发表于 2018-1-26 17:18 | 只看该作者
请问用的什么单片机
回复

使用道具 举报

229#
ID:270854 发表于 2018-1-28 10:24 | 只看该作者
用不了,不显示
回复

使用道具 举报

230#
ID:276675 发表于 2018-1-28 21:16 | 只看该作者
用不了,不显示,,感觉有点忽悠
回复

使用道具 举报

231#
ID:280516 发表于 2018-1-28 22:09 | 只看该作者
51hei有你更精彩
回复

使用道具 举报

232#
ID:263912 发表于 2018-2-2 08:18 来自手机 | 只看该作者
lan1498 发表于 2015-10-27 22:18
**** 作者被禁止或删除 内容自动屏蔽 ****

我也是,不过没成功
回复

使用道具 举报

233#
ID:263912 发表于 2018-2-5 20:27 | 只看该作者
lan1498 发表于 2015-10-27 22:18
**** 作者被禁止或删除 内容自动屏蔽 ****

成功了么
回复

使用道具 举报

234#
ID:279835 发表于 2018-2-16 14:41 | 只看该作者
很给力
回复

使用道具 举报

235#
ID:126297 发表于 2018-3-1 17:20 | 只看该作者
楼主是不是在发布该帖子的时候,对源程序进行了改动?在楼主提供的用Altium Designer制作的原理图和PCB图上,可以发出清楚地看出,单片机控制LCD12864液晶显示器的控制线一共有6条,分别是P1.0、P1.1、P1.2,P2.5、P2.6和P2.7,但是在楼主提供的源程序里,只有对P1.0、P1.1、P1.2引脚的定义,根本没有对P2.5、P2.6和P2.7引脚进行声明。
请问,楼主,您发布的该12864液晶屏的时钟,在缺少三根控制线的情况下,成功制作出来的视频是怎么做到的?

评分

参与人数 1黑币 +60 收起 理由
admin + 60 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

236#
ID:126297 发表于 2018-3-1 17:21 | 只看该作者
楼主啊,做人要厚道啊!即便是想保密您的源程序,也不能将错误的源程序拿出来晒吧?
回复

使用道具 举报

237#
ID:126297 发表于 2018-3-1 17:25 | 只看该作者
在同样的论坛中,“12864万年历+温度计+闹钟+温度”这个帖子的作者,才是真正的给力的厚道人,他的程序,不加任何改动,直接用proteus仿真,一次通过,太给力了!
回复

使用道具 举报

238#
ID:288729 发表于 2018-3-7 15:38 | 只看该作者
正在制作这一类的作品,感谢
回复

使用道具 举报

239#
ID:289019 发表于 2018-3-8 09:31 | 只看该作者
过年的时候做的GD32+SHT21+DS3231+TFT
回复

使用道具 举报

240#
ID:102598 发表于 2018-3-12 11:52 | 只看该作者
很棒,值得学习
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表