历史上的今天
返回首页

历史上的今天

今天是:2025年03月16日(星期日)

正在发生

2021年03月16日 | 51study实例-C51闹铃程序

2021-03-16 来源:eefocus

#include

#include

#define comdir P3_2

#define wirespeaker P1_3

#define wiret0 T0

#define wiret1 T1

#define adr_delay1s 0x1086

#define adr_print10ms 0x1000

#define adr_print80ms 0x101A

#define adr_screen_black 0x10BA

#define adr_screen_clear 0x10CD

#define adr_key_search 0X10EB

#define adr_sound500hz 0x109E

#define max_timer 24*3

void (* pFunc)(void); //定义指向函数的指针

void (* Print80ms)(void);

int CodeChange(int i);

/*define a struct*/

struct time_str{

unsigned char hour;

unsigned char min;

unsigned char sec;

}today;

int depart=20;

int t0int_flag=0;

unsigned char data dispbuf[8] _at_ 0x30;

unsigned char code Sound_Date[max_timer]={

0x00 0 0 0 0 0 0 0 0 0 0 0

0x0b 0 0 0 0 0 0 0 0 0 0 0

0x0b 0 0 0 0 0 0 0 0 0 0 0

0x0b 0 0 0 0 0 0 0 0 0 0 0

0x0b 0 0 0 0 0 0 0 0 0 0 0

0x0b 0 0 0 0 0 0 0 0 0 0 0

};

/*TIMER0 INTERRUPT*/

void timer0(void) interrupt 1{

wiret1=!wiret1;

TH0=0X3C;

TL0=0XB0;

depart-=1;

if (depart%10==0){

t0int_flag=!t0int_flag;

}

if (depart==0){

   depart=20;

   today.sec+=1;

   wiret0=!wiret0;

   if (today.sec==60){

      today.sec=0;

      today.min+=1;

      if(today.min==60){

        today.min=0;

        today.hour+=1;

        if(today.hour==24){

          today.hour=0;

          }

        }

      }

   }

}

/*SERIAL PORT INTERRUPT*/

void serial(void) interrupt 4{

}

main()

{

char *P;

int j=0;

int i=0;

int k=0;

P3_4=0; //T0=0

P3_4=1; //T0=1

P3_5=0; //T1=0

P3_5=1; //T1=1

pFunc=adr_screen_black; //screen black

(*pFunc)();

pFunc=adr_screen_clear; //clrar screen ram

(*pFunc)();

/*P=0X30;

(*P)=0X79;

P++;

(*P)=0X71;*/

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

//SP=0XD0;

TMOD=0X21;

//TH1=0XF3;

//TL1=0XF3;

//PCON=0;

//SCON=0X40;

//TR1=1;

ET1=0;

//REN=1;

TH0=0X3C; /* 50ms interrupt */

TL0=0XB0;

TR0=1;

ET0=1;

EA=1;

//TI=0;

//SBUF=0XAA; //MON51 占用串口

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

pFunc=adr_sound500hz;

(*pFunc)(); /*发声音一秒*/

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

today.hour=0;

today.min=0;

today.sec=0;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

for(;;)

{

pFunc=adr_print10ms;

(*pFunc)(); /*screen out*/

j=CodeChange(today.hour/10);

k=CodeChange(today.hour%10);

k=k|0x80;

P=0x30;

(*P)=j;

P++;

(*P)=k;

P++;

j=CodeChange(today.min/10);

k=CodeChange(today.min%10);

(t0int_flag==1)?(k=k|0x80):(k=k&0x7f);

(*P)=j;

P++;

(*P)=k;

P++;

j=CodeChange(today.sec/10);

k=CodeChange(today.sec%10);

(*P)=j;

P++;

(*P)=k;

for(i=0;i    if((today.hour==Sound_Date[i*3])&&(today.min==Sound_Date[i*3+1])&&(today.sec==Sound_Date[i*3+2])){

        pFunc=adr_sound500hz;

        (* pFunc)(); /*发声音一秒*/

    }

    }

    pFunc=adr_key_search;

    (* pFunc)();

    i=ACC;

    if (CY==1) {

      //while (CY==1){ /***等待放手***/

      pFunc=adr_print80ms;

      (* pFunc)();

      (* pFunc)();

      (* pFunc)();

      //pFunc=adr_key_search;

      //(* pFunc)();

      //}

    switch(i){

      case 7:

      today.hour+=1;

      if(today.hour>23){today.hour=0;}

      break;

      case 6:

      today.hour-=1;

      if(today.hour==255){today.hour=23;}

      break;

      case 5:

      today.min+=1;

      if(today.min>59){today.min=0;}

      break;

      case 4:

      today.min-=1;

      if(today.min==255){today.min=59;}

      break;

      case 3:

      today.sec+=1;

      if(today.sec>59){today.sec=0;}

      break;

      case 2:

      today.sec-=1;

      if(today.sec==255){today.sec=59;}

      break;

      }

    }

  }

}

//clock table:6:00:00 6:30:00 7:00 7:45:00 0:2:08 0:3:09

int CodeChange(int i){

// 3fh 6 5 4 66 6 7 7 7 67 {

  case 0:

  i=0X3F;

  break;

  case 1:

  i=0X6;

  break;

  case 2:

  i=0X5b;

  break;

  case 3:

  i=0X4F;

  break;

  case 4:

  i=0X66;

  break;

  case 5:

  i=0X6d;

  break;

  case 6:

  i=0X7d;

  break;

  case 7:

  i=0X7;

  break;

  case 8:

  i=0X7f;

  break;

  case 9:

  i=0X67;

  break;

  };

return i;

}


推荐阅读

