找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机LED大时钟制作 原理图源程序

  [复制链接]
跳转到指定楼层
楼主
ID:76686 发表于 2015-4-12 00:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
     这是一款单片机时钟原理图源程序,该款单片机时钟使用的单片机是STC89C52RC,显示数码管是用发光二极管焊的,设计一四个按键,分别是用来调整时间小时、分钟用的。实物是由一块单片机最小系统板及自己焊接的数码显示板组成,单片机最小系统板上设计RS232-TTL的电平转换电路,这样烧写单片机程序就不需要额外的硬件,让初学者学习实作这块单片机时钟板变得简单省费用。源程序及电原理图的PROTEL格式的文件这了方便爱好者者使用,已压缩成压缩包,需要的可以从下面的地址自己下载,这里只是将制作好的实物及JPG格式的原理图贴出来。实物中用到的单片机最小系统本空间有具体的制作方法,大家可以参考制作。


      制作资料下载: 单片机时钟原理图源程序.rar (199.09 KB, 下载次数: 86)



下面是电路原理图:


    推荐:

          手把手制作单片机最小系统:http://www.51hei.com/bbs/dpj-33306-1.html
          用单片机最小系统做18B20温度测量试验:http://www.51hei.com/bbs/dpj-31415-1.html

本程序源代码如下:
  1. #include<reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. uchar code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
  5. sbit d1=P1^0;//定义d1
  6. sbit d2=P1^7;//定义d1
  7. sbit key1=P3^2;//按键定义
  8. sbit key2=P3^3;
  9. sbit key3=P3^4;
  10. sbit key4=P3^5;
  11. sbit LED1=P2^3;
  12. sbit LED2=P2^2;
  13. sbit LED3=P2^1;
  14. sbit LED4=P2^0;

  15. uchar temp,aa,miaos,miaog,qian,bai,shi,ge,fen,sh,bb,mh;
  16. void display(uchar qian,uchar bai,uchar shi,
  17. uchar ge);
  18. void delay(uint z)
  19. {
  20.         uint x,y;
  21.         for(x=z;x>0;x--)
  22.         for(y=110;y>0;y--);
  23. }
  24. void init();
  25. void main()
  26. {       
  27.         init();//初始化子程序
  28.         mh=1;
  29.         while(1)
  30.         {       
  31.                 if(key1==0)
  32.                 {
  33.                         delay(200);
  34.                         while(key1==0);
  35.                         fen++;
  36.                         if(fen==59)
  37.                         {
  38.                                 fen=0;
  39.                         }
  40.                 }
  41.                 if(key2==0)
  42.                 {
  43.                         delay(200);
  44.                         while(key2==0);
  45.                         if(fen!=0)
  46.                         {
  47.                                 fen--;
  48.                         }
  49.                         if(fen==0)
  50.                         {
  51.                                 fen=59;
  52.                         }
  53.                 }
  54.                 if(key3==0)
  55.                 {
  56.                         delay(200);
  57.                         while(key3==0);
  58.                         sh++;
  59.                         if(sh==23)
  60.                         {
  61.                                 sh=0;
  62.                         }
  63.                 }
  64.                 if(key4==0)
  65.                 {
  66.                         delay(200);
  67.                         while(key4==0);
  68.                         if(sh!=0)
  69.                         {
  70.                                 sh--;
  71.                         }
  72.                         if(sh==0)
  73.                         {
  74.                                 sh=23;
  75.                         }

  76.                 }
  77.                 if(aa==20)
  78.                 {
  79.                         bb++;
  80.                         aa=0;
  81.                         miaog=bb%10;
  82.                         miaos=bb/10%6;
  83.                         mh=~mh;
  84.                 }
  85.                 if(bb==60)
  86.                 {
  87.                         fen++;
  88.                         bb=0;
  89.                 }
  90.                 ge=fen%10;
  91.                 shi=fen/10%6;
  92.                 if(fen==60)
  93.                 {        sh++;
  94.                         fen=0;
  95.                         fen=0;
  96.                        
  97.                 }
  98.                 bai=sh%10;
  99.                 qian=sh/10;
  100.                 if(bai==10)
  101.                 bai=0;
  102.                 if(qian==2)
  103.                 {
  104.                         if(bai==4)
  105.                         {
  106.                                 qian=0;
  107.                                 bai=0;
  108.                         }
  109.                 }
  110.                 if(sh==24)
  111.                 {       
  112.                         sh=0;
  113.                 }
  114.                 display(qian,bai,shi,ge);
  115.         }
  116. }



  117. void display(uchar qian,uchar bai,uchar shi,
  118. uchar ge)
  119. {
  120.         LED1=1;
  121.         P0=table[qian];
  122.         LED1=0;
  123.         delay(1);
  124.         LED1=1;

  125.         LED2=1;
  126.         P0=table[bai];
  127.         LED2=0;
  128.         delay(1);
  129.         LED2=1;

  130.                        
  131.         LED2=1;       
  132.         if(mh==1)
  133.         {
  134.            P0=0x7F;               
  135.         }
  136.         else P0=0xFF;
  137.         LED2=0;       
  138.         delay(3);
  139.         LED2=1;
  140.                                
  141.         LED3=1;
  142.         P0=table[shi];
  143.         LED3=0;
  144.         delay(1);
  145.         LED3=1;
  146.                
  147.         LED4=1;
  148.         P0=table[ge];
  149.         LED4=0;
  150.         delay(1);
  151.         LED4=1;
  152. }

  153. void init()
  154. {       
  155.         d1=1;
  156.         d2=1;
  157.         fen=0;
  158.         sh=0;
  159.         temp=0;
  160.         TMOD=0x01;
  161.         TH0=(65536-50000)/256;
  162.         TL0=(65536-50000)%256;
  163.         EA=1;
  164.         ET0=1;
  165.         TR0=1;       
  166. }

  167. void timer0() interrupt 1
  168. {
  169.         TH0=(65536-50000)/256;
  170.         TL0=(65536-50000)%256;
  171.         aa++;       
  172. }
复制代码





评分

参与人数 1黑币 +5 收起 理由
qjzyx + 5 绝世好帖!

查看全部评分

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

使用道具 举报

沙发
ID:70614 发表于 2015-4-20 20:19 | 只看该作者
谢谢楼主分享。我认识你一年多了可是没和你说过一句话
回复

使用道具 举报

板凳
ID:78768 发表于 2015-5-3 20:25 | 只看该作者
很棒。。。。。。。。。。。。
回复

使用道具 举报

地板
ID:19947 发表于 2015-8-8 23:18 | 只看该作者
原理图内段码需不需要上拉电阻?
回复

使用道具 举报

5#
ID:130231 发表于 2017-3-12 21:35 | 只看该作者
不错,我也下载看看。
回复

使用道具 举报

6#
ID:192615 发表于 2017-5-7 06:35 | 只看该作者
很棒。。。。。。。。。。。。
回复

使用道具 举报

7#
ID:261637 发表于 2017-12-15 15:38 | 只看该作者
不错,我也下载看看。
回复

使用道具 举报

8#
ID:266116 发表于 2017-12-25 21:18 | 只看该作者
从图上看很好,平常都是用89C2051做的,改天就做个试试!
回复

使用道具 举报

9#
ID:269121 发表于 2017-12-30 11:15 | 只看该作者
很棒,有时间做一个
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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