液晶12864(KS0108主控)做动作显示,74hc573 做扩展,三个按键,功能键,+ ,-。可调节组和各单元时间间隔。




下面是可调时控继电器的51单片机程序源码: #include
#include
#include
#define uint unsigned int
#define uchar unsigned char
#define lcd_bus P0
#define date_bus P3
/*************LCD接口定义*************/
sbit rs=P2^0;
sbit rw=P2^1;
sbit e=P2^2;
sbit cs1=P2^3;
sbit cs2=P2^4;
sbit rst=P2^5;
/***************外扩输出*************/
sbit a573a=P1^0;
sbit a573b=P1^1;
sbit a573c=P1^2;
/*********按键*****************/
sbit gn=P1^4;
sbit jia=P1^5;
sbit jian=P1^6;
/***************初始屏(工作)时显示************/
uchar code table1[][32]={
//'第',
0x10,0x08,0x94,0x97,0x9C,0x96,0x94,0xF8,
0x97,0x94,0x9C,0x94,0xF6,0x04,0x00,0x00,
0x00,0x40,0x47,0x24,0x24,0x14,0x0C,0xFF,
0x04,0x04,0x24,0x44,0x44,0x3E,0x04,0x00,
//'一',
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0xC0,0x80,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//'组',
0x20,0x30,0xAC,0x63,0x20,0x10,0x00,0xFC,
0x44,0x44,0x44,0x44,0xFE,0x04,0x00,0x00,
0x22,0x67,0x22,0x12,0x12,0x52,0x40,0x7F,
0x44,0x44,0x44,0x44,0x7F,0x40,0x40,0x00,
/*******框周围亮中间黑**********/
0xFF,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xFF,
0xFF,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xFF,
/****************圆灭**********************************/
0xF0,0x1C,0x0C,0x06,0x02,0x01,0x01,0x01,
0x01,0x01,0x02,0x02,0x04,0x1C,0xF0,0xC0,
0x0F,0x38,0x30,0x60,0x40,0x80,0x80,0x80,
0x80,0x80,0x40,0x60,0x30,0x38,0x0F,0x03,
/****************圆灭**********************************/
0xF0,0x1C,0x0C,0x06,0x02,0x01,0x01,0x01,
0x01,0x01,0x02,0x02,0x04,0x1C,0xF0,0xC0,
0x0F,0x38,0x30,0x60,0x40,0x80,0x80,0x80,
0x80,0x80,0x40,0x60,0x30,0x38,0x0F,0x03,
/****************圆灭**********************************/
0xF0,0x1C,0x0C,0x06,0x02,0x01,0x01,0x01,
0x01,0x01,0x02,0x02,0x04,0x1C,0xF0,0xC0,
0x0F,0x38,0x30,0x60,0x40,0x80,0x80,0x80,
0x80,0x80,0x40,0x60,0x30,0x38,0x0F,0x03,
/****************圆灭**********************************/
0xF0,0x1C,0x0C,0x06,0x02,0x01,0x01,0x01,
0x01,0x01,0x02,0x02,0x04,0x1C,0xF0,0xC0,
0x0F,0x38,0x30,0x60,0x40,0x80,0x80,0x80,
0x80,0x80,0x40,0x60,0x30,0x38,0x0F,0x03,
//'第',
0x10,0x08,0x94,0x97,0x9C,0x96,0x94,0xF8,
0x97,0x94,0x9C,0x94,0xF6,0x04,0x00,0x00,
0x00,0x40,0x47,0x24,0x24,0x14,0x0C,0xFF,
0x04,0x04,0x24,0x44,0x44,0x3E,0x04,0x00,
//'二',
0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,
0x08,0x08,0x08,0x0C,0x08,0x00,0x00,0x00,
0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
0x10,0x10,0x10,0x10,0x10,0x18,0x10,0x00,
//'组',
0x20,0x30,0xAC,0x63,0x20,0x10,0x00,0xFC,
0x44,0x44,0x44,0x44,0xFE,0x04,0x00,0x00,
0x22,0x67,0x22,0x12,0x12,0x52,0x40,0x7F,
0x44,0x44,0x44,0x44,0x7F,0x40,0x40,0x00,
/*******框周围亮中间黑**********/
0xFF,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xFF,
0xFF,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xFF,
/****************圆灭**********************************/
0xF0,0x1C,0x0C,0x06,0x02,0x01,0x01,0x01,
0x01,0x01,0x02,0x02,0x04,0x1C,0xF0,0xC0,
0x0F,0x38,0x30,0x60,0x40,0x80,0x80,0x80,
0x80,0x80,0x40,0x60,0x30,0x38,0x0F,0x03,
/****************圆灭**********************************/
0xF0,0x1C,0x0C,0x06,0x02,0x01,0x01,0x01,
0x01,0x01,0x02,0x02,0x04,0x1C,0xF0,0xC0,
0x0F,0x38,0x30,0x60,0x40,0x80,0x80,0x80,
0x80,0x80,0x40,0x60,0x30,0x38,0x0F,0x03,
/****************圆灭**********************************/
0xF0,0x1C,0x0C,0x06,0x02,0x01,0x01,0x01,
0x01,0x01,0x02,0x02,0x04,0x1C,0xF0,0xC0,
0x0F,0x38,0x30,0x60,0x40,0x80,0x80,0x80,
0x80,0x80,0x40,0x60,0x30,0x38,0x0F,0x03,
/****************圆灭**********************************/
0xF0,0x1C,0x0C,0x06,0x02,0x01,0x01,0x01,
0x01,0x01,0x02,0x02,0x04,0x1C,0xF0,0xC0,
0x0F,0x38,0x30,0x60,0x40,0x80,0x80,0x80,
0x80,0x80,0x40,0x60,0x30,0x38,0x0F,0x03,
//'第',
0x10,0x08,0x94,0x97,0x9C,0x96,0x94,0xF8,
0x97,0x94,0x9C,0x94,0xF6,0x04,0x00,0x00,
0x00,0x40,0x47,0x24,0x24,0x14,0x0C,0xFF,
0x04,0x04,0x24,0x44,0x44,0x3E,0x04,0x00,
//'三',
0x00,0x04,0x84,0x84,0x84,0x84,0x84,0x84,
0x84,0x84,0x84,0xC4,0x86,0x04,0x00,0x00,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x30,0x20,0x00,
//'组',
0x20,0x30,0xAC,0x63,0x20,0x10,0x00,0xFC,
0x44,0x44,0x44,0x44,0xFE,0x04,0x00,0x00,
0x22,0x67,0x22,0x12,0x12,0x52,0x40,0x7F,
0x44,0x44,0x44,0x44,0x7F,0x40,0x40,0x00,
/*******框周围亮中间黑**********/
0xFF,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xFF,
0xFF,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xFF,
/****************圆灭**********************************/
0xF0,0x1C,0x0C,0x06,0x02,0x01,0x01,0x01,
0x01,0x01,0x02,0x02,0x04,0x1C,0xF0,0xC0,
0x0F,0x38,0x30,0x60,0x40,0x80,0x80,0x80,
0x80,0x80,0x40,0x60,0x30,0x38,0x0F,0x03,
/****************圆灭**********************************/
0xF0,0x1C,0x0C,0x06,0x02,0x01,0x01,0x01,
0x01,0x01,0x02,0x02,0x04,0x1C,0xF0,0xC0,
0x0F,0x38,0x30,0x60,0x40,0x80,0x80,0x80,
0x80,0x80,0x40,0x60,0x30,0x38,0x0F,0x03,
/****************圆灭**********************************/
0xF0,0x1C,0x0C,0x06,0x02,0x01,0x01,0x01,
0x01,0x01,0x02,0x02,0x04,0x1C,0xF0,0xC0,
0x0F,0x38,0x30,0x60,0x40,0x80,0x80,0x80,
0x80,0x80,0x40,0x60,0x30,0x38,0x0F,0x03,
/****************圆灭**********************************/
0xF0,0x1C,0x0C,0x06,0x02,0x01,0x01,0x01,
0x01,0x01,0x02,0x02,0x04,0x1C,0xF0,0xC0,
0x0F,0x38,0x30,0x60,0x40,0x80,0x80,0x80,
0x80,0x80,0x40,0x60,0x30,0x38,0x0F,0x03,
//'第',
0x10,0x08,0x94,0x97,0x9C,0x96,0x94,0xF8,
0x97,0x94,0x9C,0x94,0xF6,0x04,0x00,0x00,
0x00,0x40,0x47,0x24,0x24,0x14,0x0C,0xFF,
0x04,0x04,0x24,0x44,0x44,0x3E,0x04,0x00,
//'四',
0x00,0xFC,0x04,0x04,0x04,0xFC,0x04,0x04,
0x04,0xFC,0x04,0x04,0x04,0xFE,0x04,0x00,
0x00,0x7F,0x20,0x28,0x24,0x23,0x20,0x20,
0x20,0x21,0x22,0x22,0x22,0x7F,0x00,0x00,
//'组',
0x20,0x30,0xAC,0x63,0x20,0x10,0x00,0xFC,
0x44,0x44,0x44,0x44,0xFE,0x04,0x00,0x00,
0x22,0x67,0x22,0x12,0x12,0x52,0x40,0x7F,
0x44,0x44,0x44,0x44,0x7F,0x40,0x40,0x00,
/*******框周围亮中间黑**********/
0xFF,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xFF,
0xFF,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xFF,
/****************圆灭**********************************/
0xF0,0x1C,0x0C,0x06,0x02,0x01,0x01,0x01,
0x01,0x01,0x02,0x02,0x04,0x1C,0xF0,0xC0,
0x0F,0x38,0x30,0x60,0x40,0x80,0x80,0x80,
0x80,0x80,0x40,0x60,0x30,0x38,0x0F,0x03,
/****************圆灭**********************************/
0xF0,0x1C,0x0C,0x06,0x02,0x01,0x01,0x01,
0x01,0x01,0x02,0x02,0x04,0x1C,0xF0,0xC0,
0x0F,0x38,0x30,0x60,0x40,0x80,0x80,0x80,
0x80,0x80,0x40,0x60,0x30,0x38,0x0F,0x03,
/****************圆灭**********************************/
0xF0,0x1C,0x0C,0x06,0x02,0x01,0x01,0x01,
0x01,0x01,0x02,0x02,0x04,0x1C,0xF0,0xC0,
0x0F,0x38,0x30,0x60,0x40,0x80,0x80,0x80,
0x80,0x80,0x40,0x60,0x30,0x38,0x0F,0x03,
/****************圆灭**********************************/
0xF0,0x1C,0x0C,0x06,0x02,0x01,0x01,0x01,
0x01,0x01,0x02,0x02,0x04,0x1C,0xF0,0xC0,
0x0F,0x38,0x30,0x60,0x40,0x80,0x80,0x80,
0x80,0x80,0x40,0x60,0x30,0x38,0x0F,0x03,
/******框中间亮******/
0x00,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,
0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0x00,
0x00,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,
0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x00,
/****************圆亮****************************/
0xC0,0xF0,0xF8,0xFC,0xFC,0xFE,0xFE,0xFE,
0xFE,0xFE,0xFE,0xFC,0xFC,0xF8,0xF0,0xC0,
0x03,0x0F,0x1F,0x3F,0x3F,0x7F,0x7F,0x7F,
0x7F,0x7F,0x7F,0x3F,0x3F,0x1F,0x0F,0x03,
/***************调整时显示***********************/
//
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//-- 圆 --
0x00,0xFE,0x02,0x82,0xBA,0xAA,0xAA,0xAA,
0xAA,0xAA,0xBA,0x82,0x02,0xFF,0x02,0x00,
0x00,0xFF,0x40,0x4F,0x60,0x50,0x48,0x46,
0x48,0x50,0x60,0x4F,0x40,0xFF,0x00,0x00,
//-- 间 --
0x00,0xF8,0x01,0x02,0xF6,0x10,0x12,0x12,
0x12,0x12,0xFA,0x12,0x02,0xFF,0x02,0x00,
0x00,0xFF,0x00,0x00,0x3F,0x11,0x11,0x11,
0x11,0x11,0x3F,0x40,0x80,0x7F,0x00,0x00,
//-- 隔 --
0x00,0xFE,0x22,0x5A,0x86,0x02,0x7A,0x4A,
0x4A,0x4A,0x4A,0x4A,0x7B,0x82,0x00,0x00,
0x00,0xFF,0x04,0x08,0x07,0xFF,0x09,0x0B,
0x0D,0x79,0x0D,0x4B,0x89,0x7F,0x01,0x00,
//-- 调 --
0x20,0x21,0xE6,0x00,0x00,0xFE,0x82,0x92,
0x92,0xFE,0x92,0xD2,0x82,0xFF,0x02,0x00,
0x00,0x00,0x3F,0x90,0x48,0x3F,0x00,0x3E,
0x12,0x12,0x12,0x5E,0x80,0x7F,0x00,0x00,
//-- 整 --
0x00,0x3A,0xAA,0x6A,0xFF,0x6A,0xAA,0x3A,
0x08,0xB7,0x44,0xA4,0x1C,0x06,0x04,0x00,
0x41,0x41,0x42,0x42,0x7B,0x42,0x42,0x7E,
0x4B,0x4A,0x4A,0x4A,0x43,0x61,0x41,0x00,
//
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//-- 组 --
0x20,0x30,0xAC,0x63,0x20,0x10,0x00,0xFC,
0x44,0x44,0x44,0x44,0xFE,0x04,0x00,0x00,
0x22,0x67,0x22,0x12,0x12,0x52,0x40,0x7F,
0x44,0x44,0x44,0x44,0x7F,0x40,0x40,0x00,
//-- 间 --
0x00,0xF8,0x01,0x02,0xF6,0x10,0x12,0x12,
0x12,0x12,0xFA,0x12,0x02,0xFF,0x02,0x00,
0x00,0xFF,0x00,0x00,0x3F,0x11,0x11,0x11,
0x11,0x11,0x3F,0x40,0x80,0x7F,0x00,0x00,
//-- 隔 --
0x00,0xFE,0x22,0x5A,0x86,0x02,0x7A,0x4A,
0x4A,0x4A,0x4A,0x4A,0x7B,0x82,0x00,0x00,
0x00,0xFF,0x04,0x08,0x07,0xFF,0x09,0x0B,
0x0D,0x79,0x0D,0x4B,0x89,0x7F,0x01,0x00,
//-- 调 --
0x20,0x21,0xE6,0x00,0x00,0xFE,0x82,0x92,
0x92,0xFE,0x92,0xD2,0x82,0xFF,0x02,0x00,
0x00,0x00,0x3F,0x90,0x48,0x3F,0x00,0x3E,
0x12,0x12,0x12,0x5E,0x80,0x7F,0x00,0x00,
//-- 整 --
0x00,0x3A,0xAA,0x6A,0xFF,0x6A,0xAA,0x3A,
0x08,0xB7,0x44,0xA4,0x1C,0x06,0x04,0x00,
0x41,0x41,0x42,0x42,0x7B,0x42,0x42,0x7E,
0x4B,0x4A,0x4A,0x4A,0x43,0x61,0x41,0x00,
//
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, };
/************定义变量******************/
uchar sj,sk=1,on,gnb;
uint mm,miao,zuj=40,yuanj=20;
uint fzg,zjg=0;
uint yjiab=3,zjiab=3;
uchar ja=0,tt,ti;
/*******毫秒延时************/
void delay(uint a)
{
uint x,y;
for(x=0;x<>
for(y=0;y<>
}
/***********延时*************/
void delayy()
{
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
/************测忙**************/
void lcd_busm()
{
uchar temp;
do
{
temp=0x80;
rs=0;
_nop_();
_nop_();
_nop_();
rw=1;
e=1;
temp=lcd_bus;
_nop_();
_nop_();
_nop_();
e=0;
} while((temp&0x80)==0x80);
}
/***********写指令********************/
void send_comm(uchar comm)
{
lcd_busm();
rs=0;
delayy();
rw=0;
lcd_bus=comm;
delayy();
e=1;
delayy();
e=0;
}
/************写数据********************/
void send_data(uchar date)
{
lcd_busm();
rs=1;
delayy();
rw=0;
delayy();
lcd_bus=date;
delayy();
e=1;
delayy();
e=0;
}
/*************选屏****************/
void csp(uchar a)
{
switch(a)
{
case 0:
{
cs1=1;
cs2=1;
break;
}
case 1:
{
cs1=1;
cs2=0;
break;
}
case 2:
{
cs1=0; delayy();
cs2=1;
break;
}
default: break;
}
}
/**********初始化*****************/
void init()
{
rst=0;
delay(150);
rst=1;
delay(100);
csp(0);
send_comm(0x3f);
delayy();
send_comm(0xc0);
a573a=0;
a573b=0;
a573c=0;
}
/**************定时器初始化**************/
void time()
{
TMOD=0x11;
TH0=0x3c;
TL0=0xb0;
TH1=0X3C;
TL1=0XB0;
EA=1;
ET0=1;
ET1=1;
TR0=1;
TR1=1;
}
/***********设置页地址*************/
void x_page(uchar x)
{
send_comm(0xb8+x);
delayy();
}
/************设置列地址***********/
void y_line(uchar y)
{
send_comm(0x40+y);
delayy();
}
/************设置行地址***********/
void z_hang(uchar z)
{
send_comm(0xc0+z);
delayy();
}
/*************清空显示内存***********/
void clean()
{
uchar i,j,k;
for(i=0;i<>
{
csp(0);
y_line(0);
delayy();
x_page(i);
delayy();
csp(1);
for(j=0;j<>
{
send_data(0x00);
}
delayy();
csp(2);
for(k=64;k<>
{
send_data(0x00);
}
}
}
/****************页和列地址*****************/
void write_x_y(uchar x,y)
{
x_page(x);
y_line(y);
}
/**************指定位置写汉字****************/
void write_zf(uchar a,b,c )
{
uchar k,m;
write_x_y(a,b); //写页和列地址是字的上半
for(k=0;k<>
{
send_data(table1[c][k]);
}
delayy();
write_x_y(a+1,b); //写页和列地址是字的下半
for(m=16;m<>
{
send_data(table1[c][m]);
}
}
/*****************指定位置写字ASCII*************/
void write_ascii(uchar a,b,c )
{
uchar k,m;
write_x_y(a,b);
for(k=0;k<>
{
send_data(table1[c][k]);
}
delayy();
write_x_y(a+1,b);
for(m=8;m<>
{
send_data(table1[c][m]);
}
}
/***************满行写字***************/
void write_mh(uchar a,b,c) //(页,列 ,字)
{
uchar i,d;
csp(1);
for(i=0;i<>
{
write_zf(a,b+i*16,c++);
}
csp(2); delayy();
for(d=0;d<>
{
write_zf(a,b+d*16,c++);
}
}
|