這是去年沒事的時候做的一個作品,模擬公交車門控制的,當(dāng)時做這個作品的時候是去坐公交的時候,看見有人要下車按了按鍵沒有反應(yīng),然后大聲地在車廂上喊司機(jī)下車,司機(jī)顧著開車也沒有怎么回答,自己感覺如果公交車上有一個液晶屏可以提示多好呀,回來后在沒事之余就做了這套東西出來,在錄制這個視頻的時候自己有點感冒,呵呵,講解的一塌糊涂。
具體的功能是達(dá)到乘客與司機(jī)通過按鍵溝通,控制乘客上下車的功能。也沒有什么難的,這里面用到的單片機(jī)與單片機(jī)的通信,以及液晶顯示,基本上就這樣。 程序首發(fā)于:單片機(jī)論壇 http://www.torrancerestoration.com/bbs/ ,大家有什么意見或者建議請給我留言如果有新的版本我會不定期發(fā)布的.
下面是司機(jī)部分程序代碼:
mian.c
/*
項目名稱:公交智能門控制系統(tǒng)
功能 :請見程序功能說明文件
備注 :此為主機(jī)程序,控制的是司機(jī)操作部分
作者 :Michael
日期 :2012-12-29
*/
#include <reg52.h>
#include "lcd12864.h"
#include "delay.h"
unsigned char utrFlag=0,Flag=0,count;
sbit Buzzer = P3^4;
sbit key = P3^3;
uchar keyflag;
unsigned char SerFlag[1];
void init(void)
{
init_12864HZ();
display_HZ();
EA = 1;
ES = 1;
REN = 1;
SM1 = 1;
SM0 = 0;
TMOD = 0x20;
TH1 = 0xfd;
TL1 = 0xfd;
TR1 = 1;
}
void main()
{
char i;
init();
while(1)
{
if(Flag == 1)
{
Flag = 0;
ES = 0;
SBUF = 0x01;
while(!TI);
TI = 0;
ES = 1;
for(i=0;i<3;i++)
{
Buzzer = 0;
delay_50ms(500);
Buzzer = 1;
delay_50ms(500);
}
write_12864com(0x01);
display_HZ1();
}
if(key==0)
{
delay_50ms(1);
while(key == 0)
{
while(!key);
ES = 0; //關(guān)閉串口通信中斷程序
utrFlag++; //判斷司機(jī)按鍵情況。
if(utrFlag==1)
{
init_12864HZ();
// write_12864com(0x01);
display_HZ2();
delay_50us(10);
SBUF = 0x02;
while(!TI);
TI = 0;
}
if(utrFlag==2)
{
utrFlag = 0;
display_HZ();
delay_50ms(1);
SBUF = 0x03;
while(!TI);
TI = 0;
ES = 1;
}
}
}
}
}
具體的功能是達(dá)到乘客與司機(jī)通過按鍵溝通,控制乘客上下車的功能。也沒有什么難的,這里面用到的單片機(jī)與單片機(jī)的通信,以及液晶顯示,基本上就這樣。 程序首發(fā)于:單片機(jī)論壇 http://www.torrancerestoration.com/bbs/ ,大家有什么意見或者建議請給我留言如果有新的版本我會不定期發(fā)布的.
下面是司機(jī)部分程序代碼:
mian.c
/*
項目名稱:公交智能門控制系統(tǒng)
功能 :請見程序功能說明文件
備注 :此為主機(jī)程序,控制的是司機(jī)操作部分
作者 :Michael
日期 :2012-12-29
*/
#include <reg52.h>
#include "lcd12864.h"
#include "delay.h"
unsigned char utrFlag=0,Flag=0,count;
sbit Buzzer = P3^4;
sbit key = P3^3;
uchar keyflag;
unsigned char SerFlag[1];
void init(void)
{
init_12864HZ();
display_HZ();
EA = 1;
ES = 1;
REN = 1;
SM1 = 1;
SM0 = 0;
TMOD = 0x20;
TH1 = 0xfd;
TL1 = 0xfd;
TR1 = 1;
}
void main()
{
char i;
init();
while(1)
{
if(Flag == 1)
{
Flag = 0;
ES = 0;
SBUF = 0x01;
while(!TI);
TI = 0;
ES = 1;
for(i=0;i<3;i++)
{
Buzzer = 0;
delay_50ms(500);
Buzzer = 1;
delay_50ms(500);
}
write_12864com(0x01);
display_HZ1();
}
if(key==0)
{
delay_50ms(1);
while(key == 0)
{
while(!key);
ES = 0; //關(guān)閉串口通信中斷程序
utrFlag++; //判斷司機(jī)按鍵情況。
if(utrFlag==1)
{
init_12864HZ();
// write_12864com(0x01);
display_HZ2();
delay_50us(10);
SBUF = 0x02;
while(!TI);
TI = 0;
}
if(utrFlag==2)
{
utrFlag = 0;
display_HZ();
delay_50ms(1);
SBUF = 0x03;
while(!TI);
TI = 0;
ES = 1;
}
}
}
}
}
void UTR() interrupt 4
{
RI = 0;
SerFlag[0]=SBUF;
if(SerFlag[0]==0x01)
{
Flag++;
}
}
lcd.h文件
#ifndef _LCD12864_H_
#define _LCD12864_H_
#define uint unsigned int
#define uchar unsigned char
sbit rs = P2^0;
sbit rw = P2^1;
sbit e = P2^2;
sbit psb = P2^3;
sbit res = P2^5;
void write_12864com(uchar com);//寫命令到lcd12864
void write_12864dat(uchar dat);//寫數(shù)據(jù)到lcd12864
void init_12864HZ(void);//液晶顯示漢字初始化
void init_12864PIC(void);//液晶顯示漢字初始化
void display_HZ(void);
void display_HZ1(void);
void display_HZ2(void);
void display_FH(void);
void display_PIC(void);
#endif
lcd.c文件
#include <reg52.h>
#include "delay.h"
#include "lcd12864.h"
uchar code pic2[]={
" 車門已經(jīng)關(guān)閉 "//
" 請注意車速 "//
" 請勿疲勞駕駛 "
" 祝您工作順利 "//
};
uchar code pic4[] = {
" 您好!有乘客需"
"開車門,謝謝!當(dāng)"
"要下車,到站時請"
"前您還未開門! "
};
uchar code pic5[] = {
" 您好!車門已經(jīng)"
"安全下車,當(dāng)前車"
"打開,請等候乘客"
"門處理打開狀態(tài)!"
};
unsigned char code pic3[]=
{
0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xC0,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,
0x00,0x07,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x18,0x00,0x03,0x00,0x07,0xEC,0xC0,0x00,0x00,
0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x37,0x80,0x03,0x00,
0x00,0xEC,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,
0x18,0x3F,0xC0,0x03,0x00,0x0F,0x6E,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x06,0x00,0x18,0x79,0x80,0x03,0x00,0x0F,
0x6B,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x18,
0x7F,0x00,0x1F,0xF4,0x01,0xE9,0xE0,0x00,0x00,0x00,0x00,
0x00,0x00,0xC6,0xE0,0x18,0xFF,0x80,0x1F,0xFC,0x00,0xFB,
0x30,0x00,0x00,0x00,0x00,0x00,0x01,0xC6,0x70,0x1B,0x1E,
0xC0,0x03,0x38,0x01,0xB3,0x00,0x00,0x00,0x00,0x00,0x00,
0x03,0x86,0x38,0xDB,0xFF,0xE0,0x03,0x70,0x07,0x9E,0x7F,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x26,0x18,0xDB,0x8C,0x70,
0x7F,0xFF,0x87,0x27,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,
0x3E,0x01,0xFF,0xFF,0xB8,0x7F,0xFF,0x80,0x3F,0xC0,0x00,
0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x0C,0x18,0x07,
0x80,0x00,0x39,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,
0x00,0x00,0xFF,0xE0,0x0F,0x00,0x00,0xFB,0x1F,0xF8,0x00,
0x00,0x00,0x00,0x00,0x00,0x7F,0xF0,0xFF,0xE0,0x1F,0x30,
0x01,0xCF,0xFF,0xFF,0x09,0x00,0x00,0x00,0x00,0x03,0xFF,
0xFF,0x0C,0x00,0x3B,0x36,0x03,0x07,0xFF,0xFF,0xE0,0x00,
0x00,0x00,0x00,0x0F,0xFF,0xFF,0xCC,0x00,0x73,0x76,0x03,
0x3F,0xFF,0xFF,0xF7,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,
0xFC,0x00,0x63,0xE6,0x00,0x3F,0xFF,0xFF,0xDC,0x80,0x00,
0x00,0x00,0x7F,0xFF,0xFF,0xFC,0x00,0x03,0xFE,0x00,0x7F,
0xFF,0xFF,0xAF,0x60,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFC,
0x00,0x03,0xFE,0x00,0xFF,0xFF,0xFF,0xF5,0xC0,0x00,0x00,
0x01,0xFF,0xFF,0xFF,0xFC,0x00,0x00,0x00,0x01,0xFF,0xFF,
0xFF,0x23,0x20,0x00,0x00,0x03,0xFF,0xFF,0xFF,0xFE,0x00,
0x00,0x00,0x03,0xFF,0x8F,0xE3,0xEC,0xA0,0x00,0x00,0x03,
0xFF,0x1F,0xC7,0xFF,0x00,0x00,0x00,0x03,0xFF,0x07,0xC1,
0x92,0xC0,0x00,0x00,0x07,0xFE,0x0F,0x83,0xFF,0x80,0x00,
0x00,0x07,0xFF,0x03,0xC0,0xE9,0xC0,0x00,0x00,0x0F,0xFE,
0x07,0x81,0xFF,0x80,0x00,0x00,0x07,0xFE,0x03,0x80,0xED,
0xE0,0x00,0x00,0x0F,0xFC,0x07,0x01,0xFF,0xC0,0x00,0x00,
0x0F,0xFE,0x1B,0xB0,0xDD,0xE0,0x00,0x00,0x1F,0xFC,0x37,
0x61,0xFF,0xC0,0x00,0x00,0x0F,0xFE,0x1B,0xB0,0xFF,0xE0,
0x00,0x00,0x1F,0xFC,0x37,0x61,0xFF,0xC0,0x00,0x00,0x0F,
0xFE,0x1B,0xB0,0xFF,0xF0,0x00,0x00,0x1F,0xFC,0x37,0x61,
0xFF,0xE0,0x00,0x00,0x1F,0xFE,0x1B,0xB0,0xFF,0xF0,0x00,
0x00,0x3F,0xFC,0x37,0x61,0xFF,0xE0,0x00,0x00,0x1F,0xFF,
0x03,0xC0,0xFF,0xF0,0x00,0x00,0x3F,0xFE,0x07,0x81,0xFF,
0xE0,0x00,0x00,0x1F,0xFF,0x07,0xC1,0xFF,0xF0,0x00,0x00,
0x3F,0xFE,0x0F,0x83,0xFF,0xE0,0x00,0x00,0x1F,0xFF,0x8C,
0x63,0xFF,0xF0,0x00,0x00,0x3F,0xFF,0x1F,0xC7,0xFF,0xE0,
0x00,0x00,0x1F,0xDF,0xFC,0x7F,0xF7,0xF0,0x00,0x00,0x3F,
0xFF,0xF0,0x7F,0xFF,0xE0,0x00,0x00,0x1F,0x07,0xFF,0xFF,
0xD1,0xF0,0x00,0x00,0x3F,0xFF,0xE0,0x3F,0xFF,0xE0,0x00,
0x00,0x1E,0x03,0xFF,0xFF,0x80,0xF0,0x00,0x00,0x3F,0xC0,
0x00,0x00,0x07,0xE0,0x00,0x00,0x1E,0x03,0xFE,0xFF,0xC0,
0xF0,0x00,0x00,0x3F,0xE0,0x00,0x00,0x0F,0xE0,0x00,0x00,
0x0C,0x01,0xF8,0x3F,0x80,0xE0,0x00,0x00,0x1F,0xE0,0x00,
0x00,0x1F,0xC0,0x00,0x00,0x0E,0x03,0xF0,0x1F,0xC0,0xE0,
0x00,0x00,0x1F,0xF0,0x0F,0xC0,0x1F,0xC0,0x00,0x00,0x1E,
0x03,0xF0,0x1F,0x80,0xE0,0x00,0x00,0x1F,0xFC,0x0B,0x40,
0x7F,0xC0,0x00,0x00,0x7F,0x1F,0xF0,0x1F,0xC3,0xE0,0x00,
0x00,0xFF,0xFF,0x0B,0x41,0xFF,0xC0,0x00,0x00,0xFF,0xFF,
0xF0,0x1F,0xF7,0xF0,0x00,0x01,0xFF,0xFF,0xC0,0x0F,0xFF,
0xF0,0x00,0x01,0xFF,0xFF,0xF8,0x3F,0xFF,0xFC,0x00,0x03,
0xFF,0xFF,0xF8,0x7F,0xFF,0xF8,0x00,0x03,0xFE,0x7F,0xFE,
0xFF,0xFF,0xFE,0x00,0x07,0xFC,0xFF,0xFF,0xFF,0xFF,0xFC,
0x00,0x07,0xFC,0x1F,0xFF,0xFF,0xF8,0xFE,0x00,0x0F,0xF8,
0x3F,0xFF,0xFF,0xF1,0xFC,0x00,0x0F,0xF8,0x07,0xFF,0xFF,
0xE0,0xFF,0x00,0x1F,0xF0,0x0F,0xFF,0xFF,0xC0,0xFE,0x00,
0x0F,0xF8,0x00,0xFF,0xFF,0x00,0x7F,0x80,0x1F,0xF0,0x01,
0xFF,0xFE,0x00,0xFF,0x00,0x1F,0xF0,0x00,0x02,0x00,0x00,
0x7F,0x80,0x3F,0xE0,0x00,0x00,0x00,0x00,0x7F,0x00,0x1F,
0xF0,0x00,0x00,0x00,0x00,0x3F,0xC0,0x3F,0xE0,0x00,0x00,
0x00,0x00,0x7F,0x00,0x3F,0xF0,0x00,0x00,0x00,0x00,0x3F,
0xC0,0x7F,0xE0,0x00,0x00,0x00,0x00,0x7F,0x00,0x3F,0xE0,
0x00,0x00,0x00,0x00,0x1F,0xE0,0x7F,0xC0,0x00,0x00,0x00,
0x00,0x3F,0x00,0x3F,0xE0,0x00,0x00,0x00,0x00,0x1F,0xE0,
0x7F,0xC0,0x00,0x00,0x00,0x00,0x3F,0x00,0x7F,0xE0,0x01,
0xC0,0xE0,0x00,0x1F,0xE0,0xFF,0xC0,0x00,0x70,0xE0,0x00,
0x3F,0x00,0x7F,0xE0,0x03,0xF3,0xF0,0x00,0x1F,0xE0,0xFF,
0xC0,0x00,0xF9,0xF0,0x00,0x3F,0x00,0x7F,0xE0,0x07,0xFF,
0xF8,0x00,0x1F,0xE0,0xFF,0xC0,0x01,0xFF,0xF8,0x00,0x3F,
0x00,0x7F,0xE0,0x07,0xFF,0xF8,0x00,0x1F,0xE0,0xFF,0xC0,
0x01,0xFF,0xF8,0x00,0x3F,0x00,0x7C,0xE0,0x07,0xFF,0xF8,
0x00,0x1B,0xE0,0xF9,0xC0,0x01,0xFF,0xF8,0x00,0x37,0x00,
0x38,0xF0,0x03,0xFF,0xF0,0x00,0x39,0xE0,0xF1,0xE0,0x00,
0xFF,0xF0,0x00,0x73,0x00,0x30,0x70,0x01,0xFF,0xE0,0x00,
0x30,0xC0,0x60,0xE0,0x00,0x7F,0xE0,0x00,0x61,0x00,0x00,
0x78,0x00,0xFF,0xC0,0x00,0x30,0x00,0x00,0xF0,0x00,0x3F,
0xC0,0x00,0x60,0x00,0x00,0x38,0x00,0x7F,0x80,0x00,0x60,
0x00,0x00,0x70,0x00,0x1F,0x80,0x00,0xC0,0x00,0x00,0x1C,
0x00,0x3F,0x00,0x00,0xC0,0x00,0x00,0x38,0x00,0x0F,0x00,
0x01,0x80,0x00,0x00,0x0E,0x00,0x1E,0x00,0x00,0x80,0x00,
0x00,0x1C,0x00,0x06,0x00,0x01,0x00,0x00,0x00,0x07,0x00,
0x0C,0x00,0x01,0x80,0x00,0x00,0x0E,0x00,0x06,0x00,0x03,
0x00 };
void write_12864com(uchar com)
{
rw = 0;
rs = 0;
delay_50us(1);
P0 = com;
e = 1;
delay_50us(10);
e = 0;
delay_50us(2);
}
{
RI = 0;
SerFlag[0]=SBUF;
if(SerFlag[0]==0x01)
{
Flag++;
}
}
lcd.h文件
#ifndef _LCD12864_H_
#define _LCD12864_H_
#define uint unsigned int
#define uchar unsigned char
sbit rs = P2^0;
sbit rw = P2^1;
sbit e = P2^2;
sbit psb = P2^3;
sbit res = P2^5;
void write_12864com(uchar com);//寫命令到lcd12864
void write_12864dat(uchar dat);//寫數(shù)據(jù)到lcd12864
void init_12864HZ(void);//液晶顯示漢字初始化
void init_12864PIC(void);//液晶顯示漢字初始化
void display_HZ(void);
void display_HZ1(void);
void display_HZ2(void);
void display_FH(void);
void display_PIC(void);
#endif
lcd.c文件
#include <reg52.h>
#include "delay.h"
#include "lcd12864.h"
uchar code pic2[]={
" 車門已經(jīng)關(guān)閉 "//
" 請注意車速 "//
" 請勿疲勞駕駛 "
" 祝您工作順利 "//
};
uchar code pic4[] = {
" 您好!有乘客需"
"開車門,謝謝!當(dāng)"
"要下車,到站時請"
"前您還未開門! "
};
uchar code pic5[] = {
" 您好!車門已經(jīng)"
"安全下車,當(dāng)前車"
"打開,請等候乘客"
"門處理打開狀態(tài)!"
};
unsigned char code pic3[]=
{
0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xC0,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,
0x00,0x07,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x18,0x00,0x03,0x00,0x07,0xEC,0xC0,0x00,0x00,
0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x37,0x80,0x03,0x00,
0x00,0xEC,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,
0x18,0x3F,0xC0,0x03,0x00,0x0F,0x6E,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x06,0x00,0x18,0x79,0x80,0x03,0x00,0x0F,
0x6B,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x18,
0x7F,0x00,0x1F,0xF4,0x01,0xE9,0xE0,0x00,0x00,0x00,0x00,
0x00,0x00,0xC6,0xE0,0x18,0xFF,0x80,0x1F,0xFC,0x00,0xFB,
0x30,0x00,0x00,0x00,0x00,0x00,0x01,0xC6,0x70,0x1B,0x1E,
0xC0,0x03,0x38,0x01,0xB3,0x00,0x00,0x00,0x00,0x00,0x00,
0x03,0x86,0x38,0xDB,0xFF,0xE0,0x03,0x70,0x07,0x9E,0x7F,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x26,0x18,0xDB,0x8C,0x70,
0x7F,0xFF,0x87,0x27,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,
0x3E,0x01,0xFF,0xFF,0xB8,0x7F,0xFF,0x80,0x3F,0xC0,0x00,
0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x0C,0x18,0x07,
0x80,0x00,0x39,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,
0x00,0x00,0xFF,0xE0,0x0F,0x00,0x00,0xFB,0x1F,0xF8,0x00,
0x00,0x00,0x00,0x00,0x00,0x7F,0xF0,0xFF,0xE0,0x1F,0x30,
0x01,0xCF,0xFF,0xFF,0x09,0x00,0x00,0x00,0x00,0x03,0xFF,
0xFF,0x0C,0x00,0x3B,0x36,0x03,0x07,0xFF,0xFF,0xE0,0x00,
0x00,0x00,0x00,0x0F,0xFF,0xFF,0xCC,0x00,0x73,0x76,0x03,
0x3F,0xFF,0xFF,0xF7,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,
0xFC,0x00,0x63,0xE6,0x00,0x3F,0xFF,0xFF,0xDC,0x80,0x00,
0x00,0x00,0x7F,0xFF,0xFF,0xFC,0x00,0x03,0xFE,0x00,0x7F,
0xFF,0xFF,0xAF,0x60,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFC,
0x00,0x03,0xFE,0x00,0xFF,0xFF,0xFF,0xF5,0xC0,0x00,0x00,
0x01,0xFF,0xFF,0xFF,0xFC,0x00,0x00,0x00,0x01,0xFF,0xFF,
0xFF,0x23,0x20,0x00,0x00,0x03,0xFF,0xFF,0xFF,0xFE,0x00,
0x00,0x00,0x03,0xFF,0x8F,0xE3,0xEC,0xA0,0x00,0x00,0x03,
0xFF,0x1F,0xC7,0xFF,0x00,0x00,0x00,0x03,0xFF,0x07,0xC1,
0x92,0xC0,0x00,0x00,0x07,0xFE,0x0F,0x83,0xFF,0x80,0x00,
0x00,0x07,0xFF,0x03,0xC0,0xE9,0xC0,0x00,0x00,0x0F,0xFE,
0x07,0x81,0xFF,0x80,0x00,0x00,0x07,0xFE,0x03,0x80,0xED,
0xE0,0x00,0x00,0x0F,0xFC,0x07,0x01,0xFF,0xC0,0x00,0x00,
0x0F,0xFE,0x1B,0xB0,0xDD,0xE0,0x00,0x00,0x1F,0xFC,0x37,
0x61,0xFF,0xC0,0x00,0x00,0x0F,0xFE,0x1B,0xB0,0xFF,0xE0,
0x00,0x00,0x1F,0xFC,0x37,0x61,0xFF,0xC0,0x00,0x00,0x0F,
0xFE,0x1B,0xB0,0xFF,0xF0,0x00,0x00,0x1F,0xFC,0x37,0x61,
0xFF,0xE0,0x00,0x00,0x1F,0xFE,0x1B,0xB0,0xFF,0xF0,0x00,
0x00,0x3F,0xFC,0x37,0x61,0xFF,0xE0,0x00,0x00,0x1F,0xFF,
0x03,0xC0,0xFF,0xF0,0x00,0x00,0x3F,0xFE,0x07,0x81,0xFF,
0xE0,0x00,0x00,0x1F,0xFF,0x07,0xC1,0xFF,0xF0,0x00,0x00,
0x3F,0xFE,0x0F,0x83,0xFF,0xE0,0x00,0x00,0x1F,0xFF,0x8C,
0x63,0xFF,0xF0,0x00,0x00,0x3F,0xFF,0x1F,0xC7,0xFF,0xE0,
0x00,0x00,0x1F,0xDF,0xFC,0x7F,0xF7,0xF0,0x00,0x00,0x3F,
0xFF,0xF0,0x7F,0xFF,0xE0,0x00,0x00,0x1F,0x07,0xFF,0xFF,
0xD1,0xF0,0x00,0x00,0x3F,0xFF,0xE0,0x3F,0xFF,0xE0,0x00,
0x00,0x1E,0x03,0xFF,0xFF,0x80,0xF0,0x00,0x00,0x3F,0xC0,
0x00,0x00,0x07,0xE0,0x00,0x00,0x1E,0x03,0xFE,0xFF,0xC0,
0xF0,0x00,0x00,0x3F,0xE0,0x00,0x00,0x0F,0xE0,0x00,0x00,
0x0C,0x01,0xF8,0x3F,0x80,0xE0,0x00,0x00,0x1F,0xE0,0x00,
0x00,0x1F,0xC0,0x00,0x00,0x0E,0x03,0xF0,0x1F,0xC0,0xE0,
0x00,0x00,0x1F,0xF0,0x0F,0xC0,0x1F,0xC0,0x00,0x00,0x1E,
0x03,0xF0,0x1F,0x80,0xE0,0x00,0x00,0x1F,0xFC,0x0B,0x40,
0x7F,0xC0,0x00,0x00,0x7F,0x1F,0xF0,0x1F,0xC3,0xE0,0x00,
0x00,0xFF,0xFF,0x0B,0x41,0xFF,0xC0,0x00,0x00,0xFF,0xFF,
0xF0,0x1F,0xF7,0xF0,0x00,0x01,0xFF,0xFF,0xC0,0x0F,0xFF,
0xF0,0x00,0x01,0xFF,0xFF,0xF8,0x3F,0xFF,0xFC,0x00,0x03,
0xFF,0xFF,0xF8,0x7F,0xFF,0xF8,0x00,0x03,0xFE,0x7F,0xFE,
0xFF,0xFF,0xFE,0x00,0x07,0xFC,0xFF,0xFF,0xFF,0xFF,0xFC,
0x00,0x07,0xFC,0x1F,0xFF,0xFF,0xF8,0xFE,0x00,0x0F,0xF8,
0x3F,0xFF,0xFF,0xF1,0xFC,0x00,0x0F,0xF8,0x07,0xFF,0xFF,
0xE0,0xFF,0x00,0x1F,0xF0,0x0F,0xFF,0xFF,0xC0,0xFE,0x00,
0x0F,0xF8,0x00,0xFF,0xFF,0x00,0x7F,0x80,0x1F,0xF0,0x01,
0xFF,0xFE,0x00,0xFF,0x00,0x1F,0xF0,0x00,0x02,0x00,0x00,
0x7F,0x80,0x3F,0xE0,0x00,0x00,0x00,0x00,0x7F,0x00,0x1F,
0xF0,0x00,0x00,0x00,0x00,0x3F,0xC0,0x3F,0xE0,0x00,0x00,
0x00,0x00,0x7F,0x00,0x3F,0xF0,0x00,0x00,0x00,0x00,0x3F,
0xC0,0x7F,0xE0,0x00,0x00,0x00,0x00,0x7F,0x00,0x3F,0xE0,
0x00,0x00,0x00,0x00,0x1F,0xE0,0x7F,0xC0,0x00,0x00,0x00,
0x00,0x3F,0x00,0x3F,0xE0,0x00,0x00,0x00,0x00,0x1F,0xE0,
0x7F,0xC0,0x00,0x00,0x00,0x00,0x3F,0x00,0x7F,0xE0,0x01,
0xC0,0xE0,0x00,0x1F,0xE0,0xFF,0xC0,0x00,0x70,0xE0,0x00,
0x3F,0x00,0x7F,0xE0,0x03,0xF3,0xF0,0x00,0x1F,0xE0,0xFF,
0xC0,0x00,0xF9,0xF0,0x00,0x3F,0x00,0x7F,0xE0,0x07,0xFF,
0xF8,0x00,0x1F,0xE0,0xFF,0xC0,0x01,0xFF,0xF8,0x00,0x3F,
0x00,0x7F,0xE0,0x07,0xFF,0xF8,0x00,0x1F,0xE0,0xFF,0xC0,
0x01,0xFF,0xF8,0x00,0x3F,0x00,0x7C,0xE0,0x07,0xFF,0xF8,
0x00,0x1B,0xE0,0xF9,0xC0,0x01,0xFF,0xF8,0x00,0x37,0x00,
0x38,0xF0,0x03,0xFF,0xF0,0x00,0x39,0xE0,0xF1,0xE0,0x00,
0xFF,0xF0,0x00,0x73,0x00,0x30,0x70,0x01,0xFF,0xE0,0x00,
0x30,0xC0,0x60,0xE0,0x00,0x7F,0xE0,0x00,0x61,0x00,0x00,
0x78,0x00,0xFF,0xC0,0x00,0x30,0x00,0x00,0xF0,0x00,0x3F,
0xC0,0x00,0x60,0x00,0x00,0x38,0x00,0x7F,0x80,0x00,0x60,
0x00,0x00,0x70,0x00,0x1F,0x80,0x00,0xC0,0x00,0x00,0x1C,
0x00,0x3F,0x00,0x00,0xC0,0x00,0x00,0x38,0x00,0x0F,0x00,
0x01,0x80,0x00,0x00,0x0E,0x00,0x1E,0x00,0x00,0x80,0x00,
0x00,0x1C,0x00,0x06,0x00,0x01,0x00,0x00,0x00,0x07,0x00,
0x0C,0x00,0x01,0x80,0x00,0x00,0x0E,0x00,0x06,0x00,0x03,
0x00 };
void write_12864com(uchar com)
{
rw = 0;
rs = 0;
delay_50us(1);
P0 = com;
e = 1;
delay_50us(10);
e = 0;
delay_50us(2);
}
void write_12864dat(uchar dat)
{
rw = 0;
rs = 1;
delay_50us(1);
P0 = dat;
e = 1;
delay_50us(10);
e = 0;
delay_50us(2);
{
rw = 0;
rs = 1;
delay_50us(1);
P0 = dat;
e = 1;
delay_50us(10);
e = 0;
delay_50us(2);
}
void init_12864HZ(void)
{
delay_50ms(1);
psb = 1;
delay_50us(20);
res = 0;
delay_50us(20);
res = 1;
delay_50us(2);
write_12864com(0x30);
delay_50ms(2);
write_12864com(0x30);
delay_50us(1);
write_12864com(0x08);
delay_50us(2);
write_12864com(0x10);
delay_50us(2);
write_12864com(0x0c);
delay_50us(2);
write_12864com(0x01);
delay_50ms(1);
write_12864com(0x06);
delay_50us(4);
}
void init_12864PIC(void)
{
delay_50ms(1);
psb = 1;
delay_50us(10);
res = 0;
delay_50us(10);
res = 1;
delay_50us(20);
write_12864com(0x36); //Extended Function Set RE=1: extended instruction
delay_50ms(4);
write_12864com(0x36);
delay_50ms(2);
write_12864com(0x3e);//EXFUNCTION(DL=8BITS,RE=1,G=1)//設(shè)置為并口
delay_50ms(4);
write_12864com(0x01);//CLEAR SCREEN清屏
delay_50ms(4);
}
void display_HZ(void)
{
uchar i;
write_12864com(0x80);
delay_50us(1);
for(i=0;i<64;i++)
{
write_12864dat(pic2[i]);
delay_50us(1);
}
}
void display_HZ1(void)
{
uchar i;
write_12864com(0x80);
delay_50us(1);
for(i=0;i<64;i++)
{
write_12864dat(pic4[i]);
delay_50us(1);
}
}
void display_HZ2(void)
{
uchar i;
write_12864com(0x80);
delay_50us(1);
for(i=0;i<64;i++)
{
write_12864dat(pic5[i]);
delay_50us(1);
}
}
void display_FH(void)
{
uchar i,a=0x10;
write_12864com(0x80);
delay_50us(1);
for(i=0;i<16;i++)
{
write_12864dat(a);
delay_50us(1);
a++;
}
}
void display_PIC(void)
{
int i,j;
uint a;
for(i=0;i<32;i++)
{
write_12864com((0x80+i));
write_12864com(0x80);
for(j=0;j<16;j++)
{
write_12864dat(pic3[a]);
a++;
}
}
for(i=0;i<32;i++)
{
write_12864com((0x80+i));
write_12864com(0x88);
for(j=0;j<16;j++)
{
write_12864dat(pic3[a]);
a++;
}
}
}
delay.h文件
#ifndef _DELAY_H_
#define _DELAY_H_
#define uint unsigned int
#define uchar unsigned char
void delay_50us(uint t);
void delay_50ms(uint t);
void delays(uint j);
#endif
delay.c文件
#include "delay.h"
void delay_50us(uint t)
{
uchar j;
for(;t>0;t--);
for(j=19;j>0;j--);
}
void delay_50ms(uint t)
{
uint j;
for(;t>0;t--);
for(j=6245;j>0;j--);
}
void delays(uint j)
{
while(j--);
}

乘客接收部分的程序:
main.c文件
/*
*項目名稱:公交車門控電路
*日期 :2013年1月11日
*作者 :Michael
項目說明 :具體的功能請看程序說明
*/
#include <reg52.h>
#include "lcd12864.h"
#include "initfile.h"
#include "delay.h"
uchar keyFlag,serBuff,SerFlag;
void main()
{
uchar i;
init_all();
while(1)
{
if(key == 0)
{
delay_50us(1);
if(key == 0)
{
while(!key);
if(keyFlag == 0)
SBUF = 0x01;
keyFlag ++;
if(keyFlag>1)
{
display_HZ3();//有乘客已經(jīng)按鈴
delay_50ms(1000);
display_HZ1();
}
}
}
void init_12864HZ(void)
{
delay_50ms(1);
psb = 1;
delay_50us(20);
res = 0;
delay_50us(20);
res = 1;
delay_50us(2);
write_12864com(0x30);
delay_50ms(2);
write_12864com(0x30);
delay_50us(1);
write_12864com(0x08);
delay_50us(2);
write_12864com(0x10);
delay_50us(2);
write_12864com(0x0c);
delay_50us(2);
write_12864com(0x01);
delay_50ms(1);
write_12864com(0x06);
delay_50us(4);
}
void init_12864PIC(void)
{
delay_50ms(1);
psb = 1;
delay_50us(10);
res = 0;
delay_50us(10);
res = 1;
delay_50us(20);
write_12864com(0x36); //Extended Function Set RE=1: extended instruction
delay_50ms(4);
write_12864com(0x36);
delay_50ms(2);
write_12864com(0x3e);//EXFUNCTION(DL=8BITS,RE=1,G=1)//設(shè)置為并口
delay_50ms(4);
write_12864com(0x01);//CLEAR SCREEN清屏
delay_50ms(4);
}
void display_HZ(void)
{
uchar i;
write_12864com(0x80);
delay_50us(1);
for(i=0;i<64;i++)
{
write_12864dat(pic2[i]);
delay_50us(1);
}
}
void display_HZ1(void)
{
uchar i;
write_12864com(0x80);
delay_50us(1);
for(i=0;i<64;i++)
{
write_12864dat(pic4[i]);
delay_50us(1);
}
}
void display_HZ2(void)
{
uchar i;
write_12864com(0x80);
delay_50us(1);
for(i=0;i<64;i++)
{
write_12864dat(pic5[i]);
delay_50us(1);
}
}
void display_FH(void)
{
uchar i,a=0x10;
write_12864com(0x80);
delay_50us(1);
for(i=0;i<16;i++)
{
write_12864dat(a);
delay_50us(1);
a++;
}
}
void display_PIC(void)
{
int i,j;
uint a;
for(i=0;i<32;i++)
{
write_12864com((0x80+i));
write_12864com(0x80);
for(j=0;j<16;j++)
{
write_12864dat(pic3[a]);
a++;
}
}
for(i=0;i<32;i++)
{
write_12864com((0x80+i));
write_12864com(0x88);
for(j=0;j<16;j++)
{
write_12864dat(pic3[a]);
a++;
}
}
}
delay.h文件
#ifndef _DELAY_H_
#define _DELAY_H_
#define uint unsigned int
#define uchar unsigned char
void delay_50us(uint t);
void delay_50ms(uint t);
void delays(uint j);
#endif
delay.c文件
#include "delay.h"
void delay_50us(uint t)
{
uchar j;
for(;t>0;t--);
for(j=19;j>0;j--);
}
void delay_50ms(uint t)
{
uint j;
for(;t>0;t--);
for(j=6245;j>0;j--);
}
void delays(uint j)
{
while(j--);
}
乘客接收部分的程序:
main.c文件
/*
*項目名稱:公交車門控電路
*日期 :2013年1月11日
*作者 :Michael
項目說明 :具體的功能請看程序說明
*/
#include <reg52.h>
#include "lcd12864.h"
#include "initfile.h"
#include "delay.h"
uchar keyFlag,serBuff,SerFlag;
void main()
{
uchar i;
init_all();
while(1)
{
if(key == 0)
{
delay_50us(1);
if(key == 0)
{
while(!key);
if(keyFlag == 0)
SBUF = 0x01;
keyFlag ++;
if(keyFlag>1)
{
display_HZ3();//有乘客已經(jīng)按鈴
delay_50ms(1000);
display_HZ1();
}
}
}
if((SerFlag == 2)||(SerFlag == 3))
if(SerFlag == 1)
{
display_HZ1();//司機(jī)已經(jīng)收到您的信息
LEDY = 0;
LEDG = 1;
}
if(SerFlag == 2)
{
display_HZ2();//司機(jī)已經(jīng)收到您的信息
LEDY = 1; //黃燈滅
LEDG = 0; //綠燈亮
Relay = 0;//打開車門
}
if(SerFlag == 3)
{
display_HZ();//
keyFlag = 0;
LEDY = 1;//關(guān)閉黃燈
LEDG = 1;//關(guān)閉綠燈
Relay = 1;//關(guān)閉車門
// SerFlag = 0;
}
}
}
{
display_HZ1();//司機(jī)已經(jīng)收到您的信息
LEDY = 0;
LEDG = 1;
}
if(SerFlag == 2)
{
display_HZ2();//司機(jī)已經(jīng)收到您的信息
LEDY = 1; //黃燈滅
LEDG = 0; //綠燈亮
Relay = 0;//打開車門
}
if(SerFlag == 3)
{
display_HZ();//
keyFlag = 0;
LEDY = 1;//關(guān)閉黃燈
LEDG = 1;//關(guān)閉綠燈
Relay = 1;//關(guān)閉車門
// SerFlag = 0;
}
}
}
void SER() interrupt 4
{
RI = 0;
serBuff = SBUF;
if(serBuff == 0x01)
{
SerFlag = 1;
{
RI = 0;
serBuff = SBUF;
if(serBuff == 0x01)
{
SerFlag = 1;
}
if(serBuff == 0x02)
{
SerFlag = 2;
}
if(serBuff == 0x03)
{
SerFlag = 3;
}
}
delay.c文件
#include "delay.h"
void delay_50us(uint t)
{
uchar j;
for(;t>0;t--);
for(j=19;j>0;j--);
}
void delay_50ms(uint t)
{
uint j;
for(;t>0;t--);
for(j=6245;j>0;j--);
}
void delays(uint j)
{
while(j--);
}
lcd.c文件
#include <reg52.h>
#include "delay.h"
#include "lcd12864.h"
uchar code pic2[]={
"歡迎乘坐本次列車"//
"請您在快到站時提"
"如果您需要下車,"//
"前按鈴,謝謝! "//
};
uchar code pic4[] = {
"司機(jī)已經(jīng)收到您的"
"會在列車到站時為"
"下車信息,我們將"
"您打開車門! "
};
uchar code pic5[] = {
"尊敬的乘客,您已"
"您的行里準(zhǔn)備下車"
"經(jīng)到站了,請帶好"
"歡迎再次乘坐本車"
};
uchar code pic[] = {
"已經(jīng)有乘客按鈴了"
"請不要重復(fù)按鈴 "
"請您耐心等候 "
"祝您乘車愉快 "
};
unsigned char code pic3[]=
{
0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xC0,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,
0x00,0x07,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x18,0x00,0x03,0x00,0x07,0xEC,0xC0,0x00,0x00,
0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x37,0x80,0x03,0x00,
0x00,0xEC,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,
0x18,0x3F,0xC0,0x03,0x00,0x0F,0x6E,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x06,0x00,0x18,0x79,0x80,0x03,0x00,0x0F,
0x6B,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x18,
0x7F,0x00,0x1F,0xF4,0x01,0xE9,0xE0,0x00,0x00,0x00,0x00,
0x00,0x00,0xC6,0xE0,0x18,0xFF,0x80,0x1F,0xFC,0x00,0xFB,
0x30,0x00,0x00,0x00,0x00,0x00,0x01,0xC6,0x70,0x1B,0x1E,
0xC0,0x03,0x38,0x01,0xB3,0x00,0x00,0x00,0x00,0x00,0x00,
0x03,0x86,0x38,0xDB,0xFF,0xE0,0x03,0x70,0x07,0x9E,0x7F,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x26,0x18,0xDB,0x8C,0x70,
0x7F,0xFF,0x87,0x27,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,
0x3E,0x01,0xFF,0xFF,0xB8,0x7F,0xFF,0x80,0x3F,0xC0,0x00,
0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x0C,0x18,0x07,
0x80,0x00,0x39,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,
0x00,0x00,0xFF,0xE0,0x0F,0x00,0x00,0xFB,0x1F,0xF8,0x00,
0x00,0x00,0x00,0x00,0x00,0x7F,0xF0,0xFF,0xE0,0x1F,0x30,
0x01,0xCF,0xFF,0xFF,0x09,0x00,0x00,0x00,0x00,0x03,0xFF,
0xFF,0x0C,0x00,0x3B,0x36,0x03,0x07,0xFF,0xFF,0xE0,0x00,
0x00,0x00,0x00,0x0F,0xFF,0xFF,0xCC,0x00,0x73,0x76,0x03,
0x3F,0xFF,0xFF,0xF7,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,
0xFC,0x00,0x63,0xE6,0x00,0x3F,0xFF,0xFF,0xDC,0x80,0x00,
0x00,0x00,0x7F,0xFF,0xFF,0xFC,0x00,0x03,0xFE,0x00,0x7F,
0xFF,0xFF,0xAF,0x60,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFC,
0x00,0x03,0xFE,0x00,0xFF,0xFF,0xFF,0xF5,0xC0,0x00,0x00,
0x01,0xFF,0xFF,0xFF,0xFC,0x00,0x00,0x00,0x01,0xFF,0xFF,
0xFF,0x23,0x20,0x00,0x00,0x03,0xFF,0xFF,0xFF,0xFE,0x00,
0x00,0x00,0x03,0xFF,0x8F,0xE3,0xEC,0xA0,0x00,0x00,0x03,
0xFF,0x1F,0xC7,0xFF,0x00,0x00,0x00,0x03,0xFF,0x07,0xC1,
0x92,0xC0,0x00,0x00,0x07,0xFE,0x0F,0x83,0xFF,0x80,0x00,
0x00,0x07,0xFF,0x03,0xC0,0xE9,0xC0,0x00,0x00,0x0F,0xFE,
0x07,0x81,0xFF,0x80,0x00,0x00,0x07,0xFE,0x03,0x80,0xED,
0xE0,0x00,0x00,0x0F,0xFC,0x07,0x01,0xFF,0xC0,0x00,0x00,
0x0F,0xFE,0x1B,0xB0,0xDD,0xE0,0x00,0x00,0x1F,0xFC,0x37,
0x61,0xFF,0xC0,0x00,0x00,0x0F,0xFE,0x1B,0xB0,0xFF,0xE0,
0x00,0x00,0x1F,0xFC,0x37,0x61,0xFF,0xC0,0x00,0x00,0x0F,
0xFE,0x1B,0xB0,0xFF,0xF0,0x00,0x00,0x1F,0xFC,0x37,0x61,
0xFF,0xE0,0x00,0x00,0x1F,0xFE,0x1B,0xB0,0xFF,0xF0,0x00,
0x00,0x3F,0xFC,0x37,0x61,0xFF,0xE0,0x00,0x00,0x1F,0xFF,
0x03,0xC0,0xFF,0xF0,0x00,0x00,0x3F,0xFE,0x07,0x81,0xFF,
0xE0,0x00,0x00,0x1F,0xFF,0x07,0xC1,0xFF,0xF0,0x00,0x00,
0x3F,0xFE,0x0F,0x83,0xFF,0xE0,0x00,0x00,0x1F,0xFF,0x8C,
0x63,0xFF,0xF0,0x00,0x00,0x3F,0xFF,0x1F,0xC7,0xFF,0xE0,
0x00,0x00,0x1F,0xDF,0xFC,0x7F,0xF7,0xF0,0x00,0x00,0x3F,
0xFF,0xF0,0x7F,0xFF,0xE0,0x00,0x00,0x1F,0x07,0xFF,0xFF,
0xD1,0xF0,0x00,0x00,0x3F,0xFF,0xE0,0x3F,0xFF,0xE0,0x00,
0x00,0x1E,0x03,0xFF,0xFF,0x80,0xF0,0x00,0x00,0x3F,0xC0,
0x00,0x00,0x07,0xE0,0x00,0x00,0x1E,0x03,0xFE,0xFF,0xC0,
0xF0,0x00,0x00,0x3F,0xE0,0x00,0x00,0x0F,0xE0,0x00,0x00,
0x0C,0x01,0xF8,0x3F,0x80,0xE0,0x00,0x00,0x1F,0xE0,0x00,
0x00,0x1F,0xC0,0x00,0x00,0x0E,0x03,0xF0,0x1F,0xC0,0xE0,
0x00,0x00,0x1F,0xF0,0x0F,0xC0,0x1F,0xC0,0x00,0x00,0x1E,
0x03,0xF0,0x1F,0x80,0xE0,0x00,0x00,0x1F,0xFC,0x0B,0x40,
0x7F,0xC0,0x00,0x00,0x7F,0x1F,0xF0,0x1F,0xC3,0xE0,0x00,
0x00,0xFF,0xFF,0x0B,0x41,0xFF,0xC0,0x00,0x00,0xFF,0xFF,
0xF0,0x1F,0xF7,0xF0,0x00,0x01,0xFF,0xFF,0xC0,0x0F,0xFF,
0xF0,0x00,0x01,0xFF,0xFF,0xF8,0x3F,0xFF,0xFC,0x00,0x03,
0xFF,0xFF,0xF8,0x7F,0xFF,0xF8,0x00,0x03,0xFE,0x7F,0xFE,
0xFF,0xFF,0xFE,0x00,0x07,0xFC,0xFF,0xFF,0xFF,0xFF,0xFC,
0x00,0x07,0xFC,0x1F,0xFF,0xFF,0xF8,0xFE,0x00,0x0F,0xF8,
0x3F,0xFF,0xFF,0xF1,0xFC,0x00,0x0F,0xF8,0x07,0xFF,0xFF,
0xE0,0xFF,0x00,0x1F,0xF0,0x0F,0xFF,0xFF,0xC0,0xFE,0x00,
0x0F,0xF8,0x00,0xFF,0xFF,0x00,0x7F,0x80,0x1F,0xF0,0x01,
0xFF,0xFE,0x00,0xFF,0x00,0x1F,0xF0,0x00,0x02,0x00,0x00,
0x7F,0x80,0x3F,0xE0,0x00,0x00,0x00,0x00,0x7F,0x00,0x1F,
0xF0,0x00,0x00,0x00,0x00,0x3F,0xC0,0x3F,0xE0,0x00,0x00,
0x00,0x00,0x7F,0x00,0x3F,0xF0,0x00,0x00,0x00,0x00,0x3F,
0xC0,0x7F,0xE0,0x00,0x00,0x00,0x00,0x7F,0x00,0x3F,0xE0,
0x00,0x00,0x00,0x00,0x1F,0xE0,0x7F,0xC0,0x00,0x00,0x00,
0x00,0x3F,0x00,0x3F,0xE0,0x00,0x00,0x00,0x00,0x1F,0xE0,
0x7F,0xC0,0x00,0x00,0x00,0x00,0x3F,0x00,0x7F,0xE0,0x01,
0xC0,0xE0,0x00,0x1F,0xE0,0xFF,0xC0,0x00,0x70,0xE0,0x00,
0x3F,0x00,0x7F,0xE0,0x03,0xF3,0xF0,0x00,0x1F,0xE0,0xFF,
0xC0,0x00,0xF9,0xF0,0x00,0x3F,0x00,0x7F,0xE0,0x07,0xFF,
0xF8,0x00,0x1F,0xE0,0xFF,0xC0,0x01,0xFF,0xF8,0x00,0x3F,
0x00,0x7F,0xE0,0x07,0xFF,0xF8,0x00,0x1F,0xE0,0xFF,0xC0,
0x01,0xFF,0xF8,0x00,0x3F,0x00,0x7C,0xE0,0x07,0xFF,0xF8,
0x00,0x1B,0xE0,0xF9,0xC0,0x01,0xFF,0xF8,0x00,0x37,0x00,
0x38,0xF0,0x03,0xFF,0xF0,0x00,0x39,0xE0,0xF1,0xE0,0x00,
0xFF,0xF0,0x00,0x73,0x00,0x30,0x70,0x01,0xFF,0xE0,0x00,
0x30,0xC0,0x60,0xE0,0x00,0x7F,0xE0,0x00,0x61,0x00,0x00,
0x78,0x00,0xFF,0xC0,0x00,0x30,0x00,0x00,0xF0,0x00,0x3F,
0xC0,0x00,0x60,0x00,0x00,0x38,0x00,0x7F,0x80,0x00,0x60,
0x00,0x00,0x70,0x00,0x1F,0x80,0x00,0xC0,0x00,0x00,0x1C,
0x00,0x3F,0x00,0x00,0xC0,0x00,0x00,0x38,0x00,0x0F,0x00,
0x01,0x80,0x00,0x00,0x0E,0x00,0x1E,0x00,0x00,0x80,0x00,
0x00,0x1C,0x00,0x06,0x00,0x01,0x00,0x00,0x00,0x07,0x00,
0x0C,0x00,0x01,0x80,0x00,0x00,0x0E,0x00,0x06,0x00,0x03,
0x00 };
void write_12864com(uchar com)
{
rw = 0;
rs = 0;
delay_50us(1);
P0 = com;
e = 1;
delay_50us(10);
e = 0;
delay_50us(2);
}
if(serBuff == 0x02)
{
SerFlag = 2;
}
if(serBuff == 0x03)
{
SerFlag = 3;
}
}
delay.c文件
#include "delay.h"
void delay_50us(uint t)
{
uchar j;
for(;t>0;t--);
for(j=19;j>0;j--);
}
void delay_50ms(uint t)
{
uint j;
for(;t>0;t--);
for(j=6245;j>0;j--);
}
void delays(uint j)
{
while(j--);
}
lcd.c文件
#include <reg52.h>
#include "delay.h"
#include "lcd12864.h"
uchar code pic2[]={
"歡迎乘坐本次列車"//
"請您在快到站時提"
"如果您需要下車,"//
"前按鈴,謝謝! "//
};
uchar code pic4[] = {
"司機(jī)已經(jīng)收到您的"
"會在列車到站時為"
"下車信息,我們將"
"您打開車門! "
};
uchar code pic5[] = {
"尊敬的乘客,您已"
"您的行里準(zhǔn)備下車"
"經(jīng)到站了,請帶好"
"歡迎再次乘坐本車"
};
uchar code pic[] = {
"已經(jīng)有乘客按鈴了"
"請不要重復(fù)按鈴 "
"請您耐心等候 "
"祝您乘車愉快 "
};
unsigned char code pic3[]=
{
0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xC0,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,
0x00,0x07,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x18,0x00,0x03,0x00,0x07,0xEC,0xC0,0x00,0x00,
0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x37,0x80,0x03,0x00,
0x00,0xEC,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,
0x18,0x3F,0xC0,0x03,0x00,0x0F,0x6E,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x06,0x00,0x18,0x79,0x80,0x03,0x00,0x0F,
0x6B,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x18,
0x7F,0x00,0x1F,0xF4,0x01,0xE9,0xE0,0x00,0x00,0x00,0x00,
0x00,0x00,0xC6,0xE0,0x18,0xFF,0x80,0x1F,0xFC,0x00,0xFB,
0x30,0x00,0x00,0x00,0x00,0x00,0x01,0xC6,0x70,0x1B,0x1E,
0xC0,0x03,0x38,0x01,0xB3,0x00,0x00,0x00,0x00,0x00,0x00,
0x03,0x86,0x38,0xDB,0xFF,0xE0,0x03,0x70,0x07,0x9E,0x7F,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x26,0x18,0xDB,0x8C,0x70,
0x7F,0xFF,0x87,0x27,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,
0x3E,0x01,0xFF,0xFF,0xB8,0x7F,0xFF,0x80,0x3F,0xC0,0x00,
0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x0C,0x18,0x07,
0x80,0x00,0x39,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,
0x00,0x00,0xFF,0xE0,0x0F,0x00,0x00,0xFB,0x1F,0xF8,0x00,
0x00,0x00,0x00,0x00,0x00,0x7F,0xF0,0xFF,0xE0,0x1F,0x30,
0x01,0xCF,0xFF,0xFF,0x09,0x00,0x00,0x00,0x00,0x03,0xFF,
0xFF,0x0C,0x00,0x3B,0x36,0x03,0x07,0xFF,0xFF,0xE0,0x00,
0x00,0x00,0x00,0x0F,0xFF,0xFF,0xCC,0x00,0x73,0x76,0x03,
0x3F,0xFF,0xFF,0xF7,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,
0xFC,0x00,0x63,0xE6,0x00,0x3F,0xFF,0xFF,0xDC,0x80,0x00,
0x00,0x00,0x7F,0xFF,0xFF,0xFC,0x00,0x03,0xFE,0x00,0x7F,
0xFF,0xFF,0xAF,0x60,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFC,
0x00,0x03,0xFE,0x00,0xFF,0xFF,0xFF,0xF5,0xC0,0x00,0x00,
0x01,0xFF,0xFF,0xFF,0xFC,0x00,0x00,0x00,0x01,0xFF,0xFF,
0xFF,0x23,0x20,0x00,0x00,0x03,0xFF,0xFF,0xFF,0xFE,0x00,
0x00,0x00,0x03,0xFF,0x8F,0xE3,0xEC,0xA0,0x00,0x00,0x03,
0xFF,0x1F,0xC7,0xFF,0x00,0x00,0x00,0x03,0xFF,0x07,0xC1,
0x92,0xC0,0x00,0x00,0x07,0xFE,0x0F,0x83,0xFF,0x80,0x00,
0x00,0x07,0xFF,0x03,0xC0,0xE9,0xC0,0x00,0x00,0x0F,0xFE,
0x07,0x81,0xFF,0x80,0x00,0x00,0x07,0xFE,0x03,0x80,0xED,
0xE0,0x00,0x00,0x0F,0xFC,0x07,0x01,0xFF,0xC0,0x00,0x00,
0x0F,0xFE,0x1B,0xB0,0xDD,0xE0,0x00,0x00,0x1F,0xFC,0x37,
0x61,0xFF,0xC0,0x00,0x00,0x0F,0xFE,0x1B,0xB0,0xFF,0xE0,
0x00,0x00,0x1F,0xFC,0x37,0x61,0xFF,0xC0,0x00,0x00,0x0F,
0xFE,0x1B,0xB0,0xFF,0xF0,0x00,0x00,0x1F,0xFC,0x37,0x61,
0xFF,0xE0,0x00,0x00,0x1F,0xFE,0x1B,0xB0,0xFF,0xF0,0x00,
0x00,0x3F,0xFC,0x37,0x61,0xFF,0xE0,0x00,0x00,0x1F,0xFF,
0x03,0xC0,0xFF,0xF0,0x00,0x00,0x3F,0xFE,0x07,0x81,0xFF,
0xE0,0x00,0x00,0x1F,0xFF,0x07,0xC1,0xFF,0xF0,0x00,0x00,
0x3F,0xFE,0x0F,0x83,0xFF,0xE0,0x00,0x00,0x1F,0xFF,0x8C,
0x63,0xFF,0xF0,0x00,0x00,0x3F,0xFF,0x1F,0xC7,0xFF,0xE0,
0x00,0x00,0x1F,0xDF,0xFC,0x7F,0xF7,0xF0,0x00,0x00,0x3F,
0xFF,0xF0,0x7F,0xFF,0xE0,0x00,0x00,0x1F,0x07,0xFF,0xFF,
0xD1,0xF0,0x00,0x00,0x3F,0xFF,0xE0,0x3F,0xFF,0xE0,0x00,
0x00,0x1E,0x03,0xFF,0xFF,0x80,0xF0,0x00,0x00,0x3F,0xC0,
0x00,0x00,0x07,0xE0,0x00,0x00,0x1E,0x03,0xFE,0xFF,0xC0,
0xF0,0x00,0x00,0x3F,0xE0,0x00,0x00,0x0F,0xE0,0x00,0x00,
0x0C,0x01,0xF8,0x3F,0x80,0xE0,0x00,0x00,0x1F,0xE0,0x00,
0x00,0x1F,0xC0,0x00,0x00,0x0E,0x03,0xF0,0x1F,0xC0,0xE0,
0x00,0x00,0x1F,0xF0,0x0F,0xC0,0x1F,0xC0,0x00,0x00,0x1E,
0x03,0xF0,0x1F,0x80,0xE0,0x00,0x00,0x1F,0xFC,0x0B,0x40,
0x7F,0xC0,0x00,0x00,0x7F,0x1F,0xF0,0x1F,0xC3,0xE0,0x00,
0x00,0xFF,0xFF,0x0B,0x41,0xFF,0xC0,0x00,0x00,0xFF,0xFF,
0xF0,0x1F,0xF7,0xF0,0x00,0x01,0xFF,0xFF,0xC0,0x0F,0xFF,
0xF0,0x00,0x01,0xFF,0xFF,0xF8,0x3F,0xFF,0xFC,0x00,0x03,
0xFF,0xFF,0xF8,0x7F,0xFF,0xF8,0x00,0x03,0xFE,0x7F,0xFE,
0xFF,0xFF,0xFE,0x00,0x07,0xFC,0xFF,0xFF,0xFF,0xFF,0xFC,
0x00,0x07,0xFC,0x1F,0xFF,0xFF,0xF8,0xFE,0x00,0x0F,0xF8,
0x3F,0xFF,0xFF,0xF1,0xFC,0x00,0x0F,0xF8,0x07,0xFF,0xFF,
0xE0,0xFF,0x00,0x1F,0xF0,0x0F,0xFF,0xFF,0xC0,0xFE,0x00,
0x0F,0xF8,0x00,0xFF,0xFF,0x00,0x7F,0x80,0x1F,0xF0,0x01,
0xFF,0xFE,0x00,0xFF,0x00,0x1F,0xF0,0x00,0x02,0x00,0x00,
0x7F,0x80,0x3F,0xE0,0x00,0x00,0x00,0x00,0x7F,0x00,0x1F,
0xF0,0x00,0x00,0x00,0x00,0x3F,0xC0,0x3F,0xE0,0x00,0x00,
0x00,0x00,0x7F,0x00,0x3F,0xF0,0x00,0x00,0x00,0x00,0x3F,
0xC0,0x7F,0xE0,0x00,0x00,0x00,0x00,0x7F,0x00,0x3F,0xE0,
0x00,0x00,0x00,0x00,0x1F,0xE0,0x7F,0xC0,0x00,0x00,0x00,
0x00,0x3F,0x00,0x3F,0xE0,0x00,0x00,0x00,0x00,0x1F,0xE0,
0x7F,0xC0,0x00,0x00,0x00,0x00,0x3F,0x00,0x7F,0xE0,0x01,
0xC0,0xE0,0x00,0x1F,0xE0,0xFF,0xC0,0x00,0x70,0xE0,0x00,
0x3F,0x00,0x7F,0xE0,0x03,0xF3,0xF0,0x00,0x1F,0xE0,0xFF,
0xC0,0x00,0xF9,0xF0,0x00,0x3F,0x00,0x7F,0xE0,0x07,0xFF,
0xF8,0x00,0x1F,0xE0,0xFF,0xC0,0x01,0xFF,0xF8,0x00,0x3F,
0x00,0x7F,0xE0,0x07,0xFF,0xF8,0x00,0x1F,0xE0,0xFF,0xC0,
0x01,0xFF,0xF8,0x00,0x3F,0x00,0x7C,0xE0,0x07,0xFF,0xF8,
0x00,0x1B,0xE0,0xF9,0xC0,0x01,0xFF,0xF8,0x00,0x37,0x00,
0x38,0xF0,0x03,0xFF,0xF0,0x00,0x39,0xE0,0xF1,0xE0,0x00,
0xFF,0xF0,0x00,0x73,0x00,0x30,0x70,0x01,0xFF,0xE0,0x00,
0x30,0xC0,0x60,0xE0,0x00,0x7F,0xE0,0x00,0x61,0x00,0x00,
0x78,0x00,0xFF,0xC0,0x00,0x30,0x00,0x00,0xF0,0x00,0x3F,
0xC0,0x00,0x60,0x00,0x00,0x38,0x00,0x7F,0x80,0x00,0x60,
0x00,0x00,0x70,0x00,0x1F,0x80,0x00,0xC0,0x00,0x00,0x1C,
0x00,0x3F,0x00,0x00,0xC0,0x00,0x00,0x38,0x00,0x0F,0x00,
0x01,0x80,0x00,0x00,0x0E,0x00,0x1E,0x00,0x00,0x80,0x00,
0x00,0x1C,0x00,0x06,0x00,0x01,0x00,0x00,0x00,0x07,0x00,
0x0C,0x00,0x01,0x80,0x00,0x00,0x0E,0x00,0x06,0x00,0x03,
0x00 };
void write_12864com(uchar com)
{
rw = 0;
rs = 0;
delay_50us(1);
P0 = com;
e = 1;
delay_50us(10);
e = 0;
delay_50us(2);
}
void write_12864dat(uchar dat)
{
rw = 0;
rs = 1;
delay_50us(1);
P0 = dat;
e = 1;
delay_50us(10);
e = 0;
delay_50us(2);
{
rw = 0;
rs = 1;
delay_50us(1);
P0 = dat;
e = 1;
delay_50us(10);
e = 0;
delay_50us(2);
}
void init_12864HZ(void)
{
delay_50ms(1);
psb = 1;
delay_50us(20);
res = 0;
delay_50us(20);
res = 1;
delay_50us(2);
write_12864com(0x30);
delay_50ms(2);
write_12864com(0x30);
delay_50us(1);
write_12864com(0x08);
delay_50us(2);
write_12864com(0x10);
delay_50us(2);
write_12864com(0x0c);
delay_50us(2);
write_12864com(0x01);
delay_50ms(1);
write_12864com(0x06);
delay_50us(4);
}
void init_12864PIC(void)
{
delay_50ms(1);
psb = 1;
delay_50us(10);
res = 0;
delay_50us(10);
res = 1;
delay_50us(20);
write_12864com(0x36); //Extended Function Set RE=1: extended instruction
delay_50ms(4);
write_12864com(0x36);
delay_50ms(2);
write_12864com(0x3e);//EXFUNCTION(DL=8BITS,RE=1,G=1)//設(shè)置為并口
delay_50ms(4);
write_12864com(0x01);//CLEAR SCREEN清屏
delay_50ms(4);
}
void display_HZ(void)
{
uchar i;
write_12864com(0x80);
delay_50us(1);
for(i=0;i<64;i++)
{
write_12864dat(pic2[i]);
delay_50us(1);
}
}
void display_HZ1(void)
{
uchar i;
write_12864com(0x80);
delay_50us(1);
for(i=0;i<64;i++)
{
write_12864dat(pic4[i]);
delay_50us(1);
}
}
void display_HZ2(void)
{
uchar i;
write_12864com(0x80);
delay_50us(1);
for(i=0;i<64;i++)
{
write_12864dat(pic5[i]);
delay_50us(1);
}
}
void display_HZ3(void)
{
uchar i;
write_12864com(0x80);
delay_50us(1);
for(i=0;i<64;i++)
{
write_12864dat(pic[i]);
delay_50us(1);
}
}
void display_FH(void)
{
uchar i,a=0x10;
write_12864com(0x80);
delay_50us(1);
for(i=0;i<16;i++)
{
write_12864dat(a);
delay_50us(1);
a++;
}
}
void display_PIC(void)
{
int i,j;
uint a;
for(i=0;i<32;i++)
{
write_12864com((0x80+i));
write_12864com(0x80);
for(j=0;j<16;j++)
{
write_12864dat(pic3[a]);
a++;
}
}
for(i=0;i<32;i++)
{
write_12864com((0x80+i));
write_12864com(0x88);
for(j=0;j<16;j++)
{
write_12864dat(pic3[a]);
a++;
}
}
}
initfile.c
#include <reg52.h>
#include "initfile.h"
#include "lcd12864.h"
void init_all()
{
EA = 1;
ES = 1;
TMOD = 0X20;
TH1 = 0XFD;
TL1 = 0XFD;
TR1 = 1;
REN = 1;
SM1 = 1;
SM0 = 0;
init_12864HZ();//提示下車乘客提前按鈴
display_HZ();
}
lcd.h
#ifndef _LCD12864_H_
#define _LCD12864_H_
#define uint unsigned int
#define uchar unsigned char
sbit rs = P2^0;
sbit rw = P2^1;
sbit e = P2^2;
sbit psb = P2^3;
sbit res = P2^5;
void write_12864com(uchar com);//寫命令到lcd12864
void write_12864dat(uchar dat);//寫數(shù)據(jù)到lcd12864
void init_12864HZ(void);//液晶顯示漢字初始化
void init_12864PIC(void);//液晶顯示漢字初始化
void display_HZ(void);
void display_HZ1(void);
void display_HZ2(void);
void display_FH(void);
void display_PIC(void);
#endif
delay.h
#ifndef _DELAY_H_
#define _DELAY_H_
#define uint unsigned int
#define uchar unsigned char
void delay_50us(uint t);
void delay_50ms(uint t);
void delays(uint j);
#endif
initfile.h
#ifndef _INITFILE_H
#define _INITFILE_H
#define uint unsigned int
#define uchar unsigned char
sbit key = P3^3;
sbit buzzer = P3^4;
sbit LEDY = P1^0;
sbit LEDG = P1^1;
sbit Relay = P3^5;
void init_all();
#endif
void init_12864HZ(void)
{
delay_50ms(1);
psb = 1;
delay_50us(20);
res = 0;
delay_50us(20);
res = 1;
delay_50us(2);
write_12864com(0x30);
delay_50ms(2);
write_12864com(0x30);
delay_50us(1);
write_12864com(0x08);
delay_50us(2);
write_12864com(0x10);
delay_50us(2);
write_12864com(0x0c);
delay_50us(2);
write_12864com(0x01);
delay_50ms(1);
write_12864com(0x06);
delay_50us(4);
}
void init_12864PIC(void)
{
delay_50ms(1);
psb = 1;
delay_50us(10);
res = 0;
delay_50us(10);
res = 1;
delay_50us(20);
write_12864com(0x36); //Extended Function Set RE=1: extended instruction
delay_50ms(4);
write_12864com(0x36);
delay_50ms(2);
write_12864com(0x3e);//EXFUNCTION(DL=8BITS,RE=1,G=1)//設(shè)置為并口
delay_50ms(4);
write_12864com(0x01);//CLEAR SCREEN清屏
delay_50ms(4);
}
void display_HZ(void)
{
uchar i;
write_12864com(0x80);
delay_50us(1);
for(i=0;i<64;i++)
{
write_12864dat(pic2[i]);
delay_50us(1);
}
}
void display_HZ1(void)
{
uchar i;
write_12864com(0x80);
delay_50us(1);
for(i=0;i<64;i++)
{
write_12864dat(pic4[i]);
delay_50us(1);
}
}
void display_HZ2(void)
{
uchar i;
write_12864com(0x80);
delay_50us(1);
for(i=0;i<64;i++)
{
write_12864dat(pic5[i]);
delay_50us(1);
}
}
void display_HZ3(void)
{
uchar i;
write_12864com(0x80);
delay_50us(1);
for(i=0;i<64;i++)
{
write_12864dat(pic[i]);
delay_50us(1);
}
}
void display_FH(void)
{
uchar i,a=0x10;
write_12864com(0x80);
delay_50us(1);
for(i=0;i<16;i++)
{
write_12864dat(a);
delay_50us(1);
a++;
}
}
void display_PIC(void)
{
int i,j;
uint a;
for(i=0;i<32;i++)
{
write_12864com((0x80+i));
write_12864com(0x80);
for(j=0;j<16;j++)
{
write_12864dat(pic3[a]);
a++;
}
}
for(i=0;i<32;i++)
{
write_12864com((0x80+i));
write_12864com(0x88);
for(j=0;j<16;j++)
{
write_12864dat(pic3[a]);
a++;
}
}
}
initfile.c
#include <reg52.h>
#include "initfile.h"
#include "lcd12864.h"
void init_all()
{
EA = 1;
ES = 1;
TMOD = 0X20;
TH1 = 0XFD;
TL1 = 0XFD;
TR1 = 1;
REN = 1;
SM1 = 1;
SM0 = 0;
init_12864HZ();//提示下車乘客提前按鈴
display_HZ();
}
lcd.h
#ifndef _LCD12864_H_
#define _LCD12864_H_
#define uint unsigned int
#define uchar unsigned char
sbit rs = P2^0;
sbit rw = P2^1;
sbit e = P2^2;
sbit psb = P2^3;
sbit res = P2^5;
void write_12864com(uchar com);//寫命令到lcd12864
void write_12864dat(uchar dat);//寫數(shù)據(jù)到lcd12864
void init_12864HZ(void);//液晶顯示漢字初始化
void init_12864PIC(void);//液晶顯示漢字初始化
void display_HZ(void);
void display_HZ1(void);
void display_HZ2(void);
void display_FH(void);
void display_PIC(void);
#endif
delay.h
#ifndef _DELAY_H_
#define _DELAY_H_
#define uint unsigned int
#define uchar unsigned char
void delay_50us(uint t);
void delay_50ms(uint t);
void delays(uint j);
#endif
initfile.h
#ifndef _INITFILE_H
#define _INITFILE_H
#define uint unsigned int
#define uchar unsigned char
sbit key = P3^3;
sbit buzzer = P3^4;
sbit LEDY = P1^0;
sbit LEDG = P1^1;
sbit Relay = P3^5;
void init_all();
#endif