×

可调的电子时钟

消耗积分:0 | 格式:doc | 大小:67KB | 2014-05-06

xiaozhu1

分享资料个

51控制的可调电子时钟,1602液晶显示

#include 《reg51.h》

#include 《intrins.h》

#define uchar unsigned char

#define uint unsigned int

uchar count_10ms; //定义10ms计数器

sbit K1 = P3^7; //定义K1键

sbit K2 = P3^4; //定义K2键

sbit K3 = P3^5; //定义K3键

sbit K4 = P3^6; //P1^3定义K4键

sbit K5 = P3^3;

sbit BEEP=P2^2; //定义蜂鸣器

sbit reset = P1^6; //P2^5;

sbit sclk = P1^7; //P2^6;

sbit io = P2^6; //P2^7;

sbit LCD_RS=P1^0;

sbit LCD_RW=P1^1 ;

sbit LCD_EN=P1^2;

bit K1_FLAG=0; //定义按键标志位,当按下K1键时,该位置1,K1键未按下时,该位为0。

uchar disp_buf[16] ={0x00}; //定义显示缓冲区

uchar time_buf[7] ={0,0,0x12,0,0,0,0}; //DS1302时间缓冲区,存放秒、分、时、日、月、星期、年

uchar temp [2]={0}; //用来存放设置时的小时、分钟的中间值

uint m=0,n=0,r=0;

/********以下是函数声明********/

void Delay_ms(uint xms) ;

bit lcd_busy();

void lcd_wcmd(uchar cmd);

void lcd_wdat(uchar dat) ;

void lcd_clr() ;

void lcd_init() ;

void write_byte(uchar inbyte); //写一字节数据函数声明

uchar read_byte(); //读一字节数据函数声明

void write_ds1302(uchar cmd,uchar indata); //写DS1302函数声明

uchar read_ds1302(uchar addr); //读DS1302函数声明

void set_ds1302(uchar addr,uchar *p,uchar n); //设置DS1302初始时间函数声明

void get_ds1302(uchar addr,uchar *p,uchar n); //读当前时间函数声明

void init_ds1302(); //DS1302初始化函数声明

/********以下是延时函数********/

void Delay_ms(uint xms)

{

uint i,j;

for(i=xms;i》0;i--) //i=xms即延时约xms毫秒

for(j=70;j》0;j--);

}

/********以下是LCD忙碌检查函数********/

bit lcd_busy()

{

bit result;

LCD_RS = 0;

LCD_RW = 1;

LCD_EN = 1;

_nop_();

_nop_();

_nop_();

_nop_();

result = (bit)(P0&0x80);

LCD_EN = 0;

return result;

}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !