利用51的定时器和1602的一个时钟程序

发布者:EtherealGrace最新更新时间:2015-10-16 来源: eefocus关键字:定时器 手机看文章 扫描二维码
随时随地手机看文章
#include

#define uchar unsigned char
#define uint unsigned int
sbit rs=P3^0;
sbit lcden=P3^1;
sbit s1=P3^6;
sbit s2=P3^7;
uchar count,shi,fen,miao,num;
uchar code table[]="    2011-02-25";
uchar code table1[]="    00:00:00";
void reflesh(uchar add,uchar date);
void delay(uchar z)
{
 uint x,y;
 for(x=0;x   for(y=0;y<110;y++);  
}
void write_ins(uchar add)
{
 rs=0;
 delay(5);
 P1=add;
 lcden=1;
 
 delay(5);
 lcden=0;
 delay(5);
}
void write_date(uchar add)
{
 rs=1;
 delay(5);
 P1=add;
 lcden=1;
 
 delay(5);
 lcden=0;
 delay(5);
}
void init()
{
 uchar i;
 lcden=0;
 shi=0;
 fen=0;
 miao=0;
 write_ins(0x38);
 write_ins(0x0c);
 write_ins(0x06);
 write_ins(0x01);
 write_ins(0x80);
 for(i=0;i<14;i++)
 {
  write_date(table[i]);
  delay(5);
 }
 write_ins(0x80+0x40);
 for(i=0;i<13;i++)
 {
  write_date(table1[i]);
  delay(5);
 }
 
 TMOD=0x01;
 TH0=(65536-50000)/256;
 TL0=(65536-50000)%6;
 EA=1;
 ET0=1;
 TR0=1;
}
void keyscan()
{

 if(num==""||num==0)
 {
 if(s1==0)
  delay(5);
  if(s1==0)
  {
   while(!s1);
   TR0=0;
   write_ins(0x80+0x40+11);
   write_ins(0x0c);
   num=1;
  }
 }
 if(num==1) 
  {
  if(s1==0)
   delay(5);
   if(s1==0)
   {
   while(!s1);
    write_ins(0x80+0x40+8);
    write_ins(0x0c);
    num=2;
   
  
  if(num==2)   
   
   if(s1==0)
    delay(5);
    if(s1==0)
    {
    while(!s1);
    write_ins(0x80+0x40+5);
    write_ins(0x0c);
    num=3;
    }
    }
  if(num==3)  
   {
   if(s1==0)
     delay(5);
    if(s1==0)
     {
    while(!s1);
    write_ins(0x0c);
    TR0=1;
    num=0;
         
    }
   
   
   
   
   
   
   if(num!=0)
   {
    if(num==1)
    {
     if(s2==0)
      delay(5);
      if(s2==0)
       {
       while(!s2);
       miao++;
       if(miao==60)
       miao=0;
       reflesh(0x80+0x40+10,miao);
       }
    }
    if(num==2)
    {
     if(s2==0)
      delay(5);
      if(s2==0)
       {
       while(!s2);
       fen++;
       if(fen==60)
       miao=0;
       reflesh(0x80+0x40+7,fen);
       }
    }
    if(num==3)
    {
     if(s2==0)
      delay(5);
      if(s2==0)
       {
       while(!s2);
       shi++;
       if(shi==24)
       shi=0;
       reflesh(0x80+0x40+4,shi);
       }
    }
   }
}
void main()
{
 init();
 
 while(1)
 {
  keyscan();
  if(count==20)
  {
   count=0;
   miao++;
   if(miao==60)
   {
    miao=0;
    fen++;
    if(fen==60)
    {
     fen=0;
     shi++;
    }
    reflesh(0x80+0x40+4,shi);
   }
   reflesh(0x80+0x40+7,fen);
  }
  reflesh(0x80+0x40+10,miao);


   }

}

void timer0() interrupt 1
{
 TH0=(65536-50000)/256;
 TL0=(65536-50000)%6;
 count++; 
}
void reflesh(uchar add,uchar date)
{
 uchar ten,ge;
 write_ins(add);
 ten=date/10;
 ge=date;
 write_date(0x30+ten);
 write_date(0x30+ge);


}

关键字:定时器 引用地址:利用51的定时器和1602的一个时钟程序

上一篇:nrf24l01 2.4GHZ无线发射接收模块接收程序
下一篇:简单的51与pc的串口通讯(用串口中断实现

推荐阅读最新更新时间:2024-03-16 14:36

基于51单片机wifi物联网的浇花控制系统
一.硬件方案 使用51单片机运用编程与LCD液晶显示屏实现,利用温度、湿度传感器及相应的显示、驱动执行机构、报警装置等实现温室作物生长环境控制器的设计。 主要由51单片机+最小系统+lcd1602显示屏+蜂鸣器报警模块+设置按键+微型水泵+adc0832模数转换模块+YL-69土壤湿度传感器+DHT11温湿度传感器+LED指示灯+wifi模块esp8266;如图: 二.设计功能 (1)液晶显示检测到的土壤湿度值和环境温湿度值,有手动和自动两种控制模式; (2)通过按键设置报警值,温度大于上限值,则声光报警滴滴响; (3)当检测到的土壤湿湿度值低于报警值说明干燥启动水泵浇花。 (4)s1,s2,s3,s4按键分别是设置键,加
[单片机]
基于<font color='red'>51</font>单片机wifi物联网的浇花控制系统
51单片机实现爱心跑马灯程序
本人闲来无事做,见实验室的小伙伴用LED等做了一个跑马灯,顿时引来了一大群妹子,当时就不服了,哼,不就是一个流水灯,说的跟谁不会一样 制作的是32个LED灯的爱心流水灯,至于灯怎么安放,我就不多说了,关键是怎么连接布线。 由于条件有限,没有制作PCB的工具,所以就用的洞洞板,32个LED共阴极,连接在51单片机的GND上,每个LED的正极分别连接单片的一个引脚, 我的所有线路全是用电烙铁焊接的,线路丑爆了,在此就不上图了,为了后续程序好写一点,LED的正极和单片机的引脚的连线最好多考虑一下 好了,废话不多说了,直接上代码,只做了几个动画,可以按照自己的想法再添加 #include reg52.h #inclu
[单片机]
图形点阵式液晶显示模块与51单片机的接口设计
引 言 液晶作为一种显示器件,以其特有的优势正广泛应用于仪器、仪表、电子设备等低功耗产品中。以往的测控仪器的显示部分大都采用LED式液晶显示屏进行参数设定和结果显示,其显示信息量少、形式单一、人机交互性差、操作人员要求较高。而液晶显示器(LCD)具有功耗低、体积小、质量轻、超薄和可编程驱动等其他显示方式无法比拟的优点,不仅可以显示数字、字符,还可以显示各种图形、曲线、及汉字,并且可实现屏幕上下左右滚动、动画、闪烁、文本特征显示等功能;人机界面更加友好,使用操作也更加灵活、方便,使其日益成为智能仪器仪表和测试设备的首选显示器件。本文在介绍以ST7920为驱动器的WGM-12832液晶显示模块的引脚、结构、功能的基础上,详述了与AT
[单片机]
基于51单片机的舵机控制
简介:基于单片机的舵机控制方法具有简单、精度高、成本低、体积小的特点,并可根据不同的舵机数量加以灵活应用 在机器人机电控制统中,舵机控制效果是性能的重要影响因素 舵机可以在微机电系统和航模中作为基本的输出执行机构,其简单的控制和输出使得单片机系统非常容易与之接口。 基于单片机的舵机控制方法具有简单、精度高、成本低、体积小的特点,并可根据不同的舵机数量加以灵活应用 在机器人机电控制系统中,舵机控制效果是性能的重要影响因素 舵机可以在微机电系统和航模中作为基本的输出执行机构,其简单的控制和输出使得单片机系统非常容易与之接口 舵机是一种位置伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统 其工作原理是:控制信号由
[单片机]
基于<font color='red'>51</font>单片机的舵机控制
基于AT89C51的蔬菜大棚控制系统设计
   引言   伴随着科学技术的迅速发展,我国农业也逐渐地从传统农业向高产、优质、高效为目的的现代化农业转变。而作为家乡的蔬菜大棚,自然也离不开现代化的科学技术。通过国内外大量的科学实验和生产的实践证明,环境的控制对蔬菜生产起到非常重要的作用。只有在适宜的生长环境下蔬菜才能充分发挥其高产潜力。对于蔬菜大棚内环境的控制主要是对环境温度、湿度和土壤水分等进行测量和控制。为了更好地测量、控制湿度、湿度和土壤水分等影响蔬菜生长的因素,本文设计了以AT89C51单片机为控制器的智能测控系统,通过该系统可以对环境温度、湿度等观测值进行自动控制和适时监测,并利用声音和灯光进行越限报警及相应的处理。   1 系统功能   该系统通过
[单片机]
基于AT89C<font color='red'>51</font>的蔬菜大棚控制系统设计
8051 - 在keil中添加STC型号的3种方法
【1】数据库替换法(STC官网方法): 说明:这个方法最简单,但缺点是在器件选型时,只能选择STC单片机,原来的单片机都没了,让人不爽。 操作步骤: 先备份KEIL安装目录UV2(或者UV3/UV4)文件夹下面的UV2.CDB(或者UV3.CDB/UV4.CDB)文件,然后用STC官网提供的同名的CDB文件代替。 注:没有UV4.CDB的话,可以将“UV2.CDB(或者UV3.CDB)”改名成“UV4.CDB”来使用。 【2】新数据库添加法: 说明:另外增加一个单片机数据库,既可以选择STC单片机,又不影响原来数据库的使用。 操作步骤: ①下载用于keil的STC数据库更名为STC.CDB并拷贝到Keil/UV2目录下
[单片机]
80<font color='red'>51</font> - 在keil中添加STC型号的3种方法
51单片机实验16:A/D模数转换(XPT2046)
关于A/D模数转换以及XPT2046芯片的内容请参考:https://blog.csdn.net/cax1165/article/details/87024388 #include reg52.h #include XPT2046.h sbit LSA=P2^2; sbit LSB=P2^3; sbit LSC=P2^4; uc code x ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uc dig ; void delay(uc x) { uc i,j; for(i=1;i =x;i++) for(j=1;j =110;j++); } v
[单片机]
LCD1602液晶秒表C51程序
此程序是基于51hei单片机开发板上面写的,如需要移植到自己的电路上,修改相应的端口即可 *********************************************************************** * @file main.c * @author xr * @date 2014年5月8日22:11:33 -- 2014年5月9日12:03:49 * @version V1.2.3 * @brief LCD1602液晶跑表 单片机STC89C52RC MCU 晶振 11.0592MHZ **************************************
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved