找回密码
 立即注册

QQ登录

只需一步,快速开始

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

基于51单片机的74HC595时钟显示程序

[复制链接]
跳转到指定楼层
楼主
ID:82098 发表于 2018-8-27 21:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
基于51单片机的74HC595时钟显示

单片机源程序如下:
  1. #include <REGX51.H>
  2. #define uint unsigned int
  3. #define uchar unsigned char

  4. sbit sda=P2^0;
  5. sbit sclk=P2^2;
  6. sbit rclk=P2^1;


  7. uchar hou,min,sec;


  8. uchar code table[]=        { 0x84, 0xF5, 0x4C, 0x64, 0x35, 0x26, 0x06, 0xF4, 0x04, 0x24, 0x14, 0x07, 0x8E, 0x45, 0x0E, 0x1E, 0x7F, 0xFB, 0xFF };

  9. void rck(void)
  10. {
  11.         rclk=0;
  12.         rclk=1;
  13.         rclk=0;
  14. }

  15. void shift(uchar dat)
  16. {
  17.         uchar i;
  18.         rclk=0;
  19.         dat=table[dat];
  20.         for(i=0;i<8;i++)
  21.         {
  22.                 sclk=0;
  23.                 sda=(dat<<i)&0x80;
  24.                 sclk=1;       
  25.         }
  26. }


  27. void init(void)
  28. {
  29.         TMOD=0x01;
  30.         TH0=(65536-50000)/256;
  31.         TL0=(65536-50000)%256;
  32.         TR0=1;
  33.         ET0=1;
  34.         EA=1;
  35. }
  36. void main(void)                               
  37. {        uchar sec1=255;
  38.     init();
  39.         while(1)
  40.         {
  41.                 if(sec1!=sec)
  42.                 {
  43.                         shift(sec%10);
  44.                         shift(sec/10);
  45.                         shift(16);
  46.                         shift(min%10);
  47.                         shift(min/10);
  48.                         shift(16);
  49.                         shift(hou%10);
  50.                         shift(hou/10);
  51.                         rck();
  52.                         sec1=sec;
  53.                 }
  54.        
  55.         }       
  56. }
  57. void time0(void) interrupt 1
  58. {       
  59.     static uchar tcount;
  60.     TH0=(65536-50000)/256;
  61.         TL0=(65536-50000)%256;
  62.         tcount++;
  63.         if(tcount==20)
  64.         {
  65.                 tcount=0;
  66.                 sec++;
  67.                 if(sec==60)
  68.                 {
  69.                         sec=0;
  70.                         min++;
  71.                         if(min==60)
  72.                         {
  73.                                 min=0;
  74.                                 hou++;
  75.                                 if(hou==24)
  76.                                 {
  77.                                         hou=0;
  78.                                 }
  79.                         }
  80.                 }
  81.         }
  82. }
复制代码

所有资料51hei提供下载:
基于51单片机的74HC595时钟显示程序.rar (12.28 KB, 下载次数: 46)


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

使用道具 举报

沙发
ID:1 发表于 2018-8-27 23:01 | 只看该作者
补全原理图即可获得100+黑币
回复

使用道具 举报

板凳
ID:778921 发表于 2021-12-11 22:50 | 只看该作者
有仿真图参考吗
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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