原理图:
PCB图:
程序运行图:
部分程序:
#include } /******************************************************************** void alloff() void main()
#include
#include
#include <12864.h>
#define uchar unsigned char
#define uint unsigned int
uchar receive=0;
uchar mima[6]={0x01,0x02,0x03,0x04,0x05,0x06};
uchar receive_LY[6]={0x00,0x02,0x03,0x04,0x05,0x05};
uchar send=0xff;
sbit out1=P1^0;
sbit out2=P1^1;
sbit out3=P1^2;
sbit beep =P2^3;
int n=0; int kaisuo=0;
void Draw_PM(const uchar *ptr);
void Delay_1ms(uint i);
unsigned char code zhu1[]= //图片代码
void mimashow()
{
// receive_LY[n]=SBUF;
if(n>5) //只能输入6个数
{
lcd_pos(3,0);
write_string(" ");
Delay_1ms(10);
lcd_pos(3,1);
write_string("--重新输入--");
Delay_1ms(150);
n=0;
}
if(n==0)
{
lcd_pos(3,0);
write_string(" ");
Delay_1ms(2);
}
}
void start() //开机
{
lcd_wcmd(0x01);
lcd_pos(0,1);
write_string("智能家居系统");
delay(2);
lcd_pos(1,0);
write_string("请输入密码:");
delay(2);
lcd_pos(2,1);
write_string("
/********************************************************************
* 名称 : Delay_1ms()
* 功能 : 延时子程序,延时时间为 1ms * x
* 输入 : x (延时一毫秒的个数)
* 输出 : 无
***********************************************************************/
void Delay_1ms(uint i)//1ms延时
{
uchar x,j;
for(j=0;jfor(x=0;x<=148;x++);
}
* 名称 : Com_Init()
* 功能 : 串口初始化,晶振11.0592,波特率9600,使能了串口中断
* 输入 : 无
* 输出 : 无
***********************************************************************/
void Com_Init(void)
{
TMOD = 0x20;
PCON = 0x00;
SCON = 0x50;
TH1 = 0xfd; //设置波特率 9600
TL1 = 0xfd;
TR1 = 1; //启动定时器1
ES = 1; //开串口中断
EA = 1; //开总中断
}
//开关操作函数,接收到一次数据改变一次状态
{
P1=0xff;
}
{
int t=1;
Delay_1ms(100);
Com_Init();//串口初始化
lcd_init();
start();
Delay_1ms(50);
while(1)