12864串行程序,时钟,后续反白
液晶12864+DS1302+反白代码
12864串行程序,时钟,后续反白
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int //宏定义
#define CLEAR_SCREEN 0x01 //清屏指令:清屏且AC值为00H
#define AC_INIT 0x02 //将AC设置为00H。且游标移到原点位置
#define CURSE_ADD 0x06 //设定游标移到方向及图像整体移动方向(默认游标右移,图像整体不动)
#define FUN_MODE 0x30 //工作模式:8位基本指令集
#define DISPLAY_ON 0x0c //显示开,显示游标,且游标位置反白
#define DISPLAY_OFF 0x08 //显示关
#define CURSE_DIR 0x14 //游标向右移动:AC=AC+1
#define SET_CG_AC 0x40 //设置AC,范围为:00H~3FH
#define SET_DD_AC 0x80
#define WRITE_SECOND 0x80
#define WRITE_MINUTE 0x82
#define WRITE_HOUR 0x84
#define READ_second 0x81
#define READ_minute 0x83
#define READ_hour 0x85
#define WRITE_PROTECT 0x8E
sbit CLK=P3^5;
sbit DI =P3^4;
sbit CS1=P3^3;
sbit CS = P2^0; //片选信号
sbit SID = P2^1; //串行数据
sbit SCLK = P2^2; //串行同步时钟
sbit ACC_7 = ACC^7; //位寻址寄存器定义
sbit SCLK_1302 = P2^7; // DS1302时钟信号
sbit DIO = P2^6; // DS1302数据信号
sbit CE = P2^5; // DS1302片选
sbit led0=P0^4;
sbit led1=P0^5;
sbit switch0=P2^4;
sbit switch1=P0^6;
液晶12864+DS1302+反白代码
sbit LCD_led =P2^3;
sbit key =P0^7;
uint second, minute,hour; //全局变量定义
uchar dat_ad0,kk,jj;
float dat_ad;
uchar code addr_tab[]={
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,//第一行汉字位置
0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,//第二行汉字位置
0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,//第三行汉字位置
0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,//第四行汉字位置
};
uchar code numtab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; uchar code numtab1[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19, 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29, 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39, 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49, 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59 }; //1-60数据
void delayms(uint t) //约延时n(ms)
{
uint i;
while(t--)
{
for(i=0;i<125;i++);
}
}
void Write1302 (uchar addr,dat )
{
unsigned char i,temp;
CE=0; //CE引脚为低,数据传送中止
SCLK_1302=0; //清零时钟总线
CE = 1; //CE引脚为高,逻辑控制有效
//发送地址
for ( i=8;i>0; i--) //循环8次移位
{
SCLK_1302 = 0;
temp = addr;
DIO = (bit)(temp&0x01); //每次传输低字节
addr >>= 1; //右移一位
SCLK_1302 = 1;
液晶12864+DS1302+反白代码
}
//发送数据
for (i=8; i>0;i--)
{
SCLK_1302 = 0;
temp = dat;
DIO = (bit)(temp&0x01);
dat >>= 1;
SCLK_1302 = 1;
}
CE = 0;
}
/******************************************************************* * 函数名称: Read1302
* 函数功能: 读时钟数据
* 调用函数:
* 使用说明:
*******************************************************************/ uchar Read1302 (unsigned char addr )
{
unsigned char i,temp,dat2,dat1;
CE=0;
SCLK_1302=0;
CE = 1;
//发送地址
for ( i=8; i>0; i-- ) //循环8次移位
{
SCLK_1302 = 0;
temp = addr;
DIO = (bit)(temp&0x01); //每次传输低字节
addr >>= 1; //右移一位
SCLK_1302 = 1;
}
//读取数据
for ( i=8; i>0; i-- )
{
ACC_7=DIO;
SCLK_1302 = 1;
ACC>>=1;
SCLK_1302= 0;
}
CE=0;
dat1=ACC;
dat2=dat1/16; //数据进制转换
液晶12864+DS1302+反白代码
dat1=dat1%16; //十六进制转十进制
dat1=dat1+dat2*10;
return dat1;
}
void SendByte(uchar Dbyte)
{
uchar i;
for(i=0;i<8;i++)
{
SCLK = 0;
Dbyte=Dbyte<<1; //左移一位
SID = CY; //移出的位给SID
SCLK = 1;
SCLK = 0;
}
}
uchar ReceiveByte(void)
{
uchar i,temp1,temp2;
temp1 = 0;
temp2 = 0;
for(i=0;i<8;i++)
{
temp1=temp1<<1;
SCLK = 0;
SCLK = 1;
SCLK = 0;
if(SID) temp1++;
}
for(i=0;i<8;i++)
{
temp2=temp2<<1;
SCLK = 0;
SCLK = 1;
SCLK = 0;
if(SID) temp2++;
}
return ((0xf0&temp1)+(0x0f&temp2));
}
液晶12864+DS1302+反白代码
void CheckBusy( void )
{
do SendByte(0xfc); //11111,RW(1),RS(0),0
while(0x80&ReceiveByte()); //BF(.7)=1 Busy
}
void Lcd_WriteCmd(uchar Cbyte )
{
CS = 1;
CheckBusy();
SendByte(0xf8); //11111,RW(0),RS(0),0
SendByte(0xf0&Cbyte); //高四位
SendByte(0xf0&Cbyte<<4); //低四位(先执行<<)
CS = 0;
}
void Lcd_WriteData(uchar Dbyte )
{
CS = 1;
CheckBusy();
SendByte(0xfa); //11111,RW(0),RS(1),0
SendByte(0xf0&Dbyte); //高四位
SendByte(0xf0&Dbyte<<4); //低四位(先执行<<)
CS = 0;
}
void Lcd_Init(void)
{
相关推荐:
- [公文资料]市场营销专员岗位职责
- [公文资料]综合部经理岗位职责
- [公文资料]会计助理岗位职责
- [公文资料]林业站站长职责
- [公文资料]菜品研发部岗位职责
- [公文资料]街道综治办工作职责
- [公文资料]酒店前台的工作职责
- [公文资料]销售部经理岗位职责
- [公文资料]工程部副经理岗位职责
- [公文资料]手术室护士工作职责
- [公文资料]银行客户经理职责
- [公文资料]汽车4s店市场专员职责
- [公文资料]服装店长工作职责
- [公文资料]采购总监岗位职责
- [公文资料]大学行政秘书工作职责
- [公文资料]学校财务人员岗位职责
- [公文资料]财务统计员岗位职责
- [公文资料]物业工程主管工作职责
- [公文资料]公司后勤工作职责
- [公文资料]采矿工程师岗位职责
- 门面出租合同样板(门面出租的合同)
- 自用房屋租赁合同 自住房租房合同(汇总
- 最新酒店劳动合同管理制度(11篇)(酒店
- 2025年无产权车库买卖合同实用(14篇)(
- 建筑工程农民工劳动合同十五篇(通用)(
- 最新深圳标准劳动合同 深圳劳动合同如
- 解除劳动合同通知书(实用6篇)(解除劳动
- 2025年二手房屋买卖合同范围精选(二十
- 最新融资贷款居间合同大全(22篇)(融资
- 2025年个人二手房屋买卖合同协议书四篇
- 2025年果树苗木买卖合约书 签订果树苗
- 广东省劳动合同书填写(21篇)(广东省劳
- 最新餐饮行业没有劳动合同 劳动法餐饮
- 农村土地买卖合同(汇总21篇)(农村土地
- 最新房屋转租合同模版21篇(通用)(标准
- 2025年进口合同号查询五篇(大全)(进口
- 农村建房包工包料合同(通用8篇)(农村建
- 2025年安装监控合同协议书(15篇)(2025
- 2025年企业租赁经营合同(模板9篇)(2025
- 最新郊区土地租赁合同(优质23篇)(最新




