1602 时钟

发布者:谁与争锋1最新更新时间:2016-11-24 来源: eefocus关键字:时钟 手机看文章 扫描二维码
随时随地手机看文章

//////////////////时钟/////////////////////
#include
#include
typedef unsigned char uchar;
typedef unsigned int uint;
sbit rs=P2^0; 
sbit rw=P2^1;
sbit e=P2^2;
#define lcd_port P0
#define begin_pos 2
uchar ss,mm,hh,n;
void delayms(uchar ms)
{       // 延时子程序
 uchar i,j;
 for(;ms>0;ms--)
  for(i=6;i>0;i--)
   for(j=82;j>0;j--);
}
bit lcd_bz()
{       // 测试LCD忙碌状态
 bit result;
 rs=0;
 rw=1;
 e=1;
 _nop_();
 _nop_();
 _nop_();
 _nop_();
 result=(bit)(P0&0x80);
 e=0;
 return result; 
}

void lcd_w_cmd(uchar cmd)
{       // 写入指令数据到LCD
 while(lcd_bz());
 rs=0;
 rw=0;
 e=0;
 _nop_();
 _nop_(); 
 lcd_port=cmd;
 _nop_();
 _nop_();
 _nop_();
 _nop_();
 e=1;
 _nop_();
 _nop_();
 _nop_();
 _nop_();
 e=0;  
}

void lcd_pos(uchar pos)
{       //设定显示位置
 lcd_w_cmd(pos|0x80);
}

void lcd_w_dat(uchar dat) 
{       //写入字符显示数据到LCD
 while(lcd_bz());
 rs=1;
 rw=0;
 e=0;
 lcd_port=dat;
 _nop_();
 _nop_();
 _nop_();
 _nop_();
 e=1;
 _nop_();
 _nop_();
 _nop_();
 _nop_();
 e=0; 
}
void lcd_init() //LCD初始化设定

   lcd_w_cmd(0x01);   //清屏并光标复位
 delayms(1);     
 lcd_w_cmd(0x38);   //设置式:8位2行5x7点阵显示模
 delayms(1);
 lcd_w_cmd(0x0c);   //显示器开、光标关且光标不允许闪烁
 delayms(1);
 lcd_w_cmd(0x06);   //文字不动,光标自动右移
 delayms(1);
}
void lcd_w_str(uchar *str)
{
 while(*str>0)
 {
  lcd_w_dat(*str);
  str++;
 }
}
void display()
{
 lcd_pos(4+begin_pos);//显示小时
 delayms(1);
 lcd_w_dat(hh/10+0x30);
 delayms(1);
 lcd_w_dat(hh%10+0x30);
 delayms(1);
 lcd_pos(7+begin_pos);//显示分钟
 delayms(1);
 lcd_w_dat(mm/10+0x30);
 delayms(1);
 lcd_w_dat(mm%10+0x30);
 delayms(1);
 lcd_pos(0x0a+begin_pos);//显示秒钟
 delayms(1);
 lcd_w_dat(ss/10+0x30);
 delayms(1);
 lcd_w_dat(ss%10+0x30);
}
void main()
{
 TMOD=0X01;
 IE=0X82;
 TL0=-50000%256;
 TH0=-50000/256;
 TR0=1;
 lcd_init();
 delayms(10);
 lcd_pos(6+begin_pos);//显示:
 delayms(1);
 lcd_w_str(":");
 delayms(1);
 lcd_pos(9+begin_pos);//显示:
 delayms(1);
 lcd_w_str(":");
 display();
 delayms(10);
   lcd_pos(begin_pos-1);        //
 lcd_w_str("TIME");
   while(1)
   {
  display();
  delayms(20);
 }
}
void t0() interrupt 1
{
 TL0=-50000%256;
 TH0=-50000/256;
 n++;
 if(!(n%10))
 {
  lcd_pos(6+begin_pos);//让 :不显示
  delayms(1);
  lcd_w_dat(0X20);
  delayms(1);
  lcd_pos(9+begin_pos);//让 :不显示
  delayms(1);
  lcd_w_dat(0X20);
 }
 if(!(n%20))
 {
  ss++;
  if(ss==60)ss=0,mm++;
  if(mm==60)mm=0,hh++;
  if(hh==24)hh=0;
  lcd_pos(6+begin_pos);//让 :显示
  delayms(1);
  lcd_w_str(":");
  delayms(1);
  lcd_pos(9+begin_pos);//让 :显示
  delayms(2);
  lcd_w_str(":");
 }
}


关键字:时钟 引用地址:1602 时钟

上一篇:c51 74ls164--165--595
下一篇:1602 上下滚动显示

推荐阅读最新更新时间:2024-03-16 15:22

大型设计中FPGA的多时钟设计策略
  利用FPGA实现大型设计时,可能需要FPGA具有以多个时钟运行的多重数据通路,这种多时钟FPGA设计必须特别小心,需要注意最大时钟速率、抖动、最大时钟数、异步时钟设计和时钟/数据关系。设计过程中最重要的一步是确定要用多少个不同的时钟,以及如何进行布线,本文将对这些设计策略深入阐述。   FPGA设计的第一步是决定需要什么样的时钟速率,设计中最快的时钟将确定FPGA必须能处理的时钟速率。最快时钟速率由设计中两个触发器之间一个信号的传输时间P来决定,如果P大于时钟周期T,则当信号在一个触发器上改变后,在下一个逻辑级上将不会改变,直到两个时钟周期以后才改变,如图1所示。         传输时间为信号在第一个触发器输出处所需
