




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、對(duì)采油系統(tǒng)在采油時(shí)的拉力載荷監(jiān)測(cè)程序清單#include <REG52.H>#include <math.H>#define uint unsigned int#define uchar unsigned char/*/* 命令常量定義 */#define CMD_START_DS12C887 0x20 /* 開(kāi)啟時(shí)鐘芯片 */#define CMD_START_OSCILLATOR 0x70 /* 開(kāi)啟振蕩器,處于抑制狀態(tài) */#define CMD_CLOSE_DS12C887 0x30 /* 關(guān)掉時(shí)鐘芯片 */* 所有的置位使用或操作,清除使用與操作 */#def
2、ine MASK_SETB_SET 0x80 /* 禁止刷新80 */#define MASK_CLR_SET 0x7f /* 使能刷新 */#define MASK_SETB_DM 0x04 /* 使用HEX格式 */#define MASK_CLR_DM 0xfb /* 使用BCD碼格式 */#define MASK_SETB_2412 0x02 /* 使用24小時(shí)模式 */#define MASK_CLR_2412 0xfd /* 使用12小時(shí)模式 */#define MASK_SETB_DSE 0x01 /* 使用夏令時(shí) */#define MASK_CLR_DSE 0xfe/*/sb
3、it rs=P15; /寄存器選擇sbit r_w=P16; /讀寫(xiě)sbit en=P17; /片選sbit wp=P16;/寫(xiě)保護(hù)sbit scl=P34;/2401時(shí)鐘sbit io=P35;/2401數(shù)據(jù)sbit r_h=P14;/ad 轉(zhuǎn)換開(kāi)始信號(hào)sbit key0=P20;/按鍵0sbit key1=P21;/按鍵1sbit key2=P22;/按鍵2sbit key3=P23;/按鍵3sbit cs=P26;sbit ad_1=P10;/sbit ov=P13;/溢出標(biāo)志unsigned char bdata shh; /*讀時(shí)間標(biāo)志*/sbit sh0=shh0;sbit sh1
4、=shh1;unsigned char bdata shj;sbit uip=shj7;/*/xdata char chSecondsChannel _at_ 0x0000; /df00xdata char chMinutesChannel _at_ 0x0002;xdata char chHoursChannel _at_ 0x0004;/xdata char chDofWChannel _at_ 0x0006;xdata char chDateChannel _at_ 0x0007;xdata char chMonthChannel _at_ 0x0008;xdata char chYea
5、rChannel _at_ 0x0009;xdata char chCenturyChannel _at_ 0x000e;xdata char chRegA _at_ 0x000a;xdata char chRegB _at_ 0x000b;xdata char chRegC _at_ 0x000c;xdata char chRegD _at_ 0x000d;/*/unsigned int data miao;unsigned char data mh;unsigned char bdata byte;sbit bute1=byte7;unsigned char xdata *rr;unsig
6、ned char data shijian;unsigned char data ad_counter;unsigned char data ad_data7=0,0,0,0,'.',0,0x44;unsigned char data display_buffer32='0','0','0','0','.','0',' ','0','0',' ',' ',;/,'=','0'
7、;,'.','0','','H','T','=','0','0',0xdf,'A','h','=','0','0','0','.','0','0','0',' ','unsigned char code u_v_a16='2','0','0'
8、;,'0','-','0','0','-','0','0',' ','0','0',':','0','0' ; /* 函數(shù)聲明部分 */void StartDs12c887(void);void CloseDs12c887(void);void InitDs12c887(void);unsigned char GetSeconds(void);unsigned char GetMinute
9、s(void);unsigned char GetHours(void);unsigned char GetDate(void);unsigned char GetMonth(void);unsigned char GetYear(void);unsigned char GetCentury(void);void SetTime(unsigned char chSeconds,unsigned char chMinutes,unsigned charchHours);void SetDate(unsigned char chDate,unsigned char chMonth,unsigned
10、 char chYear);/*-*/ void delay(unsigned int x) unsigned char j; while(x-) for(j=0;j<230;j+); /*-*/ void delayu(unsigned int x) while(x>0)x-; /*-*/void write_commond(unsigned char c) rs=0;r_w=0; P0=c;en=1;en=0; delayu(10) ; /*-*/void write_data(unsigned char d) rs=1;r_w=0; P0=d;en=1;en=0; delay
11、u(5); /*-*/void ini_display(void) /初始化顯示器 rs=0;r_w=0;en=0; write_commond(01); /清屏 delay(50); write_commond(01); /清屏 delay(50); write_commond(0x38); /設(shè)接口8位;顯示兩行;5X7點(diǎn)陣。 write_commond(0x06); /AC自動(dòng)加1 write_commond(0x0c); / 無(wú)光標(biāo)不閃爍 /*-*/void write_1_l() /寫(xiě)第一行。 unsigned char i,d; write_commond(0x80); /設(shè)數(shù)據(jù)指
12、針回第一行的零位。 for(i=0;i<16;i+) d=display_bufferi; write_data(d); /*-*/void write_2_l() /寫(xiě)第二行。 unsigned char i,d; write_commond(0xc0); /設(shè)數(shù)據(jù)指針回第一行的零位。 for(i=16;i<32;i+) d=display_bufferi; write_data(d); /*函數(shù)功能:該函數(shù)用來(lái)啟動(dòng)時(shí)鐘芯片工作應(yīng)用范圍:僅在時(shí)鐘芯片首次使用時(shí)用到一次入口參數(shù):出口參數(shù):*/void StartDs12c887(void) chRegA = CMD_START_D
13、S12C887;/* /函數(shù)功能:該函數(shù)用來(lái)從時(shí)鐘芯片讀取分字節(jié)應(yīng)用范圍:入口參數(shù):出口參數(shù):/*/unsigned char GetMinutes(void) return(chMinutesChannel);/*函數(shù)功能:該函數(shù)用來(lái)從時(shí)鐘芯片讀取小時(shí)字節(jié)應(yīng)用范圍:入口參數(shù):出口參數(shù):*/unsigned char GetHours(void) return(chHoursChannel);/*函數(shù)功能:該函數(shù)用來(lái)從時(shí)鐘芯片讀取日字節(jié)應(yīng)用范圍:入口參數(shù):出口參數(shù):*/unsigned char GetDate(void) return(chDateChannel);/*函數(shù)功能:該函數(shù)用來(lái)從
14、時(shí)鐘芯片讀取月字節(jié)應(yīng)用范圍:入口參數(shù):出口參數(shù):*/unsigned char GetMonth(void) return(chMonthChannel);/*函數(shù)功能:該函數(shù)用來(lái)從時(shí)鐘芯片讀取年字節(jié)應(yīng)用范圍:入口參數(shù):出口參數(shù):*/unsigned char GetYear(void) return(chYearChannel);/*函數(shù)功能:該函數(shù)用來(lái)設(shè)置時(shí)鐘芯片的時(shí)間應(yīng)用范圍:入口參數(shù):chSeconds、chMinutes、chHours是設(shè)定時(shí)間的壓縮BCD碼出口參數(shù):*/void SetTime(unsigned char chSeconds,unsigned char chMin
15、utes,unsigned charchHours) chRegB =0xa2;/ chRegB | MASK_SETB_SET; /* 禁止刷新 */ chSecondsChannel = chSeconds; chMinutesChannel = chMinutes; chHoursChannel = chHours; chRegB = chRegB & MASK_CLR_SET; /* 使能刷新 */*函數(shù)功能:該函數(shù)用來(lái)設(shè)置時(shí)鐘芯片的日期應(yīng)用范圍:入口參數(shù):chDate、chMonth、chYear是設(shè)定日期的壓縮BCD碼出口參數(shù):*/void SetDate(unsigned
16、 char chDate,unsigned char chMonth,unsigned char chYear) chRegB =0xa2;/ chRegB | MASK_SETB_SET; /* 禁止刷新 */ chDateChannel = chDate; chMonthChannel = chMonth; chYearChannel = chYear; chRegB = chRegB & MASK_CLR_SET; /* 使能刷新 */*-*/void timer0(void) interrupt 1 using 1 /*timer0 interrupt servise ruti
17、ne*/ TH0=0x16;TL0=0x00; miao+=1; if(miao>20) miao=0; else; if(miao>10) display_buffer13=' ' else display_buffer13=':' mh+=1; if(mh>=10) sh0=1; mh=0; else sh0=0;/*-中斷服務(wù)子程序-*/void one_int0isr(void)interrupt 0 using 3unsigned char x=0;/EX0=0;x=P1;x<<=4;x>>=4;if(ad_c
18、ounter=4)ad_data4=x;ad_counter=0;elseif(ad_counter=0)if(ad_1=0)ad_dataad_counter=0;else ad_dataad_counter=1;elsead_dataad_counter=x;ad_counter+=1;EX0=1;IE0=0;/*-2401開(kāi)始-*/void IICStart(void)scl=0; /io=1;scl=1;delayu(3);io=0;delayu(4);scl=0;io=1; /*-2401停止-*/void IICStop(void)scl=0;io=0;scl=1;delayu(4
19、);io=1;delayu(4);scl=0;/*-2401讀-*/ unsigned char IICReceiveByte(void)register receivebyte,i=8;scl=0;while(i-) scl=1; receivebyte=(receivebyte<<1)|io; scl=0; return(receivebyte);/*-2401寫(xiě)-*/void IICSendByte(unsigned char sendbyte)unsigned char data j=8;register receivebyte;for(;j>0;j-) scl=0;
20、 sendbyte<<=1; /無(wú)論C51怎樣實(shí)現(xiàn)這個(gè)操作,始終會(huì)使CY=sendbyte7; io=CY; scl=1; delayu(2);scl=0;io=1;delayu(2);scl=1;delayu(2);receivebyte=io;delayu(2);/*壓力限制設(shè)定*/void key_yali(void)unsigned char x='0'while(key0=0);while(key3=1)if(key1=0)delay(2);if(x>='9')x='9'elsex+=1;display_buffer1
21、6=x;delayu(2);write_commond(0xc0);write_data(display_buffer16);else;while(key1=0);if(key2=0)delay(2);if(x<'1')x='0'elsex=x-1;display_buffer16=x;write_commond(0xc0);write_data(display_buffer16);else;while(key2=0);while(key3=0);IICStart();IICSendByte(0x20); /寫(xiě)命令和地址IICSendByte(x); /寫(xiě)
22、數(shù)據(jù)IICStop();delay(20);x='0'while(key3=1)if(key1=0)delay(2);if(x>='9')x='9'elsex+=1;display_buffer17=x;delayu(2);write_commond(0xc1);write_data(display_buffer17);else;while(key1=0);if(key2=0)delay(2);if(x<'1')x='0'elsex=x-1;display_buffer17=x;write_common
23、d(0xc1);write_data(display_buffer17);else;while(key2=0);while(key3=0);IICStart();IICSendByte(0x30); /寫(xiě)命令和地址IICSendByte(x); /寫(xiě)數(shù)據(jù)IICStop();x='0'while(key3=1)if(key1=0)delay(2);if(x>='9')x='9'elsex+=1;display_buffer18=x;delayu(2);write_commond(0xc2);write_data(display_buffer1
24、8);else;while(key1=0);if(key2=0)delay(2);if(x<'1')x='0'elsex=x-1;display_buffer18=x;write_commond(0xc2);write_data(display_buffer18);else;while(key2=0);while(key3=0);IICStart();IICSendByte(0x40); /寫(xiě)命令和地址IICSendByte(x); /寫(xiě)數(shù)據(jù)IICStop();x='0'while(key3=1)if(key1=0)delay(2);if(
25、x>='9')x='9'elsex+=1;display_buffer19=x;delayu(2);write_commond(0xc3);write_data(display_buffer19);else;while(key1=0);if(key2=0)delay(2);if(x<'1')x='0'elsex=x-1;display_buffer19=x;write_commond(0xc3);write_data(display_buffer19);else;while(key2=0);while(key3=0);
26、IICStart();IICSendByte(0x50); /寫(xiě)命令和地址IICSendByte(x); /寫(xiě)數(shù)據(jù)IICStop();x='0'while(key3=1)if(key1=0)delay(2);if(x>='9')x='9'elsex+=1;display_buffer21=x;delayu(2);write_commond(0xc5);write_data(display_buffer21);else;while(key1=0);if(key2=0)delay(2);if(x<'1')x='0&
27、#39;elsex=x-1;display_buffer21=x;write_commond(0xc5);write_data(display_buffer21);else;while(key2=0);while(key3=0);IICStart();IICSendByte(0x60); /寫(xiě)命令和地址IICSendByte(x); /寫(xiě)數(shù)據(jù)IICStop();/*時(shí)間設(shè)定*/void key_data(void)unsigned char x='0'unsigned char nian,yue,ri,shi,fen;while(key3=0);/*delay(10);whil
28、e(key3=1)if(key1=0)delay(2);if(x>='9')x='9'elsex+=1;display_buffer0=x;delayu(2);write_commond(0x80);write_data(display_buffer0);else;while(key1=0);if(key2=0)delay(2);if(x<'1')x='0'elsex=x-1;display_buffer0=x;write_commond(0x80);write_data(display_buffer0);else;w
29、hile(key2=0);/*-*/*x='0'while(key3=0);delay(10);while(key3=1)if(key1=0)delay(2);if(x>='9')x='9'x+=1;display_buffer1=x;delayu(2);write_commond(0x81);write_data(display_buffer1);else;while(key1=0);if(key2=0)delay(2);if(x<'1')x='0'elsex=x-1;display_buffer1=
30、x;write_commond(0x81);write_data(display_buffer1);else;while(key2=0);while(key3=0); */*-*/ /* chRegB =0xa2;/ chRegB | MASK_SETB_SET; /* 禁止刷新 */ / chCenturyChannel=display_buffer0*10+display_buffer1; / chRegB = chRegB & MASK_CLR_SET; /* 使能刷新 */*/delay(10);x='0'while(key3=1)if(key1=0)delay
31、(2);if(x>='9')x='9'elsex+=1;display_buffer2=x;delayu(2);write_commond(0x82);write_data(display_buffer2);else;while(key1=0);if(key2=0)delay(2);if(x<'1')x='0'elsex=x-1;display_buffer2=x;write_commond(0x82);write_data(display_buffer2);else;while(key2=0);while(key3=
32、0);/*/delay(10);x='0'while(key3=1)if(key1=0)delay(2);if(x>='9')x='9'elsex+=1;display_buffer3=x;delayu(2);write_commond(0x83);write_data(display_buffer3);else;while(key1=0);if(key2=0)delay(2);if(x<'1')x='0'elsex=x-1;display_buffer3=x;write_commond(0x83);w
33、rite_data(display_buffer3);else;while(key2=0);nian=(display_buffer2-0x30)*10+display_buffer3-0x30;display_buffer4='-'/*yue*/while(key3=0);delay(10);x='0'while(key3=1) if(key1=0)delay(2);if(x>='9')x='9'elsex+=1;display_buffer5=x;delayu(2);write_commond(0x85);write_d
34、ata(display_buffer5);else;while(key1=0);if(key2=0)delay(2);if(x<'1')x='0'elsex=x-1;display_buffer5=x;write_commond(0x85);write_data(display_buffer5);else;while(key2=0);/*/delay(10);while(key3=0);x='0'while(key3=1)if(key1=0)delay(2);if(x>='9')x='9'elsex+=
35、1;display_buffer6=x;delayu(2);write_commond(0x86);write_data(display_buffer6);else;while(key1=0);if(key2=0)delay(2);if(x<'1')x='0'elsex=x-1;display_buffer6=x;write_commond(0x86);write_data(display_buffer6);else;while(key2=0);yue=(display_buffer5-0x30)*10+display_buffer6-0x30;/*ri*
36、/delay(10);while(key3=0);x='0'while(key3=1)if(key1=0)delay(2);if(x>='9')x='9'elsex+=1;display_buffer8=x;delayu(2);write_commond(0x88);write_data(display_buffer8);else;while(key1=0);if(key2=0)delay(2);if(x<'1')x='0'elsex=x-1;display_buffer8=x;write_common
37、d(0x88);write_data(display_buffer8);else;while(key2=0);delay(10);while(key3=0);x='0'while(key3=1)if(key1=0)delay(2);if(x>='9')x='9'elsex+=1;display_buffer9=x;delayu(2);write_commond(0x89);write_data(display_buffer9);else;while(key1=0);if(key2=0)delay(2);if(x<'1'
38、)x='0'elsex=x-1;display_buffer9=x;write_commond(0x89);write_data(display_buffer9);else;while(key2=0);ri=(display_buffer8-0x30)*10+display_buffer9-0x30;/*shi*/delay(10);while(key3=0);x='0'while(key3=1)if(key1=0)delay(2);if(x>='9')x='9'elsex+=1;display_buffer11=x;del
39、ayu(2);write_commond(0x8b);write_data(display_buffer11);else;while(key1=0);if(key2=0)delay(2);if(x<'1')x='0'elsex=x-1;display_buffer11=x;write_commond(0x8b);write_data(display_buffer11); else;while(key2=0);delay(10);while(key3=0);x='0'while(key3=1)if(key1=0)delay(2);if(x&g
40、t;='9')x='9'elsex+=1;display_buffer12=x;delayu(2);write_commond(0x8c);write_data(display_buffer12);else;while(key1=0);if(key2=0)delay(2);if(x<'1')x='0'elsex=x-1;display_buffer12=x;write_commond(0x8c);write_data(display_buffer12);else;while(key2=0);shi=(display_buff
41、er11-0x30)*10+display_buffer12-0x30;/*fen*/delay(10);while(key3=0);x='0'while(key3=1)if(key1=0)delay(2);if(x>='9')x='9'elsex+=1;display_buffer14=x;delayu(2);write_commond(0x8e);write_data(display_buffer14);else;while(key1=0);if(key2=0)delay(2);if(x<'1')x='0&
42、#39;elsex=x-1;display_buffer14=x;write_commond(0x8e);write_data(display_buffer14);else;while(key2=0);delay(10);while(key3=0);x='0'while(key3=1)if(key1=0)delay(2);if(x>='9')x='9'elsex+=1;display_buffer15=x;delayu(2);write_commond(0x8f);write_data(display_buffer15);else;whil
43、e(key1=0);if(key2=0)delay(2);if(x<'1')x='0'elsex=x-1;display_buffer15=x;write_commond(0x8f);write_data(display_buffer15);else;while(key2=0);fen=(display_buffer14-0x30)*10+display_buffer15-0x30;SetTime(0,fen,shi);SetDate(ri,yue,nian); StartDs12c887();/*/void main(void)unsigned char i,x=0,shijian=0;unsigned int xs,xian;ad_co
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 部編版四(下)期中測(cè)試卷2(含答案)
- 出租伴娘合同范例
- 天津市濱海新區(qū)2024-2025學(xué)年高二上學(xué)期期末考試生物試題(解析版)
- 2025年中國(guó)灰塵清除器噴嘴市場(chǎng)調(diào)查研究報(bào)告
- 2025年中國(guó)橡膠雜件制品市場(chǎng)調(diào)查研究報(bào)告
- 農(nóng)村宅基地蓋房子合同范例
- 與工廠供貨合同范例
- 養(yǎng)殖勞務(wù)服務(wù)合同范例
- 2025年中國(guó)回春生膠囊市場(chǎng)調(diào)查研究報(bào)告
- 專業(yè)老師兼職合同范例
- 2025年湖南省煙草專賣局系統(tǒng)招聘336人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 交通安全勸導(dǎo)講座課件
- 洞庫(kù)安全隱患
- 協(xié)助患者翻身扣背
- 2024解析:第二章聲現(xiàn)象-基礎(chǔ)練(解析版)
- 揚(yáng)塵防治(治理)監(jiān)理實(shí)施細(xì)則(范本)
- 湖南師范大學(xué)某中學(xué)2024屆高三摸底(高二期末)考試數(shù)學(xué)試卷(含答案)
- 第八章:農(nóng)業(yè)科技成果轉(zhuǎn)化
- 水庫(kù)周邊綠化養(yǎng)護(hù)方案
- 2024年團(tuán)??荚嚾雸F(tuán)考試題庫(kù)及答案
- 報(bào)廢汽車拆解項(xiàng)目可行性研究報(bào)告
評(píng)論
0/150
提交評(píng)論