史海拾趣

Faraday Electronics Inc公司的发展小趣事

在电子通信领域,Faraday Electronics Inc一直以其卓越的技术创新能力著称。公司自创立之初,就专注于研发高性能的通信芯片。经过多年的技术积累,终于在XXXX年成功推出了一款具有划时代意义的5G通信芯片。这款芯片不仅性能卓越,而且功耗极低,一经推出便迅速占领了市场,为公司带来了可观的利润。

Eureka Microelectronics Inc公司的发展小趣事

为了支持公司的持续发展和业务扩张,Eureka成功完成了多轮融资。这些融资不仅为公司提供了充足的资金支持,也吸引了众多投资者的关注。借助这些资金,Eureka加大了在研发、生产、销售等方面的投入,进一步提升了公司的竞争力和市场地位。同时,公司也积极开展战略合作,与上下游企业建立了紧密的合作关系,共同推动产业链的发展。

BAE Systems公司的发展小趣事

随着全球化的加速,BAE Systems公司积极寻求跨国合作与拓展机会。公司与多家国际知名企业建立了紧密的合作关系,共同开展研发项目和市场拓展。这些合作不仅帮助公司获取了更多的技术和市场资源,也提升了公司在全球电子行业的地位和影响力。通过跨国合作,BAE Systems公司的产品和服务逐渐进入全球市场,为公司的持续发展注入了新的活力。

Boyd Corporation公司的发展小趣事

随着公司规模的扩大和市场需求的增长,Boyd Corporation积极拓展全球业务版图。公司在多个国家和地区设立了生产基地和研发中心,以便更好地服务全球客户。通过全球化布局,Boyd Corporation不仅提升了生产效率,还加强了与全球客户的合作关系,进一步巩固了其在电子行业的领导地位。

Analog公司的发展小趣事

Boyd Corporation自创立之初,便致力于研发创新的热管理和环境密封解决方案。公司不断投入研发资源,推出了一系列高效、可靠的产品,这些产品在电子行业中迅速获得了广泛应用。通过持续创新,Boyd Corporation逐渐在市场中树立了技术领先的形象,吸引了众多合作伙伴和客户的关注。

CIPS公司的发展小趣事

随着CIPS系统的不断发展壮大,其在行业内的地位和影响力也逐渐提升。多家银行和金融机构因积极运用CIPS标准收发器推动跨境人民币业务发展而荣获奖项,这是对CIPS系统及其运营机构的高度认可。这些荣誉和奖项不仅彰显了CIPS在行业内的领先地位,也为其未来的发展奠定了坚实基础。

问答坊 | AI 解惑

步进系统的运行精度

  从步进电机的角度来说,需要满足一些公差标准,包括机械公差和电气公差。相绕组电感的不均衡是重要因素,其他一些原因包括极靴、转子的不对准,定转子间气隙的不均匀,定转子齿槽关系,以及转矩脉动等。达到并持续控制这些参数并不是非常困难的 ...…

查看全部问答>

keil学习(二)

二、工程的详细设置 图 4 重复加入文件的错误 工程建立好以后,还要对工程进行进一步的设置,以满足要求。 首先点击左边 Project 窗口的 Target 1,然后使用菜单“Project->Option for target ‘target1’” 即出现对工程设置的对话框,这个对 ...…

查看全部问答>

向gooogleman求救!

    我有一个多普达828的主板,系统是WM6.1 CPU是PXA272 ROM是128M RAM是64M,手机\\PDA功能都正常.这个主板有三个UART,其中一个STUART应该接红外端口用来进行红外数据传输.我把红外的驱动卸载了(也就是把驱动用的DLL改了名)然后,对这个RXD ...…

查看全部问答>

步进电机的嵌入式驱动程序

跪求eeworld的朋友们给我一个步进电机的嵌入式驱动程序,或者给我一个可以学习和参考的内容.我的一个设计是关于步进电机的嵌入式驱动程序的.请赐教. 电子邮件:blueink_200451@hotmail.com qq:279697361 请写:步进电机 或 嵌入式驱动程序 和任何和 ...…

查看全部问答>

怎么学好DSP和单片机

各位达人,你们好!我是一名大三的学生,我的专业是电子信息工程,读大二的时候因为没有用心好好学数电,模电,特别是高频,现在我参加了单片机培训,对单片机比较感兴趣,想扎实学好单片机这门技术,学校也开了数字信号处理,老师说非常重要,因为 ...…

查看全部问答>

winCE下进行FTP传输文件编程

如题:小弟想在winCE实现FTP给远程主机(是PC机)传输文件的功能,怎样编程呀,需要哪些函数呢?…

查看全部问答>

救急!哪位有关于单片机的英文资料?

各位大虾:     现在小弟急用关于单片机的英文资料,在网上找了半天没找到! 希望大家帮帮忙啊!能有对应的中文翻译更好!英文大概5000字符的,多了当然更好! 谢谢了!! 我的邮箱:s1029384756@163.com      QQ:3052847 ...…

查看全部问答>

大家给推荐几本关于H.264的视频编解码的书

现在在做视频相关的工作,可对视频编解码一窍不通,大家给推荐几本这方面的书,谢谢了…

查看全部问答>

1138驱动1602的问题,各位大神进来看看

请问5V的1602能直接接到1138上吗?要不要上拉?我的没加上拉,一直显示不了,如果是程序问题,哪位高手能给个能用的程序不,谢谢!…

查看全部问答>

PADS制库,如此方便

原来一直手工制的,今天突然想到它的Wizard,随即打开看看,哇,原来这么好用: 不用算,不用量,直接将datasheet中的数据填上即可了, 真方便!…

查看全部问答>