欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
PCF8563+LCD1602的單片機源碼
[打印本頁]
作者:
1107230861
時間:
2018-7-7 20:24
標題:
PCF8563+LCD1602的單片機源碼
我在網上找的一個比較完整的程序。自己也進行了一點兒完善。注釋比較清晰,需要用的拿去
單片機源程序如下:
/*PCF8563+1602LCD*/
/*BCD:將一字節二進制空間分為2個4bit來存儲數據,每4bit來表示一個一位10進制數*/
#include<reg52.h>
#include<stdio.h>
#include<intrins.h>
#include"I2C.h"
#include "lcd1602.h"
//typedef unsigned int uint;
//typedef unsigned char uchar;
code unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //共陰數碼管 0-9 '-' '熄滅‘表
uchar tmpdisplay[8]; //定義顯示緩存數組
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*+++++*/uchar tmpdate[7]={0,39,19,07,6,07,18}; //時間初始化:秒、分、時、日、星期、月、年;+++++++++++/**/
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
uchar rtc_address[7]={0x02,0x03,0x04,0x05,0x06,0x07,0x08}; //PCF8563中的秒、分、時、日、星期、月、年寄存器地址
/**************************************************
函數名稱:set_rtc()
函數功能:BCD處理,將十進制數轉化為BCD編碼(按十六進制數計算)
***************************************************/
void set_rtc() //設定時鐘數據(pcf8563芯片中的數據是以bcd形式存儲和處理)
{
uchar i,tmp;
for(i=0;i<7;i++) //BCD處理,將十進制數轉化為BCD編碼(按十六進制數計算)
{
tmp=tmpdate[i]/10; //將十位分離出
tmpdate[i]=tmpdate[i]%10; //將個位分離出
tmpdate[i]=tmpdate[i]+tmp*16; //合成1個由2個BCD碼組成的數
}
ISendStr(0x02,tmpdate,7); //將數據寫入PCF8563相應寄存器
}
/**************************************************
函數名稱:rtc_init()
函數功能:時鐘初始化
***************************************************/
void rtc_init() //時鐘初始化
{
set_rtc(); //將預設的時間進行DEC->BCD轉換
ISendByte(0x00,0x00);
}
/**************************************************
函數名稱:ead_rtc()
函數功能:讀時鐘函數,將讀出的數據存入tmpdate緩存數組中
***************************************************/
void read_rtc() //讀時鐘函數,將讀出的數據存入tmpdate緩存數組中
{
IRcvStr(0x02,tmpdate,7);
tmpdate[0]=tmpdate[0]&0x7f; //秒
tmpdate[1]=tmpdate[1]&0x7f; //分
tmpdate[2]=tmpdate[2]&0x3f; //時
tmpdate[3]=tmpdate[3]&0x3f; //日
tmpdate[4]=tmpdate[4]&0x07; //星期
tmpdate[5]=tmpdate[5]&0x0f; //月
tmpdate[6]=tmpdate[6]&0xff; //年
}
/**********************主函數*******************************************/
void main()
{
init_lcd1602(); //1602初始化
// rtc_init(); //時間初始化
while(1)
{
read_rtc(); //讀時間并處理
write_firstline(5,tmpdate[6]); //顯示年
write_com(0x80+5);
write_firstline(8,tmpdate[5]); //顯示月
write_com(0x80+8);
write_firstline(11,tmpdate[3]); //顯示日
write_com(0x80+11);
write_firstline(14,tmpdate[4]); //顯示星期
write_com(0x80+14);
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
pcf8563 lcd1602.zip
(35.86 KB, 下載次數: 85)
2018-7-7 20:22 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1