液体点滴速度监控装置设计的程序.docx
《液体点滴速度监控装置设计的程序.docx》由会员分享,可在线阅读,更多相关《液体点滴速度监控装置设计的程序.docx(13页珍藏版)》请在三一办公上搜索。
1、液体点滴速度监控装置设计的程序#include #define DB0_DB7 P0 #define busy 0x80 #define SCANPORT P1 sbit E=P22; sbit RW=P21; sbit RS=P20; /1110 1111, 1101 1111, 1011 1111, 0111 1111 unsigned char uca_LineScan4=0xEF,0xDF,0xBF,0x7F; /列线扫描电压分为第1,2,3,4根列线 unsigned char key_ctt4=0; unsigned char speed_bcd4=0; unsigned char
2、 speed_sc2; unsigned char yy=0,temp; unsigned int speed_ck4=0; unsigned int di_xx2=0; unsigned int ct=0,ttb=0,xx=0,tt3=0,speedct=0,speed=0,speedcd=10,cott=0; unsigned int time_sq4=0; typedef unsigned char uchar; unsigned char code lcd3=0123456789abcdef; unsigned char code lcdnow=NOW:000; unsigned ch
3、ar code lcdset=SET:000; unsigned char CONTROL8=0x38,0x18,0x98,0x88,0xC8,0x48,0x68,0x28; unsigned char codes18=0xb8,0x98,0xd8,0xc8,0xe8,0x68,0x78,0x38;/9,18,36,45,54,63,72,81度顺时针 unsigned char codes28=0xb8,0x98,0xd8,0xc8,0xe8,0x68,0x78,0x38;/9,18,36,45,54,63,72,81度逆时针 unsigned char counts,pt; unsigne
4、d char uc_KeyTemp=0; unsigned char uc_ClickCount=0; unsigned char ucCount; bit flag=1; /度数,正反转,速度控制 bit a_ac=0;/比较系统标志 bit bleept=0;/报警标准 bit moto=0;/电机标志位 bit a_key=0; bit b_key=0; void vKeyProcess(unsigned char ucKeyCode); void bleep;/报警 void ac;/电机速度比校 void akey;/功能处理 void getspeed;/速度检侧 void std
5、isplay;/显示 void Delay(unsigned int t); void delay_50ms(unsigned int t); /延时 void SendCommand(unsigned char ch); /发送命令 void vWriteData(unsigned char ch); /发送数据 void InitLcd; /初始化 void DisplayOneChar(unsigned char x,unsigned char y,unsigned char ddata);/按指定位置显示一个字符 void DisplayListChar(unsigned char x
6、,unsigned char y,unsigned char *DData);/按指定位盆显示一串字符 /= /= void Delay (unsigned int t) /delay 40us /for(;t!=0;t-); while(t-); void deley_50ms(unsigned int t) unsigned int j; /可以在此加少许延时补偿,以称补大数值传递时(如delay_50ms(1000)造成的误差,但付出的代价是造成传递小数值/(delay_50ms(1)造成更大的误差。因为实际应用更多时候是传递小数值,所以补建议加补偿! for(;t!=0;t-) for
7、(j=6245;j0;j-); /= /= void SendCommand(unsigned char ch) /发送命令 /*CheckBusy;*/ RS=0; RW=0; DB0_DB7=ch; E=1; Delay(1); E=0; Delay(5); /delay 40us /= /= void vWriteData(unsigned char ch) /发送数据 /*CheckBusy;*/ RS=1; RW=0; DB0_DB7=ch; E=1; Delay(1); E=0; Delay(5); /delay 40us /= /= void InitLcd /初始化 SendC
8、ommand(0x38); Delay(1); SendCommand(0x08); /设置工作方式 Delay(1); SendCommand(0x01); /显示状态设置 Delay(1); SendCommand(0x06); /清屏 Delay(1); SendCommand(0x0c); /输入方式设置 Delay(1); /= /= void DisplayOneChar(unsigned char x,unsigned char y,unsigned char ddata) /按指定位置显示一 /个字符 y&=0x1; x&=0xf; /限制X不能大于15,Y不能大于1 if(y
9、) x|=0x40;/当要显示第二行时,地址码+0x40; x|=0x80;/算出指令码 SendCommand(x); vWriteData(ddata); /= /= void DisplayListChar(unsigned char x,unsigned char y,unsigned char *DData) /按指定位盆显示一串字符 unsigned char ListLength; ListLength=0; y&=0x1; x&=0xf; /限制X不能大于15,Y不能大于1 while(DDataListLength0x20) if(x=0xf) DisplayOneChar(
10、x,y,DDataListLength); /显示单个字符 ListLength+; x+; /= /= void vShowOneChar(unsigned char ucChar) switch(ucChar) case 0:vWriteData(0x30);break; case 1:vWriteData(0x31);break; case 2:vWriteData(0x32);break; case 3:vWriteData(0x33);break; case 4:vWriteData(0x34);break; case 5:vWriteData(0x35);break; case 6
11、:vWriteData(0x36);break; case 7:vWriteData(0x37);break; case 8:vWriteData(0x38);break; case 9:vWriteData(0x39);break; case a:vWriteData(0x61);break; case b:vWriteData(0x62);break; case c:vWriteData(0x63);break; case d:vWriteData(0x64);break; case e:vWriteData(0x65);break; case f:vWriteData(0x66);bre
12、ak; default:break; /= /= unsigned char ucKeyScan unsigned char ucTemp=0;/扫描状态暂存 unsigned char ucRow=0,ucLine=0;/行号 列号 for(ucLine=0;ucLine4;ucLine+)/列扫描 SCANPORT=uca_LineScanucLine; /输出扫描电位 ucTemp=SCANPORT&0x0f;/ 输出扫描电位 并屏蔽高4位 if(ucTemp!=0x0f) switch(ucTemp) case 0x0e:ucRow=10;break;/如果有 则判断行号 case 0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 液体 点滴 速度 监控 装置 设计 程序
链接地址:https://www.31ppt.com/p-3634099.html