ds1302液晶显示

发布者:Ampoule最新更新时间:2016-09-22 来源: eefocus关键字:ds1302  液晶显示 手机看文章 扫描二维码
随时随地手机看文章
#include

#include
#define uchar unsigned char
#define uint unsigned int
sbit rs=P3^3;
sbit rw=P3^4;
sbit en=P3^5;
sbit bflag=P2^7;
sbit reset=P3^0;
sbit sclk=P3^1;
sbit io=P3^2;
uchar str1[]="date of today is:";
uchar init[]={0x00,0x00,0x21,0x21,0x10,0x01,0x04};//秒,分,时,日,月,星期,年
//
void delay()
 {
 uchar j;
  for(j=250;j>0;j--);
  }
//-------------------液晶模块-----------------//
void en_toggle()
 {
   en=0;
  //_nop_();
  delay();
   en=1;
  delay();
 // _nop_();
   en=0;
 }             //注意必须加延时,否则会出问题的
void is_ready()
 {
   P2=0x00;//设置为输入口
   rs=0;
   rw=1;
   en=1;
   while(bflag);
   en=0;
 }

void write_cmd(uchar cmd)
{
  is_ready();
  rs=0;
  rw=0;
  P2=cmd;
  en_toggle();
}
void write_data(uchar indata)
{
  is_ready();
  rs=1;
  rw=0;
  P2=indata;
  en_toggle();
  _nop_();
}
void write_str(uchar addr,uchar *p)
{
 uchar i; 
 write_cmd(addr);
 while(p[i]!='\0')
 {write_data(p[i]);
  i++;
 }
}
void write_position(uchar row,uchar col)
{uchar p;
 if(row==1)
 {p=0x80+col-1;
  write_cmd(p);}
 else
 {p=0xc0+col-1;
  write_cmd(p);
   }
}
void init_lcd()
{
 write_cmd(0x38);
 write_cmd(0x0c);
 write_cmd(0x06);
 write_cmd(0x01);//清屏幕
 delay();
}
//------------液晶模块结束---------------------

//-----------ds1302模块开始-------------------
//注意点:sclk的上升沿输入数据,sclk的下跳沿输出数据
//读写时都是从第0位开始
void write_byte(uchar inbyte)
 {
  uchar i;
  for(i=8;i>0;i--)
   {
    sclk=0;
   if(inbyte&0x01)
     io=1;
    else
     io=0; 
    sclk=1;
    _nop_();
    inbyte=inbyte>>1;
   }
 }

uchar read_byte() //sclk的下跳沿读数据
{
 uchar i,temp=0; 
 io=1;          //设置为输入口
 for(i=7;i>0;i--)
  {
 sclk=0;
 if(io==1)
     temp=temp|0x80;
    else
     temp=temp&0x7f;
   sclk=1;
   temp=temp>>1;
  }
 //sclk=0;
 return (temp);
}
//----------往ds1302的某个地址写入数据-------------
void write_ds1302(uchar cmd,uchar indata)
{
  reset=1;
  write_byte(cmd);
  write_byte(indata);
  reset=0;
  sclk=0;
}
//----------读ds1302某地址的的数据-----------------
uchar read_ds1302(uchar addr)
{
 uchar backdata;
 reset=1;
 write_byte(addr);
 backdata=read_byte();//先写地址,然后读数据
 reset=0;
 //sclk=0;
 return (backdata);
}
//------------设置初始时间-------------------
void set_ds1302(uchar addr,uchar *p,uchar n)//写入n个数据
 {
   write_ds1302(0x8e,0x00);//写控制字,允许写操作
   for(;n>0;n--)
    {
  write_ds1302(addr,*p);
     p++;
     addr=addr+2;
    }
   write_ds1302(0x8e,0x80);//写保护,不允许写
 }
//----------- 读取当前时间-------------------
void read_nowtime(uchar addr,uchar *p,uchar n)
{
 for(;n>0;n--)
 {
   *p=read_ds1302(addr);
   p++;
   addr=addr+2;
 }      
}
void init_ds1302()
 {
 reset=0;
   sclk=0;
   write_ds1302(0x80,0x00);//写控制字,允许写
   write_ds1302(0x90,0x00);//禁止涡流充电 
 }
//-----------ds1302模块结束-------------------
void main()
 {
  init_lcd();             //初始化LCD
 write_str(0x80,str1);   //液晶显示提示信息
  init_ds1302();          //初始化ds1302
  set_ds1302(0x80,init,7);//设置初始时间,日期,年月
   
   while(1)
    {
  read_nowtime(0x81,init,7); //读出当前时间

   write_position(2,1);
   write_data('0'+((init[2]&0xf0)>>4));
 
   write_position(2,2);
   write_data('0'+(init[2]&0x0f)); //读小时

   write_position(2,3);
   write_data(':');

   write_position(2,4);
   write_data('0'+((init[1]&0xf0)>>4));
  
   write_position(2,5);
   write_data('0'+(init[1]&0x0f));    //读分钟
  
   write_position(2,6);
   write_data(':');

   write_position(2,7);
   write_data('0'+((init[0]&0xf0)>>4));
  
   write_position(2,8);
   write_data('0'+(init[0]&0x0f)); //读秒
  }
 
 }

关键字:ds1302  液晶显示 引用地址:ds1302液晶显示

上一篇:串行通讯rs232
下一篇:单片机/数据块传送的汇编语言描述

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

立体液晶显示器工作原理
前言      由于人类的眼睛已经习惯日常生活中三次元立体影像,因此认为包含电影在内及其它显示器所显示的画面也应该是立体影像,然而令人讶异的是这种潜意识的需求,长久以来却碍于科技上的束缚,快速且毫无抗拒的接受平面二次元影像。数字信息革命后除了带动多媒体社会提早来临之外,也再次点燃医疗、动画、CAD/CAM等领域对于三次元立体影像的殷切需求。有鉴于此本文将介绍有关利用液晶显示器制作三次元立体影像技术动向。 三维影像分割器(image splitter)       日本SANYO公司是最早从事有关三维立体影像技术的研究,早在94年曾推出不需专用眼镜的三维立体影像分割器,利用这种影像分割器可用来观赏立体动态影像,基本上它是根据视差
[嵌入式]
AVR DS1302 程序源代码
发现网上一些程序在16M晶振下不能工作,自己写了个,按照2V的时序写的,但只在5V和3.3V下测试过. 以下是两个主要的文件 DS1302.h: /************ AVR DS1302程序 ************ * 目标.........: ATmega128 * 文件名.......: DS1302.h * 编译器.......: IAR for AVR V5.5 ****************************************/ #ifndef __DS1302_H__ #define __DS1302_H__ #include DS1302.c: /*********
[单片机]
用FPGA构成液晶显示控制器
    摘要: 在DSP和FPGA为核心的无线扩频通信平台上增加液晶显示和触摸屏控制,从而能实现文字和图形信息的编辑和无线传送。用FPGA构造逻辑作为液晶显示控制器,不需要额外硬件资源。该产品集成化后体积小、便于携带、用途广泛。     关键词: 液晶显示  无线通信  FPGA  DSP     由DSP(数字信号处理)芯片和FPGA(现场可编程逻辑门阵列)为核心组成的无线数字扩频通信平台是无线扩频通信的一个开放式平台,能用于无线接入、无线图象和音频传送、移动INTERNET、精确区域定位LPS、智能遥控探测等高科技领域。在此基础上增加液晶显示和触摸屏控制,从而能实现文字和图形信息的编辑和无线传送。
