找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1551|回复: 7
收起左侧

基于51单片机数码管电子时钟 实验结果出不来

[复制链接]
ID:981928 发表于 2021-11-17 18:54 | 显示全部楼层 |阅读模式
最近实验做的24小时电子钟 不知道是不是程序哪里出了问题 或者仿真电路
导致实验结果出不来
求大神指导
UU`6_7`6H}B`T49O)F]K3OL.png

51电子时钟.docx

13.59 KB, 下载次数: 11

回复

使用道具 举报

ID:752974 发表于 2021-11-18 08:52 | 显示全部楼层
仿真电路的电源必须标清楚,+5V或+3.3V,不可空白。RTC没有外扩芯片的话,只能软件实现了。
回复

使用道具 举报

ID:96682 发表于 2021-11-18 12:56 来自手机 | 显示全部楼层
共阴数码管仿真这图不适合,把源代码粘贴出来方便些,复位电路是这样么
回复

使用道具 举报

ID:123289 发表于 2021-11-18 13:39 | 显示全部楼层
仔细读读课本,上课认真一点,再多问问老师吧。
回复

使用道具 举报

ID:155507 发表于 2021-11-18 14:14 | 显示全部楼层
给你改了,对比一下就知道哪里错了。

  1. #include <reg51.h>

  2. #define uint  unsigned int
  3. #define uchar unsigned char

  4. uchar code seg[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; //共阳数码管段码

  5. uchar miao=0,fen=0,shi=0;
  6. uint count=0;
  7. uchar miao_L,miao_H,fen_L,fen_H,shi_L,shi_H;

  8. void delayms(uint ms)
  9. {
  10.         uchar i;
  11.         while(ms--)
  12.              for(i=0;i<123;i++);
  13. }

  14. void display(void)
  15. {
  16.         P2=0x20;
  17.         P0=0xbf;
  18.         delayms(2); //delayms(500);<-------延时500毫秒太久了。
  19.        
  20.         P2=0x04;
  21.         P0=0xbf;
  22.         delayms(2);
  23.        
  24.         P2=0x80;
  25.         P0=seg[miao_L];
  26.         delayms(2);
  27.        
  28.         P2=0x40;
  29.         P0=seg[miao_H];
  30.         delayms(2);
  31.        
  32.         P2=0x10;
  33.         P0=seg[fen_L];
  34.         delayms(2);

  35.         P2=0x08;
  36.         P0=seg[fen_H];
  37.         delayms(2);
  38.        
  39.         P2=0x02;
  40.         P0=seg[shi_L];
  41.         delayms(2);

  42.         P2=0x01;
  43.         P0=seg[shi_H];
  44.         delayms(2);
  45. }

  46. void main(void)
  47. {
  48.         TMOD|=0x01;
  49.         TH0=15536/256;
  50.         TL0=15536%256;
  51.         EA=1;
  52.         ET0=1;
  53.         TR0=1;
  54.         while(1)
  55.         {
  56.                 display();
  57.         }
  58. }

  59. void time() interrupt 1
  60. {
  61.         count++;
  62.         if(count==20)
  63.         {
  64.                 count=0;
  65.                 miao++;
  66.                 if(miao==60)
  67.                 {
  68.                         miao=0;
  69.                         fen++;
  70.                         if(fen==60)
  71.                         {
  72.                                 fen=0;
  73.                                 shi++;
  74.                                 if(shi==24)
  75.                                 {
  76.                                         shi=0;
  77.                                         fen=0;
  78.                                         miao=0;
  79.                                 }
  80.                         }
  81.                 }
  82.                 miao_L=miao%10;
  83.                 miao_H=miao/10%10; //<---------
  84.                 fen_L=fen%10;
  85.                 fen_H=fen/10%10; //<---------
  86.                 shi_L=shi%10;
  87.                 shi_H=shi/10%10; //<---------
  88.         }
  89. }

复制代码
回复

使用道具 举报

ID:980889 发表于 2021-11-18 22:02 | 显示全部楼层
复位接错了,直接接电源了
回复

使用道具 举报

ID:624769 发表于 2021-11-18 22:49 | 显示全部楼层
C_Y_J 发表于 2021-11-18 22:02
复位接错了,直接接电源了

同上,RST引脚 要接在电容和电阻之间。
回复

使用道具 举报

ID:332444 发表于 2021-11-19 14:30 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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