久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
12864液晶屏顯示各種傳感器
[打印本頁]
作者:
daming
時間:
2014-12-29 20:40
標題:
12864液晶屏顯示各種傳感器
本帖最后由 daming 于 2014-12-29 20:41 編輯
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
#define jian P1
sbit bf=P0^7;
sbit lcd_rs=P2^6;
sbit lcd_rw=P2^5;
sbit lcd_e=P2^4;
sbit lcd_reset=P2^7;
sbit lihe=P2^0;
sbit shache=P2^1;
sbit ge=P3^2;
sbit sj_p33=P3^3;
sbit zhengfan=P3^4;
bit aj_1,zd_1,jin_1,song_1,ti_1,tj_1;
uint gaodu_0,gaodu_1,shiji_0,cishu;
uchar shiling,ms,sj_s,sj_j;
uchar code hz_bj1[]={"計數傳感器無信號"};
uchar code hz_bj2[]={"方向傳感信號無 "};
uchar code hz_bj3[]={"檢測到反轉超限 "};
uchar code hz_bj4[]={"檢測到正轉超限 "};
uchar code hz_bj5[]={"過緊或傳感器失靈"};
uchar code hz_kong[]={" "};
uchar code zzzk[]={"歡迎使用職專智控"};
uchar code csh[]={"正在初始化。。。"};
uchar code qqh[]={"qq:000000"};
uchar code hz_t[]={"態:"};
uchar code hz_gs[]={"過松"};
uchar code hz_gj[]={"過緊"};
uchar code hz_tz[]={"停"};
uchar code hz_z[]={"智"};
uchar code hz_jing[]={"警"};
uchar code hz_tg[]={"提高"};
uchar code hz_lh[]={"離合"};
uchar code tb_1[]={"●"};
uchar code tb_2[]={"○ "};
uchar code hz_sheng[]={"升"};
uchar code hz_jiang[]={"降"};
uchar code hz_sc[]={"剎車"};
uchar rem[]={0,0,1,0};
uchar rem_cs[]={0,0,0,0};
uchar rem_1[]={0,0};
uchar rem_sj[]={0,0};
uchar rem_gd1[]={0,0,0,0};
uchar code bcd[]={"0123456789"};
/////////////
yanshi(uint t)
{
uint i,j;
for(i=0;i<t;i++)
{
for(j=0;j<110;j++);
}
}
//////////////////////
yanshi1(uint t)
{
while(t--);
}
///////////////////////////
fuwei()
{yanshi(5);
lcd_reset=0;
yanshi(5);
lcd_reset=1;
}
///////////////////////////
xie_lcd(bit ly,uchar shuju_lcd)
{
lcd_rs=ly;
lcd_rw=0;
lcd_e=0;
P0=shuju_lcd;
yanshi(5);
lcd_e=1;
yanshi(5);
lcd_e=0;
}
/////////////////////////////
/////////////////////////////
lcd_zuobiao(uchar x,uchar y)
{
uchar temp;
if(x==0)
{x=0x80;}
if(x==1)
{x=0x90;}
if(x==2)
{x=0x88;}
if(x==3)
{x=0x98;}
temp=x+y;
xie_lcd(0,temp);
}
///////////////////////////
xiehz(uchar xx,uchar yy,uchar code *chn)
{
uchar i;
lcd_zuobiao(xx,yy);
i=0;
while(chn[i]!='\0')
{
xie_lcd(1,chn[i]);
i++;
}
}
///////////////////////////
xiesz(uchar xx,uchar yy,uchar wei,uchar *chn)
{
uchar i;
lcd_zuobiao(xx,yy);
for(i=0;i<wei;i++)
{
xie_lcd(1,bcd[chn[i]]);
}
}
///////////////////////////
///////////////////////////
xieping_1()
{
xiehz(0,0,hz_t);
xiehz(0,4,hz_tg);
xiehz(1,0,hz_lh);
xiehz(2,0,hz_sc);
}
///////////////////////////
chushihua_p()
{
xie_lcd(0,0x30);
xie_lcd(0,0x0c);
xie_lcd(0,0x01);
xiehz(0,0,zzzk);
//xiehz(2,0,csh);
xiehz(3,2,qqh);
yanshi(2000);
xie_lcd(0,0x01);
xieping_1();
xiehz(0,2,hz_tz);
xiesz(0,6,4,rem);
}
///////////////////////////
////////////////////停機,離合器離開,同時剎車剎住
ting()
{
fuwei();
chushihua_p();
lihe=1;
EA=0;
TR1=0;
EX0=0;EX1=0;
zd_1=0;
ms=0;
xiehz(0,2,hz_tz);
xiehz(1,2,tb_2);
xiehz(2,2,tb_2);
//shache=0;//xiesz(3,0,4,rem_gd1);shiling=0;
}
///////////////////
sd_lh()
{
if(~zd_1)
{
while(jian==0xf7)lihe=0;
lihe=1;
}
}
///////////////
sd_sc()
{
if(~zd_1)
{
while(jian==0xfb)shache=0;
shache=1;
}
}
/////////////////////
shujuchuli_0()
{
uint shuju;
shuju=gaodu_0-200;
rem[1]=shuju%1000/100;
rem[2]=shuju%100/10;
rem[3]=shuju%10;
xiesz(0,6,4,rem);
//if(gaodu_1>=200)
//{
shuju=gaodu_1;//-200;
rem_gd1[1]=shuju%1000/100;
rem_gd1[2]=shuju%100/10;
rem_gd1[3]=shuju%10;
xiesz(3,0,4,rem_gd1);
// }
shuju=cishu;
rem_cs[1]=shuju%1000/100;
rem_cs[2]=shuju%100/10;
rem_cs[3]=shuju%10;
xiesz(3,6,4,rem_cs);
}
/////////////////////
/////////////提低//////////////////////////////////
tidi()
{
if(gaodu_0>210)gaodu_0--;
}
//////提高
tigao()
{
gaodu_0++;
}
///////////////
///////////////////
///////////////////自動
zidong()
{
if(ms==0)if(zd_1==0)
{
ms=1;
xiehz(0,2,hz_z);
shiling=0;
gaodu_1=200;
TMOD=0x10;
ET1=1;
TH1=0;TL1=0;TR1=1;
zd_1=1;
shache=1;
lihe=0;
ti_1=1; // //提升標志致一
IT0=1;//負跳變有效
EX0=1;//開外int0中斷
IT1=1;//負跳變有效
//EX1=1;//開外int1中斷
EA=1;
}
}
///////////////////鍵盤
jianpan()
{
uchar jianma;
jian=0xff;
if(jian==0xff)aj_1=1;
else{
yanshi1(50);
if(jian==0xff)return;
if(aj_1)
{
jianma=jian&0xff;
aj_1=0;
switch(jianma)
{
case 0x7f:
{
zd_1=0;
if(ms==2)ting();
}
break;
case 0xbf:zidong();break;
case 0xdf:tidi();break;
case 0xef:tigao();break;
case 0xf7:sd_lh();break;
case 0xfb:sd_sc();break;
case 0xfd:jin_1=1;break;
case 0xfe:song_1=1;break;
}
}
}
}
///////////////////////////
chushihua_jiqi()
{
lihe=1;
shache=1;
gaodu_0=230;
gaodu_1=200;
shiji_0=203;
cishu=0;
PX0=1;
shujuchuli_0();
}
///////////////////////////////////
jing()
{
ms=2;
shiling=0;
gaodu_1=200;
xiehz(0,2,hz_jing);
xiehz(1,2,tb_2);
while(ms==2)
{
EX0=0;
lihe=1;
jianpan();
}
xieping_1();
ting();
xiehz(3,0,hz_kong);
}
///////////////////////////////////
guole()
{
EA=0;TR1=0;EX0=0;EX1=0;lihe=1;zd_1=0;
jing();
}
////////////////////////////////
baoxian() interrupt 3
{
TH1=0;
TL1=0;
shiling++;
if(shiling>200)
{
EA=0;TR1=0;EX0=0;EX1=0;lihe=1;zd_1=0;
xiehz(3,0,hz_bj1);
jing();
}
}
//////////////////////////
///////////////////////////
void main(void)
{
lihe=1;shache=1; //
fuwei(); //屏幕復位
chushihua_p(); //初始化屏
chushihua_jiqi(); ///初始化機器
while(1)
{
if(~zd_1)lihe=1; //不是自動模式離合松
shujuchuli_0(); //數據處理
jianpan();
if(lihe){xiehz(1,2,tb_2);xiehz(1,4,hz_jiang);} //松開時寫實心球寫降字
else {xiehz(1,2,tb_1);xiehz(1,4,hz_sheng);} //結合時寫升
jianpan();
if(shache)xiehz(2,2,tb_2); //
else xiehz(2,2,tb_1); //
jianpan();
if(jin_1)xiehz(2,4,hz_gs); //
else xiehz(2,4,hz_gj); //
if(sj_s>20){EX0=0;xiehz(3,0,hz_bj5);guole();sj_s=0;} //
}
}
///////////////////查磁片程序/////////////
jishu1() interrupt 0
{
EX0=0;
yanshi1(20); ///消除線路干擾,消抖
if(~ge) ///消抖
{
shiling=0; ///防止計數傳感器失靈,或機器不轉
if(zhengfan)
{ if(~ti_1)lihe=1; //提起標志為零時離合器松開
else
{ //提起標志1時
while((zhengfan)&&(~ge)); //等待方向傳感器被觸發,
if(ge)
{ //方向傳感器沒有被觸發時
EA=0;EX0=0; //總中斷為零不再計數
lihe=1;zd_1=0; //離合松,自動標志為0
xiehz(3,0,hz_bj2); //寫方向傳感器失靈漢字
jing(); //進入警狀態
}
}
if(tj_1) //調節標志為一時進行調節
{
tj_1=0; ///置零調節標志,只進行一次調節
EX1=0; //關閉過松觸發中斷
song_1=1; //松標志置一,
}
gaodu_1++; //提升高度計數加加
////////////////////////////////////////////////////////////////
if(zd_1)
{ // 是自動模式判斷高度
if(gaodu_1>=gaodu_0)/// ///高度到否判斷
{ //到了
if(~jin_1)
{ //緊標志零時
ti_1=0; //提升標志置零
lihe=1; //離合斷開
yanshi1(40); //延時防干擾
}
else
{ //進標志一時
jin_1=0; // 置零,只緊一次
song_1=0; //松標志為零,不松了
gaodu_1--; //高度計數器減減,讓提升數值不變。
sj_j++; //緊的次數加加
if(sj_j>4)gaodu_1--; //連續緊超過4次了,多緊一個磁片
}
}
}
else {
lihe=1;ti_1=0; //落錘停車
yanshi1(40);
}
}
///////////////////////////////////////////////////////////////////////////////////
else
{
gaodu_1--; //落錘時高度減減
if(gaodu_1<=shiji_0)
{ //落到底了
if(zd_1) ///
{
if(~song_1)
{ //松標志為零時提升
if(~ti_1)cishu++; //打夯次數加一
ti_1=1; //提升標志
tj_1=1; //調節標志
lihe=0; ///結合離合顯示上橫
EX1=1; //開外中斷1,檢查是否松,
yanshi1(40); //延時
}
else
{
song_1=0; //松標志置零
gaodu_1++; //松一個磁片
sj_j=0; //緊次數置零
sj_s++; // 松的次數加加
if(sj_s>4)gaodu_1++; //連續松了超4次了,多松一個
}
}
else ting(); //停車
}
}
}
EX0=1;
}
////////////////////////////////////////
songle() interrupt 2
{yanshi(30);
if(~sj_p33)
{
jin_1=1;
sj_s=0; //碰到鋼絲繩時松計數置零,防止過松。
EX1=0;
}
}
復制代碼
作者:
5000322
時間:
2017-7-20 16:12
這個程序是何用途?
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
日韩免费激情视频
|
涩涩99
|
91精品国产乱码久久久久久久久
|
日韩欧美在线免费观看视频
|
色婷婷亚洲一区二区三区
|
久久九九色
|
亚洲午夜av久久乱码
|
精品国产青草久久久久福利
|
日韩av免费在线电影
|
亚洲午夜在线
|
7777久久
|
国产精品久久久久久久久图文区
|
国产精品国产三级国产aⅴ无密码
|
国产免费又色又爽又黄在线观看
|
国产亚洲精品精品国产亚洲综合
|
久久久999国产精品 中文字幕在线精品
|
久草99
|
久久久久国产精品一区
|
亚洲成人三级
|
国产精品a久久久久
|
精品国产一区二区三区性色av
|
国产一区二区在线免费
|
日韩在线免费视频
|
国产精品久久久久9999鸭
|
国产精品美女久久久久久免费
|
欧美日韩国产在线观看
|
国产精品久久精品
|
精品久久久久久
|
久久久免费少妇高潮毛片
|
日本中出视频
|
亚洲精品国产电影
|
日韩电影一区
|
亚洲精品一区二区三区蜜桃久
|
日韩视频精品
|
免费一级欧美在线观看视频
|
欧美一区不卡
|
中文字幕一区二区三区四区五区
|
国产原创在线观看
|
国产 欧美 日韩 一区
|
国产精品99精品久久免费
|
zzzwww在线看片免费
|