找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1810|回复: 10
打印 上一主题 下一主题
收起左侧

单片机做一个时钟(2位7段数码管还是不会用),有些头疼

[复制链接]
跳转到指定楼层
楼主
//虽然能一秒显示一个数,但是2位7段数码管还是不会用。本来是想实现24秒,晚上18点到第二天6点路灯打开,用24秒代替24时显示出来。还有单片机内部的AD转换,,能够用LCD显示出光照强度。(本来应该是用LCD全部一起显示出来的)感觉实在不会


  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit duan=P2^6;
  5. sbit wei=P2^7;
  6. uchar code table[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xe6};
  7.      //显示0,1,2,3,4,5,6,7,8,9 共阴取反
  8. uchar num;
  9. void delay(uint);
  10. void delay(uint xms)
  11. {
  12. uint i,j;
  13. for(i=xms;i>0;i--)
  14.    for(j=110;j>0;j--);
  15. }
  16. void main()
  17. {
  18. while(1)
  19. {
  20. for(num=0;num<24;num++)
  21. {
  22. int a,b;
  23. a=num%10;
  24. b=num/10;
  25. duan=1;
  26. P0=~table[b];
  27. delay(500);
  28. duan=0;
  29. P0=~0xff;
  30. wei=1;
  31. P0=~table[a];
  32. delay(500);
  33. wei=0;
  34.   if(num>6&&num<18)
  35. {P1=0xff;}
  36. else
  37. {P1=0x00;}
  38. }

  39. }
  40.   
  41.   }
复制代码

smgm.png (134.19 KB, 下载次数: 12)

smgm.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:463277 发表于 2019-1-8 22:50 | 只看该作者
请教各位
回复

使用道具 举报

板凳
ID:123289 发表于 2019-1-9 08:35 | 只看该作者
不知道你学了多久,如果很容易的话,单片机这一行就不值钱了。一样样的弄懂,功到自然成。
回复

使用道具 举报

地板
ID:149389 发表于 2019-1-9 09:07 | 只看该作者
AT89C51 内部没有ADC,这样取光照度的电路不可行,换个思路吧。
回复

使用道具 举报

5#
ID:463277 发表于 2019-1-9 13:09 | 只看该作者
可以用ADC0804转换吧
回复

使用道具 举报

6#
ID:463277 发表于 2019-1-9 13:10 | 只看该作者
正在尝试用0804转换和1602 显示数据
回复

使用道具 举报

7#
ID:232956 发表于 2019-1-9 15:25 | 只看该作者
可以用DS1302时钟,走时精确,简单好用。显示用数码管、液晶都可以。看你手头上有啥
回复

使用道具 举报

8#
ID:463277 发表于 2019-1-10 13:01 | 只看该作者
blackstar 发表于 2019-1-9 15:25
可以用DS1302时钟,走时精确,简单好用。显示用数码管、液晶都可以。看你手头上有啥

有1602
回复

使用道具 举报

9#
ID:465924 发表于 2019-1-10 16:27 | 只看该作者
一、我看了你的仿真电路,如果你只能点亮一位数码管,希望两位一齐点亮的话,可以用轮留点亮的方法。例如第10ms点亮位1数码管,第20ms点亮位2数码管。

二、若单片机没有AD转换器的话,可以随便买个AD转换模块接在单片机即可。例如AD5686芯片。

三、我用单片机十年以上了,感觉单片机只是让你慢慢学习模电和数电的起点,慢慢学,总会学会的。

评分

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

查看全部评分

回复

使用道具 举报

10#
ID:463277 发表于 2019-1-12 12:04 | 只看该作者
donerlin 发表于 2019-1-10 16:27
一、我看了你的仿真电路,如果你只能点亮一位数码管,希望两位一齐点亮的话,可以用轮留点亮的方法。例如第 ...

恩恩,谢谢,单片机的程序还是要慢慢写才好,一步一步来
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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