石油 测井 技能培训
石油 测井 技能培训
一、测井小队人员组成
二、测井生产准备
三、钻井、地质、测井相关知识
四、上井施工作业
五、常用知识、相关照片
石油 测井 技能培训1
石油 测井 技能培训
所谓测井就是使用测井绞车,把各种测量地层物理参数的测井仪器下放到井中,沿井身移动,把地层和共眼的各种参数,如电阻率、声波时差、声波幅度、放射性强度、井径等,以电信号的形式,通过电缆传到地面,再由测井仪器车上的地面记录系统,记录下来,记录的方式可以是曲线图,也可以是数字磁带。目前先进的测井车可以在现场直接进行解释处理,我们现在用的测井车,必须把记录资料带回解释中心再解释,进而得出的油水层.水淹层等参数,这一过程为测井。
aduc842系列 ADXL203CE 加速度计测量与显示
aduc842系列 ADXL203CE 加速度计测量与显示
// ===================================================================================== //
// 文件名称:ADXL203CE.c //
// 芯片类型: aduc842 //
// 开发软件: KEIL C51 V2.0 , Windows XP //
// 开发时间:2007年01月13日--- 2007年01月14日 //
// 程序功能:使用aduc842驱动MS128x64点阵液晶用来显示测量仪器与地心的角度,即测量水平角度 //
// 传感器采用的是AD公司的ADxL203CE双轴加速度传感器,ADxL203CE输出的是电压信号 //
// 使用的是ADuC842的ADC进行数据采集,在LCD上面进行显示数值 。 //
// 编写人员:吕云曾 //
// 联系方式:13845052176 lvyunzeng@163.com //
// ===================================================================================== //
//=============================引脚定义=========================================
//MS12864A点阵液晶管脚分布如下:
//1 ---- VSS; 2 ---- VDD; 3 ---- VO; 4 ---- D/I; 5 ---- R/W; 6 ---- E ;
//7 ---- DB0; 8 ---- DB1; 9 ---- DB2; 10 ---- DB3;
//11---- DB4; 12---- DB5; 13---- DB6; 14 ---- DB7;
//15 ----CS1; 16 ----CS2; 17---- RET; 18 ---- VEE;19 ----LED+; 20 ----LED-;
//RET通过10K电阻接到VCC ,VO的电压在VCC与VEE之间用来调整LCD的对比度。
//===========================================================================//
//P00 ---- DB0; P01 ---- DB1; P02 ---- DB2; P03 ---- DB3;
//P04 ---- DB4; P05 ---- DB5; P06 ---- DB6; P07 ---- DB7;
//P25 ---- D/I; P26 ---- R/W; P27 ---- E ;
//P24 ---- CS1; P23 ---- CS2;
//===========================================================================//
//=================================================================================================
//========================================= 头文件 ================================================
#include
#include
//========================================== 宏定义 ===============================================
sbit p_di = P2
ADUC842 内部模块 ADC DAC IIC SPI UART PWM 测试程序
ADUC842 内部模块 ADC DAC IIC SPI UART PWM 测试程序
aduc812系列 ADC
aduc812系列 ADC
// ===================================================================================== //
// 文件名称: ADC.c 使用ADUC812的自带ADC采数 //
// 芯片类型: aduc812 //
// 开发软件: KEIL C51 V2.0 , Windows XP //
// 开发时间:2006年11月22日 //
// 程序功能:aduc812的ADC进行数据采集,数据为50Hz的正弦波。使用MAX7219进行数据显示。 //
// 通过UART送到上位机 //
// 编写人员:吕云曾 //
// 联系方式:13845052176 lvyunzeng@163.com //
// ===================================================================================== //
//=================================================================================================
//========================================= 头文件 ================================================
#include <aduc812.h>
#include <intrins.h>
//#include <absacc.h>
//========================================== 宏定义 ===============================================
sbit Bj_tishi1 =P0^0; // 报警提示I
sbit Bj_tishi2 =P0^1; //报警提示II
sbit Set_yuzhi1 =P0^2; //设置报警阈值 I 提示
sbit Set_yuzhi2 =P0^3; //设置报警阈值II 提示
sbit set_time =P0^4; //设置报警时间 提示
sbit Baojing1 =P2^3; //报警 I 动作信号
sbit Baojing2 =P2^4; //报警 II 动作信号
sbit KEY0 =P3^2; //开关ADC采样命令
sbit KEY1 =P0^5; //设定选项
sbit KEY2 =P0^6; //加一命令
sbit KEY3 =P0^7; //减一命令
//========================================== 宏定义 ===============================================
unsigned int Kaigan = 0; //定义是否运行ADC并进行显示
unsigned char Uart_data;
//======================================== 函数声明 ================================================
//-----------------------函数声明,变量定义--------------------------------------------------------
#define INBUF_LEN 20 //数据长度
unsigned char Uart_data_t[INBUF_LEN];//={08,07,06,05,04,03,02,01,00};
void UART_init(); //串口初始化函数
void COM_send(void); //串口接收函数
unsigned char CLU_checkdata(void);//计算校验位函数
void delayX10ms(unsigned char count);
void TickInit(); //中断初始化程序
void led_ceshi(); //用来测试LED是否正常
void Adc_int(); //ADC采样化程序
void Adc_SJchuli(); //ADC数据显示子程序
void Xianshi(); //ADC数据显示子程序
void Uart_int(void); //Uart初始化程序
void send_char_com(unsigned char ch);//向串口发送一个字符子程序
void send_string_com(unsigned char *str,unsigned int strlen);//向串口发送一个字符串
//=================================================================================================
//========================================== 主函数 ==============================================
//=================================================================================================
void main(void)
{
TickInit(); //中断初始化程序
UART_init(); //初始化串口
while(1)
{
int i;
for(i=0;i<10;i++)
{
send_char_com(i); //发送一个字符
Bj_tishi1 ^=1;
delayX10ms(10);
}
send_string_com(Uart_data_t,20);//发送一串字符
}
}
aduc812系列 ZLG7290
aduc812系列 ZLG7290驱动程序
// ============================================================================
//========================= 电路接口示意图 ====================================
// MCS51系列单片机
// ADuC812
// |----------------|
// | XTIN |-------|
// | | 11.0592 MHz
// | XTOUT |-------|
// | |
// | |
// | | ZLG7290
// | | |-----------------|
// | | | |
// | | | |
// | P0.0 |-------------------------|KSDA1 |
// | P0.1 |-------------------------|KSCL1 |
// | P0.2 |-------------------------|KRST |
// | P3.2 |-------------------------|KINT |<------------------|
// | | | | |
// | | |-----------------| |
// |----------------| | |
// | |
// | |
// | |
// | |
// \|/ \|/
// |-------------------------------------| |------------|
// | | | |
// | 6 位数码管 为 深度 | |4*4按键输入 |
// | | | |
// |-------------------------------------| |------------|
// |----------------|
// | |
// | | ZLG7290
// | | |-----------------|
// | | | |
// | | | |
// | P0.2 |-------------------------| KRST |
// | P0.3 |-------------------------| KSDA2 |
// | P0.4 |-------------------------| KSCL2 |
// | | | |
// | | | |
// | | |-----------------|
// |----------------| |
// |
// |
// |
// |
// \|/
// |-------------------------------------|
// | |
// | 7 位数码管 前三位为 速度 |
// | 后四位为 时间 |
// |-------------------------------------|
//
//============================== 头文件 =======================================
#include <aduc812.h>
//#include <aduc841.h>
//#include <aduc842.h>
//#include <reg51.h>
//#include <intrins.h>
//#include <absacc.h>
//#include <math.h>
//#include <string.h>
//#include <stdio.h>
#include "7290.h"
//============================== 宏定义 =======================================
sbit KSDA1 = P0^0;
sbit KSCL1 = P0^1;
sbit KRST = P0^2;
sbit KSDA2 = P0^3;
sbit KSCL2 = P0^4;
sbit KINT = P3^2;
//定义键盘中断标志,FlagINT=1表示有键按下
volatile bit FlagINT = 0;
//============================== 函数声明 =====================================
void delayX10ms(int count);
void TickInit(); //中断初始化程序
//---- ZLG7290 调用程序函数 ----
void Delay(unsigned int t);//=== 延时10ms~655.36s ===
void SystemInit();//=== 系统初始化 ===
void ClearAll();//=== 清除所有显示 ===
void Test_DispBuf();//=== 测试直接写显存 ===
void Test_Download();//=== 测试下载数据功能 ===
void Test_ScanNum();//=== 扫描位数越少,数码管就越亮 ===
void Test_Flash();//=== 测试闪烁功能 ===
void Test_SegOnOff();//=== 测试段寻址功能 ===
void DispValue(char x, unsigned char dat);//=== 显示100以内的数值 ===
void DispHexValue(char x, unsigned char dat);//=== 以16进制方式显示数值 ===
void Test_Key(); //=== 测试按键功能 ===
//=============================================================================
//======================= 主函数 =============================================
//=============================================================================
void main(void)
{
unsigned int i;
TickInit();
SystemInit(); //系统初始化
Test_DispBuf(); //测试直接写显存
// Test_Download(); //测试下载数据
// Test_ScanNum(); //测试不同扫描位数
Test_Flash(); //测试闪烁功能
Test_SegOnOff(); //测试段寻址功能
Test_Key(); //测试键盘功能
while(1)
{
for (i=0; i<10; i++)
{
delayX10ms(10);
}
}
}
aduc812系列 UART
aduc812系列 UART
//这是一个单片机C51串口接收(中断)和发送例程,可以用来测试51单片机的中断接收
//和查询发送,另外我觉得发送没有必要用中断,因为程序的开销是一样的
//#include
#include
#include
#define INBUF_LEN 4 //数据长度
unsigned char inbuf1[INBUF_LEN];
unsigned char checksum,count3;
bit read_flag=0;
sbit led=P2^3;
void init_serialcomm(void)
{
SCON = 0x50; //SCON: serail mode 1, 8-bit UART, enable ucvr
TMOD |= 0x20; //TMOD: timer 1, mode 2, 8-bit reload
PCON |= 0x80; //SMOD=1;
TH1 = 0xF4; //Baud:4800 fosc=11.0592MHz
IE |= 0x90; //Enable Serial Interrupt
TR1 = 1; // timer 1 run
// TI=1;
}
//向串口发送一个字符
void send_char_com(unsigned char ch)
{
SBUF=ch;
while(TI==0);
TI=0;
}
aduc812系列 IIC2
aduc812系列 IIC2
// ===================================================================================== //
// 文件名称:huganqi.c 互感器测试程序 //
// 芯片类型: aduc812 //
// 开发软件: KEIL C51 V2.0 , Windows XP //
// 开发时间:2006年11月16日 //
// 程序功能: //
// 编写人员:吕云曾 //
// 联系方式:13845052176 lvyunzeng@163.com //
// ===================================================================================== //
//AT24C02 C语言驱动程序—MAX7219 显示 -|zl0801 发表于 2005-8-25 9:19:00
//AT24C02 EEPROM drive program
// ===================================================================================== //
// 文件名称:huganqi.c 互感器测试程序 //
// 芯片类型: aduc812 //
// 开发软件: KEIL C51 V2.0 , Windows XP //
// 开发时间:2006年11月22日 //
// 程序功能: //
// 编写人员:吕云曾 //
// 联系方式:13845052176 lvyunzeng@163.com //
// ===================================================================================== //
//=============================引脚定义=========================================
/*
===================变量标志定义==============================
Bj_tishi1 --LED0--P0.0 报警提示I
Bj_tishi2 --LED1--P0.1 报警提示II
Set_yuzhi1 --LED2--P0.2 设置报警阈值 I 提示
Set_yuzhi2 --LED3--P0.3 设置报警阈值II 提示
set_time --LED4--P0.4 设置报警时间 提示
Baojing1 --LED5--P2.3 报警 I 动作信号
Baojing2 --LED6--P2.4 报警 II 动作信号
======
51单片机 汇编 IO发音系列 歌曲祝你平安
51单片机 汇编 IO发音系列 歌曲祝你平安
;P3.3小喇叭--祝你平安
ORG 0000H
LJMP START
ORG 000BH
INC 20H ;中断服务,中断计数器加1
MOV TH0,#0D8H
MOV TL0,#0EFH ;12M晶振,形成10毫秒中断
RETI
START:
MOV SP,#50H
MOV TH0,#0D8H
MOV TL0,#0EFH
MOV TMOD,#01H
MOV IE,#82H
MUSIC0:
NOP
MOV DPTR,#DAT ;表头地址送DPTR
MOV 20H,#00H ;中断计数器清0
MOV B,#00H ;表序号清0
MUSIC1:
NOP
CLR A
MOVC A,@A+DPTR ;查表取代码
JZ END0 ;是00H,则结束
CJNE A,#0FFH,MUSIC5
LJMP MUSIC3
MUSIC5:
NOP
MOV R6,A
INC DPTR
MOV A,B
MOVC A,@A+DPTR ;取节拍代码送R7
MOV R7,A
SETB TR0 ;启动计数
MUSIC2:
NOP
cpl p2.0
CPL P0.0
MOV A,R6
MOV R3,A
LCALL DEL
MOV A,R7
CJNE A,20H,MUSIC2 ;中断计数器(20H)=R7否?
;不等,则继续循环
MOV 20H,#00H ;等于,则取下一代码
INC DPTR
; INC B
LJMP MUSIC1
MUSIC3:
NOP
CLR TR0 ;休止100毫秒
MOV R2,#0DH
MUSIC4:
NOP
MOV R3,#0FFH
LCALL DEL
DJNZ R2,MUSIC4
INC DPTR
LJMP MUSIC1
END0:
NOP
MOV R2,#64H ;歌曲结束,延时1秒后继续
MUSIC6:
MOV R3,#00H
LCALL DEL
DJNZ R2,MUSIC6
LJMP MUSIC0
DEL:
NOP
DEL3:
MOV R4,#02H
DEL4:
NOP
DJNZ R4,DEL4
NOP
DJNZ R3,DEL3
RET
NOP
DAT:
db 26h,20h,20h,20h,20h,
51单片机 汇编 IO发音系列 小喇叭爬音演奏
51单片机 汇编 IO发音系列 小喇叭爬音演奏
;小喇叭的爬音演奏,即do,rui,mi,fa,so,la,xi,do
;30h=步进值,21h低8位 22h高8位
org 0000h
ajmp main
org 000bh
jmp tim0
org 0030h
main: ;主程序
mov tmod,#01h ;设定时方式
mov ie,#82h ;开中断
start0:
mov 30h,#00h ;
next: mov a,30h
jnz sing ;根据音调决定是否演奏.
clr tr0
jmp d1
sing: dec a
mov 22h,a ;将音调存入22H.
rl a
mov dptr,#table1
movc a,@a+dptr ;根据音调决定定时器初值.
mov th0,a ;放入TH0
mov 21h,a
mov a,22h
rl a
inc a
movc a,@a+dptr
mov tl0,a ;放入TL0
mov 20h,a
jz end0 ;如果到了00则停止发音
setb tr0 ;启动定时
d1: call delay
inc 30h ;取下一个码
jmp next
end0: clr tr0
jmp start0 ;重新开始
tim0: ;定时器中断服务程序
push acc
push psw
mov tl0,20h ;重赋初值.
mov th0,21h
cpl p3.2
pop psw
pop acc
reti
delay: mov r7,#03h ;延时子程序 决定每个音的时间
d2: mov r4,#187
d3: mov r3,#248
djnz r3,$
djnz r4,d3
djnz r7,d2
ret
table1: ;决定音调的定时初值.
51单片机 汇编 IO音乐系列 八音盒
51单片机 汇编 IO音乐系列 八音盒
org 0000h
ajmp main
org 000bh
ajmp timer0
org 0030h
timer0:
clr ea
djnz 33h,exit
mov 33h,53h
djnz 32h,exit
mov 32h,52h
djnz 31h,exit1
mov 31h,51h
djnz 30h,exit1
setb f0
ajmp exit
exit1: cpl p3.3
exit: setb ea
reti
main:
mov tmod,#02h
mov ie,#82h
mov th0,#254
mov tl0,#254
mov dptr,#tab
main1:
mov 40h,#00h
loop:
clr ea
mov a,40h
movc a,@a+dptr
mov 30h,a
mov 50h,a
inc 40h
mov a,40h
movc a,@a+dptr
mov 31h,a
mov 51h,a
inc 40h
mov a,40h
movc a,@a+dptr
mov 32h,a
mov 52h,a
inc 40h
mov a,40h
movc a,@a+dptr
mov 33h,a
mov 53h,a
setb ea
setb tr0
jnb f0,$
clr f0
inc 40h
mov a,40h
cjne a,#40,loop
ajmp main1
tab: ; 30h,31h,32h,33h
db 2,25,24,16 ;low frequency
51单片机 汇编 IO发音系列 小喇叭滴滴声
51单片机 汇编 IO发音系列 小喇叭滴滴声
org 0000h
ajmp main
org 0030h
main:
CPL P2.0 ;取反小喇叭(p2.0)
lcall delay ;调用延时
ajmp main ;反复循环
delay: ;延时子程序
51单片机 汇编 IO发音系列 救护车声音
51单片机 汇编 IO发音系列 救护车声音
org 0000h
ajmp main
org 0030h
main:
MOV R2,#08H
DLV1: MOV R3,#0FAH
DLV2: CPL P3.3
LCALL DELAY1 ;延时
DJNZ R3,DLV2
DJNZ R2,DLV1
MOV R2,#10H ;改变循环初值
DLV3: MOV R3,#0FAH
51单片机 汇编 IO发音系列 八月桂花香
51单片机 汇编 IO发音系列 八月桂花香
ORG 0000H
LJMP START
ORG 000BH ;中断入口
INC 20H ;中断服务程序,中断计数器加1
MOV TH0,#0D8H
MOV TL0,#0EFH ;12M晶振,形成10毫秒中断
RETI
START:
MOV SP,#50H
MOV TH0,#0D8H
MOV TL0,#0EFH
MOV TMOD,#01H
MOV IE,#82H
MUSIC0:
NOP
MOV DPTR,#DAT ;表头地址送DPTR
MOV 20H,#00H ;中断计数器清0
MOV B,#00H ;表序号清0
MUSIC1:
NOP
CLR A
MOVC A,@A+DPTR ;查表取代码
JZ END0 ;是00H,则结束
CJNE A,#0FFH,MUSIC5
LJMP MUSIC3
MUSIC5:
NOP
MOV R6,A
INC DPTR
MOV A,B
MOVC A,@A+DPTR ;取节拍代码送R7
MOV R7,A
SETB TR0 ;启动计数
MUSIC2:
NOP
CPL P3.3
MOV A,R6
MOV R3,A
CPL A
MOV P1,A ;显示(修改者加入的显示)
CPL A
LCALL DEL
MOV A,R7
CJNE A,20H,MUSIC2 ;中断计数器(20H)=R7否?
;不等,则继续循环
MOV 20H,#00H ;等于,则取下一代码
INC DPTR
LJMP MUSIC1
MUSIC3:
NOP
CLR TR0 ;休止100毫秒
MOV R2,#0DH
MUSIC4:
NOP
MOV R3,#0FFH
LCALL DEL
DJNZ R2,MUSIC4
INC DPTR
LJMP MUSIC1
END0:
NOP
MOV R2,#64H ;歌曲结束,延时1秒后继续
MUSIC6:
MOV R3,#00H
LCALL DEL
DJNZ R2,MUSIC6
LJMP MUSIC0
DEL:
NOP
DEL3:
MOV R4,#05H
DEL4:
NOP
DJNZ R4,DEL4
NOP
DJNZ R3,DEL3
RET
DAT:
DB 18H, 30H, 1CH, 10H
DB 20H, 40H, 1CH, 10H
DB 18H, 10H, 20H, 10H
DB 1CH, 10H, 18H, 40H
51单片机 汇编 io发音系列 生日快乐歌
51单片机 汇编 io发音系列 生日快乐歌
org 0000h
ajmp main
org 000bh
jmp tim0
org 0030h
main: ;主程序
mov tmod,#01h ;设定时方式
mov ie,#82h ;开中断
start0:
mov 30h,#00h ;
next: mov a,30h
mov dptr,#table
movc a,@a+dptr ;查表取音调和节拍
mov r2,a
jz end0 ;为零,不进行处理.
anl a,#0fh
mov r5,a ;将节拍存入R5
mov a,r2
swap a
anl a,#0fh
jnz sing ;根据音调决定是否演奏.
clr tr0
jmp d1
sing: dec a
mov 22h,a ;将音调存入22H.
rl a
mov dptr,#table1
movc a,@a+dptr ;根据音调决定定时器初值.
mov th0,a ;放入TH0
mov 21h,a
mov a,22h
rl a
inc a
movc a,@a+dptr
mov tl0,a ;放入TL0
mov 20h,a
setb tr0 ;启动定时
d1: call delay
inc 30h
jmp next
end0: clr tr0
jmp start0
tim0: ;定时器中断服务程序
push acc
push psw
mov tl0,20h ;重赋初值.
mov th0,21h
cpl p3.3
pop psw
pop acc
reti
delay: mov r7,#02h ;延时子程序
d2: mov r4,#187
d3: mov r3,#248
djnz r3,$
djnz r4,d3
djnz r7,d2
djnz r5,delay
ret
table1: ;决定音调的定时初值.
51单片机 汇编 ADXL202钻头测斜仪
51单片机 汇编 ADXL202测斜 12864液晶
针对ADXL202芯片开发的设备, ADXL202是ADI的早期产品,东西有点老。
但是程序编写是使用汇编干的,使用的是伟福仿真器干的。程序调试的很爽。
51单片机 汇编 驱动多路DS18B20 程序
51单片机 汇编 驱动多路DS18B20 程序
程序有自校准温度部分,请详细阅读。
每一路有自己IO口线,不可乱接的。
51单片机 汇编 驱动 LG 240*128点阵液晶 T6963C控制器
51单片机 汇编 驱动 LG 240*128点阵液晶 T6963C控制器
2005年全国大学生电子设计大赛上使用的东西,4天3也使用汇编驱动液晶,
还是大屏幕的液晶,很佩服当时自己的勇气与决心啊!
51单片机 汇编 驱动 MAX7219
使用MCS51系列单片机编写的汇编程序,一点一点驱动,速度快,占用空间小。也可以加载到C文件中,对于FLASH小的单片机很有用处的。