[半导体设计/制造]
DS1302时钟芯片的MSP430程序
//MSP430 Advanced Developping Components - ////DS1302 Trickle Charge Timekeeping Chip //MSP430高级实验开发组件 - DS1302时钟芯片 //时钟设置: ////ACLK=N/A,MCLK=SMCLK=default(DCO~800k) //硬件连接: //// MSP430 MCU DS1302 //// ------------------ ------------------ //// | P20 | ------ | SCLK
[单片机]
基于32位微处理器的液晶显示系统设计
1 引言 近年来随着低成本高性能32位微处理器的出现,越来越多的工程设计人员把目光投向32位嵌入式产品的开发中。目前arm系列32位微处理器在低功耗移动通信设备方面占有绝对优势;Motorola的MC683xx系列和Cold Fire系列主要用于工控、智能化仪表和汽车电子等领域;SoC技术是系统开发越来越倾向于32位CPU为核心,32位微处理器日益显示出其巨大的优越性。显示器件是嵌入式系统进行人机交互的重要设备,液晶显示器具有体积小、微功耗、低辐射、性能可靠等优点,已经成为工程技术人员进行系统设计的首选。但目前常用的多种液晶显示控制器还仅是基于8位总线并且管理显示存储器空间较小,在系统有大量高速实时数据的情况下就有些吃力, “显
[单片机]
带LCD人机交互功能的便携式高精度数据采集系统
在许多传统行业中,高精度温度数据采集系统是不可缺少的。近年来,随着高精度ADC价格的不断下降以及其功能的不断完善,研制廉价的多路、快速、高精度温度采集系统成为了可能。美国德州仪器公司(TI)推出的带24位ADC的微处理器MSC1210,特别适合于测量高精度温度、压力传感器等输出的微弱信号。本文以MSC1210作为测量、信号处理以及通讯的核心,设计了高精度温度采集系统模块。该系统测量通道易于扩充,测量精度高,可以快速地进行高精度数据测量。 系统总体方案设计 本系统的硬件部分主要由前端数据采集、处理电路和后端数据处理、LCD电路组成。两部分通过RS-232串行接口进行通信。系统的总体方案构图如图1所示。 740)this.wid
[单片机]
带LCD人机交互功能的便携式高精度数据采集系统
如何将液晶显示器改为电视机
有源矩阵液晶显示器 (AMLCD) 渐渐受到广大的消费者欢迎。以一般家庭来说,家中客厅的大屏幕电视机很多都已改用液晶显示的一种。电视机的画面素质要求极为严格,而且售价也要大众化,因此要满足消费者的要求并不容易。利用有源矩阵液晶显示器生产平面显示电视机的厂商必须设法提高画面清晰度及色彩的亮丽程度,并降低其售价,才可望进一步扩大市场占有率。 厂商若想改造液晶显示器的生产线,改为生产电视机,便要克服显示技术上的几个问题。首先,较大的屏幕及格式上的不同是必须解决的问题。大部分笔记本电脑都采用 14 英吋的 XGA 格式 (1024x768 像素),而大部分台式机液晶显示监视器都采用 17 英吋的 SXGA 格式 (1280x1024)。大
[嵌入式]
配备白色LED灯延长寿命,艺卓推出四款医用液晶显示
  艺卓将从2011年11月1日开始陆续推出四款医用图像显示器“RadiForce”新产品。其特点是通过采用白色LED背照灯延长了寿命并降低了功耗,还通过配备人感传感器实现了省电功能等。   此次推出的产品是300万像素(3M)产品和200万像素(2M)产品,两种产品分别有彩色产品和单色产品。画面尺寸为21.3英寸(3M的彩色产品为21.2英寸)。   背照灯未采用现有机型采用的CCFL(冷阴极萤光灯管),而是采用了白色LED。这样,单色产品“5年内完全保证推荐亮度”(艺卓),彩色产品只要5年内产品使用时间控制在2万小时以内,就能够保证推荐亮度。另外,功耗比现有机型减少约21%。   此外,此次的新产品配备有检测使用者是否在
[医疗电子]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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