2241|3

1

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

数字钟代码 [复制链接]

  1. #include <reg51.h> 
  2. #define uchar unsigned char; #define uint unsigned int; sbit P3_4 = P3^4; 
  3. uchar digit1[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar digit2[10] = {0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef}; uchar Union[6] = {0x7f,0xbf,0xdf,0xef,0xf7,0xfb}; uchar Time[6], i, j, count, num; 
  4. uchar INH = 15536/256, INL = 15536%256; /****初始化时间*****/ void Init(){ 
  5.     for(i = 0; i < 6; i++){         Time[i] = 0;     } 
  6.     count = 0, num = 0; } 
  7. /****延时1ms*****/ void Delay(){ 
  8.     unsigned int i; 
  9.     for(i = 0; i < 500; i++); } 
  10. /********更新时间*******/ void Update(){ 
  11.     if(num == 0) j = 5;     else j = 5-(num-1)*2;     Time[j] += 1; 
  12.     for(i = j; i > 1; i -= 2){         if(Time[i] == 10){            Time[i] = 0; 
  13.            if(++Time[i-1] == 6){ 
  14.                Time[i-1] = 0, Time[i-2]++;            } 
  15.            else return;         } 
  16.         else return;     } 
  17.     if(Time[0] != 2 && Time[1] == 10){         Time[0]++, Time[1] = 0;     } 
  18.     else if(Time[0] == 2 && Time[1] == 4){                    Time[0] = 0, Time[1] = 0;     }        }  
  19. /******显示时间********/ void Play(){ 
  20.     for(i = 0; i < 6; i++){         P1 = Union[i]; 
  21.         if(i%2 == 0 || i == 5){             P0 = digit1[Time[i]];         }         else{ 
  22.             P0 = digit2[Time[i]];         } 
  23.         Delay();     } } 
  24. /*******外部中断0******/ void Int0() interrupt 0 using 0{     if(++num == 4){ 
  25.         TR0 = 1, num = 0;     }     else{ 
  26.         TR0 = 0, TH0 = INH, TL0 = INL;     } } 
  27. /*****定时器0中断********/ void Int1() interrupt 1 using 1{     if(++count == 20){ 
  28.         count = 0, Update();     } 
  29.     TH0 = INH, TL0 = INL; }  
  30. /******外部中断1******/ void Int2() interrupt 2 using 2{     Update(); } 
  31.                        void main(){ 
  32.      PX0 = 1, PT0 = 0, PX1 = 1;      P1 = 0, Init(); 
  33.      EA = 1, ET0 = 1, TMOD = 0X01;      TH0 = INH, TL0 = INL, TR0 = 1;      EX0 = 1, IT0 = 1;      EX1 = 1, IT1 = 1;      while(1){          Play();      } }
复制代码
此帖出自51单片机论坛

最新回复

需要一点说明,不要只有代码。  详情 回复 发表于 2014-11-12 22:43
点赞 关注
 

回复
举报

5979

帖子

8

TA的资源

版主

沙发
 
编辑的格式好乱啊 要不然根本没法看
此帖出自51单片机论坛
 
个人签名生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙
===================================
做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰
 
 

回复

1119

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
都是代码~~~~~~~~
此帖出自51单片机论坛
 
 
 

回复

1万

帖子

25

TA的资源

版主

4
 
需要一点说明,不要只有代码。
此帖出自51单片机论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表