超声波测距系统 - 图文(13)
//按指定位置显示一串字符 void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData) {
unsigned char ListLength;
ListLength = 0; Y &= 0x1;
X &= 0xF; //限制X不能大于15,Y不能大于1
while (DData[ListLength]>0x19) //若到达字串尾则退出 {
if (X <= 0xF) //X坐标应小于0xF {
DisplayOneChar(X, Y, DData[ListLength]); //显示单个字符
ListLength++; X++; } } }
//5ms延时
void Delay5Ms(void) {
unsigned int TempCyc = 5552; while(TempCyc--); }
//400ms延时
void Delay400Ms(void) {
unsigned char TempCycA = 5; unsigned int TempCycB; while(TempCycA--) {
TempCycB=7269; while(TempCycB--); }; }
/********************************************************/ void Conut(void) {
time=TH0*256+TL0; TH0=0;
43
TL0=0;
S=(time*1.7)/100; //算出来是CM
if((S>=700)||flag==1) //超出测量范围显示“-” {
flag=0;
//dd(\
DisplayOneChar(6, 1, ASCII[11]);
DisplayOneChar(7, 1, ASCII[10]); //显示点 DisplayOneChar(8, 1, ASCII[11]); DisplayOneChar(9, 1, ASCII[11]);
DisplayOneChar(10, 1, ASCII[12]); //显示M } else {
disbuff[0]=S00/100; disbuff[1]=S000/10; disbuff[2]=S00 ;
DisplayOneChar(6, 1, ASCII[disbuff[0]]); DisplayOneChar(7, 1, ASCII[10]); //显示点 DisplayOneChar(8, 1, ASCII[disbuff[1]]); DisplayOneChar(9, 1, ASCII[disbuff[2]]);
DisplayOneChar(10, 1, ASCII[12]); //显示M } }
/********************************************************/
void zd0() interrupt 1 //T0中断用来计数器溢出,超过测距范围 {
flag=1; //中断溢出标志 }
/********************************************************/ void StartModule() //启动模块 {
TX=1; //启动一次模块 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
44
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); TX=0; }
/****************报警函数***************/ void clock_h_l() {
static unsigned char value; if(S <= 100) {
value ++; //消除实际距离在设定距离左右变化时的干扰 if(value >= 2) {
beep = 0; //蜂鸣器报警 } }
else {
value = 0;
beep = 1; //取消报警 }
if(S <= 300) {
RedLed = 0; } else {
RedLed = 1; } }
45
/*********************************************************/ void main(void) {
unsigned char TempCyc;
Delay400Ms(); //启动等待,等LCM讲入工作状态 LCMInit(); //LCM初始化
Delay5Ms(); //延时片刻(可不要) DisplayListChar(0, 0, mcustudio); DisplayListChar(0, 1, email); ReadDataLCM();//测试用句无意义
for (TempCyc=0; TempCyc<10; TempCyc++) Delay400Ms(); //延时
DisplayListChar(0, 1, Cls); while(1) {
TMOD=0x11; //设T0为方式1,GATE=1; TH0=0;
TL0=0;
ET0=1; //允许T0中断 EA=1; //开启总中断 ET1=1; TR1=1; TL1=0X00; TH1=0X4C; while(1) {
if(bTime_800ms) {
bTime_800ms = 0;
StartModule(); //给一个高电平触发脉冲 while(!RX); //当RX为零时等待 TR0=1; //开启计数
while(RX); //当RX为1计数并等待 TR0=0; //关闭计数
if(beep == 1)DisplayListChar(0, 0, mcustudio); else DisplayListChar(0,0,\ Conut(); //计算 clock_h_l(); } } } }
46
void Timer1(void) interrupt 3 {
static char num = 0,Num; TH1 = 0X4C; TL1 = 0X00; if(++num == 16) {
num = 0;
bTime_800ms = 1; }
if(++Num == 12) {
Num = 0;
bTime_600ms = 1; } }
47
…… 此处隐藏:748字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [高等教育]公司协助某村精准扶贫工作总结.doc
- [高等教育]高二生物知识点总结(全)
- [高等教育]苏教版数学三年级下册《解决问题的策略
- [高等教育]仪器分析课程学习心得
- [高等教育]2017年五邑大学数学与计算科学学院333
- [高等教育]人教版七年级下册语文第四单元测试题(
- [高等教育]2018年秋七年级英语上册Unit7Howmuchar
- [高等教育]2017年八年级下数学教学工作小结
- [高等教育]湖南省怀化市2019届高三统一模拟考试(
- [高等教育]四年级下册科学_基础训练及答案教材
- [高等教育]城郊煤矿西风井管路伸缩器更换施工安全
- [高等教育]昆八中20182019学年度上学期期末考试
- [高等教育]项目部各类人员任命书
- [高等教育]上市公司经营水务产业的模式
- [高等教育]人教版高二化学第一学期第三章水溶液中
- [高等教育]【中考物理第一轮复习资料】四.压强与
- [高等教育]金坑水电站报废改建工程机电设备更新改
- [高等教育]高中生物教学工作计划简易版
- [高等教育]2017年西华大学攀枝花学院(联合办学)44
- [高等教育]最新整理超短爆笑英文小笑话大全
- 优秀教师继续教育学习心得体会
- 阳历到阴历的转换
- 留守儿童教育案例分析
- 华师17春秋学期《玩教具制作与环境布置
- 测速传感器新型安装装置的现场应用
- 人教版小学数学三年级下册第四单元
- 创业个人意向书
- 山东省潍坊市2012年高考仿真试题(三)
- [恒心][好卷速递]四川省成都外国语学校
- 多少人错把好转反应当成了病情加重处理
- 中外广播电视史复习资料整理
- 江苏省扬州市江都区宜陵镇中学2014-201
- 工程造价专业毕业实习报告
- 广西师范学院心理与教育统计
- aympkrq基于 - asp的博客网站设计与开
- 建筑业外出经营相关流程操作(营改增后
- 人治 德治 法治
- [精华篇]常识判断专项训练题库
- 中国共产党为什么要实行民主集中
- 小学数学第三册第一单元试卷(A、B、C