[工业控制]
采用FPGA设计SDH光传输系统设备时钟
  SDH设备时钟(SEC)是SDH光传输系统的重要组成部分,是SDH设备构建同步网的基础,也是同步数字体系(SDH)可靠工作的前提。SEC的核心部件由锁相环构成。网元通过锁相环跟踪同步定时基准,并通过锁相环的滤波特性对基准时钟在传输过程中产生的抖动和漂移进行过滤。而当基准源不可用时,则由SEC提供本地的定时基准信息,实现高质量的时钟输出。   SEC需要满足ITU-T G.813建议 中的相关指标要求。SEC可以工作在自由振荡、跟踪、保持三种模式下,并且能够在三种模式之间进行平滑切换。由于ITU-T G.813建议规定的SEC带宽较窄(-3db带宽在1~10Hz内),且需要在三种工作模式下输出稳定的时钟,同时还要保证在三种模式
[嵌入式]
采用FPGA设计SDH光传输系统设备<font color='red'>时钟</font>
STM8关于IWDG看门狗和HSI高速时钟和复位的坑
前言:我的第一篇博客,快被逼疯了。用的STM8S003F3,耗时5天,问题已解决,结局很坑! 但因为这一个问题,我似乎将stm8的时钟,复位,看门狗,iar的使用几乎全吃透了。 忠告:不要随随便便相信百度里头随便找来的资料! 现象:主频只在16MHz时,程序频繁复位不可控,其他现象异常离奇不阐述了,防止伤脑。 正文:前因后果是这样的: 1,我配置了16M的主频 CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);//内部高速时钟,不分频 或者:CLK- CKDIVR = 0x00; //HSIDIV = 0 CPUDIV = 0 cpu时钟 = 16Mhz 发现它频繁
[单片机]
STM8关于IWDG看门狗和HSI高速<font color='red'>时钟</font>和复位的坑
汽车液晶仪表时钟扩频技术提供的一种性价比方案
汽车液晶仪表时钟 EMI 解决方案 早在2014年,中国汽车全液晶仪表市场规模就已经达到35.06亿元,预计到2020年,这一规模将突破200亿元,达到234.43亿元。全数字汽车仪表是一种网络化、智能化的仪表,其功能更强大,显示内容更丰富,线束链接更加简单、更全面,更人性化地满足驾驶需求。最初全液晶仪表更多地是出现在一些豪华品牌上,后来随着技术逐步成熟,制造成本不断下降,全液晶仪表逐步普及到自主品牌的车型里。最近新能源汽车的兴起更加带动了全液晶仪表的应用。 从液晶仪表盘PCB图不难看出与传统仪表相比,全液晶仪表多了与显示相关的部件,比如:显示屏、GPU 处理器、屏正负压、屏背光等。改用液晶屏幕后不仅增加了产
[汽车电子]
汽车液晶仪表<font color='red'>时钟</font>扩频技术提供的一种性价比方案
lcd1602 屏驱动(自定义字符)
1、时序图 2、代码 3、自定义字符 时序图 代码: #include reg51.h #include intrins.h sbit RS = P2^4; //定义端口 sbit RW = P2^5; sbit EN = P2^6; void Delayus(unsigned char t) // us级别延时 { while(--t); } void Delayms(unsigned char t)// ms级别延时 { while(t--) { //大致延时1mS Delayus(245); Delayus(245)
[单片机]
lcd<font color='red'>1602</font> 屏驱动(自定义字符)
51单片机+1602+DS18B20的温度报警程序
51单片机做的温度显示,温度显示在LCD1602液晶屏上。 然后按键可以调整温度阈值,温度高于或低于所设温度,蜂鸣器就会响…… 单片机源程序如下: /************************************************************************************** * 基于单片机的实时温度报警系统设计 * (1)DS18b20采集到的温度可以实时地在数码管或者在液晶上显示出来; (2)用三个独立键盘设置阀值,包括设置键,加键
[单片机]
51单片机+<font color='red'>1602</font>+DS18B20的温度报警程序
SYSCLK时钟源三个来源:HSI RC、HSE OSC、PLL
1、 SYSCLK时钟源有三个来源:HSI RC、HSE OSC、PLL 2、 MCO 可以提供4源不同的时钟同步信号,PA8 3、 GPIO口貌似有两个反向串联的二极管用作钳位二极管。 4、 ICode总线,DCode总线、系统总线、DMA总线、总线矩阵、AHB/APB桥 5、在使用一个外设之前,必须设置寄存器RCC_AHBENR来打开该外设的时钟 6、 STM32复位有三种:系统复位、上电复位、备份区域复位。其中系统复位除了RCC_CSR中的复位标志和BKP中的数值不复位之外,其他的所有寄存器全部复位。 触发方式例如外部复位、看门狗复位、软件复位等;电源复位由于外部电源的上电/掉电复位或者待机模式返回。 复位除了BKP
[单片机]
SYSCLK<font color='red'>时钟</font>源三个来源:HSI RC、HSE OSC、PLL
系统时钟和UART的设置
系统时钟: 在开发版上,不同的器件运行在不同的时钟频率上,如CPU可能运行在400Mhz的频率上、SDRAM、DM9000等内存存储运行在100Mhz~133MHz上、 串口i2c等运行在50Mhz上,而在开发板上只有一个12Mhz的晶振,则我们需要设置两个部分 1、提高时钟频率12Mhz提高到400Mhz,有运用到PLL 2、对400Mhz时钟分频,分为400Mhz、100Mhz~133Mhz、50Mhz。 如图所示: 开发板上分布 怎么设置? 相关设置代码 #define S3C2410_MPLL_200MHZ ((0x5c 12)|(0x04 4)|(0x00)) #define S3C2440_MPL
[单片机]
系统<font color='red'>时钟</font>和UART的设置
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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