内容发布更新时间 : 2024/12/22 21:49:32星期一 下面是文章的全部内容请认真阅读。
7.参考文献
[1]杨永辉.现代电子技术[J] .智能小车的多传感器数据融合.2005, (6) :3-6. [2]何立民.单片机与嵌入式系统应用[J]. 基于HCS12的小车智能控制系统设计.2007,(3) :51-53,57.
[3]方建军.何广平.智能机器人[M].北京:化学工业出版社.2004 :5-9. [4]张立.电子世界[J].电动小车的循迹. 2004,(6):45.
[5] http://club.china.alibaba.com/forum/thread/view/99_22334448_1.html. [6]滕志军.今日电子[J].基于超声波检测的倒车雷达设计.2006,(9):15-17. [7]徐科军.传感器与检测技术[M].北京:电子工业出版社,2007:110-113,160-161. [8]潘新民.王燕芳.微型计算机控制技术实用教程[M].北京:电子工业出版社,2007:75-76,118-119.
8.附录
8.1 程序清单
8.1.1 LCD驱动程序
/* */
#ifndef LCD_H_ #define LCD_H_
#include
sbit LCD_BL=P1^4; //定义背光控制信号 void LcdLightOn(); //点亮背光灯 void LcdLightOff(); //熄灭背光灯 void LcdClear(); //清屏 void LcdInit();
//初始化
LCD.C
128×64 LCD驱动程序头文件
void LcdPutChar(unsigned char c); //显示ASCⅡ码 void LcdPuts(unsigned char*s);
#endif //LCD_H_ /* */ LCD.C
128×64 LCD驱动程序
//显示字符串
#include
unsigned char LcdCursor; //定义屏幕光标(取值0~63,光标本身不可见)
int i,j;
void LcdLightOn() //功能:点亮背光灯 { }
void LcdLightOff() //功能:熄灭背光灯 { } /*
函数:LcdGetBF() 返回: */
bit LcdGetBF()//功能:读出状态位BF {
unsigned char dat; dat = XBYTE[0xD002];
//XBYTE的定义见
BF=1,表示忙,不可进行任何操作 BF=0,表示不忙,可以进行正常操作 LCD_BL = 0; LCD_BL = 1;
}
return (bit)(dat & 0x80);
void LcdWriteCmd(unsigned char cmd) //功能:向LCD发送命令 { }
void LcdWriteDat(unsigned char dat) { }
unsigned char LcdReadDat() { 数据
}
return dat;
volatile unsigned char dat; while ( LcdGetBF() ); dat = XBYTE[0xD003]; dat = XBYTE[0xD003];
//需要连续执行两次才能够读出真正的
//功能:从LCD读出数据
while ( LcdGetBF() ); XBYTE[0xD001] = dat;
// 功能:向LCD写入数据
while ( LcdGetBF() ); XBYTE[0xD000] = cmd;
/*
函数:LcdSetAC()
功能:设置DDRAM(显示数据RAM)的AC(地址计数器)值 */
void LcdSetAC(unsigned char ac) { }
void LcdClear() { }
void LcdDelay(unsigned char t) //功能:延时(t*100)个机器周期 { }
unsigned char n; do {
n = 49;
while ( --n != 0 ); LcdWriteCmd(0x01); LcdCursor = 0;
//清屏命令
//功能:LCD清屏,并使光标回到0
ac &= 0x3F; ac |= 0x80; LcdWriteCmd(ac);
} while ( --t != 0 );