传感器实验Word格式文档下载.docx
- 文档编号:22385921
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:33
- 大小:21.71KB
传感器实验Word格式文档下载.docx
《传感器实验Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《传感器实验Word格式文档下载.docx(33页珍藏版)》请在冰豆网上搜索。
INCR1;
CJNER1,#0AH,ACED;
INCR2;
CJNER2,#0AH,ACED;
ACED:
DELAY:
延时
MOVR7,#02H;
DELAYLOOP1:
MOVTH1,#03CH;
MOVTL1,#0B0H;
CLRTF1;
SETBTR1;
DELAYLOOP2:
JNBTF1,DELAYLOOP2;
DJNZR7,DELAYLOOP1;
TAB:
数模表
db0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;
END;
2.步进电机原理及应用
ORG0000H
LJMPSTART
ORG000BH
LJMPT_INT
ORG0050H
;
程序开始
P4EQU0C0H
MOVP4,#0FFH
P4SWEQU0BBH
MOVP4SW,#70H
DATEQUP4.5
CLKEQUP4.4
SW1EQUP3.6
SW2EQUP3.7
CE1EQUP1.3
CE2EQUP1.4
IN1EQUP3.2
IN2EQUP1.0
SETBCE1
SETBCE2
CLRIN1
CLRIN2
MOVR6,#0;
步数计数
MOVR5,#0
MOVR4,#0
MOVTMOD,#01H;
设定T1工作在MODE1工作模式
LOOP:
MOVA,R6;
对个位操作
MOVDPTR,#TAB;
把地址表中的地址赋值给当前指针
MOVCA,@A+DPTR;
按地址表查找
LCALLDIS;
调用显示函数
MOVA,R5;
对十位操作
MOVA,R4;
对百位操作
LOP:
JBSW2,POS;
选择转动的方向
Reverse:
逆序
JNBIN1,LP4
JNBIN2,LP5
CPLIN1
JMPLL;
01
LP4:
JNBIN2,LP6
CPLIN2
00
LP5:
11
LP6:
10
POS:
正序
JNBIN1,LP1
JNBIN2,LP2
SETBIN1
LP1:
JNBIN2,LP3
SETBIN2
LP2:
00
LP3:
SETBIN2;
LL:
INCR6
CJNER6,#10,LOOP1
INCR5;
十位加1
个位清0
CJNER5,#10,LOOP1
INCR4;
百位加1
MOVR5,#0;
十位清0
CJNER4,#10,LOOP1
LCALLT_INT;
JMPLOOP
DIS:
显示
MOVR0,#8;
每一位用8位表示
LP:
CLRCLK;
输出低电平
RLCA;
循环左移
MOVDAT,C
SETBCLK;
置位时钟,开始输出
DJNZR0,LP;
减1不为0,跳转循环
RET
定时器中断开始
T_INT:
10转/分
MOVR3,#6H
TT1:
MOVTL0,#LOW(65536-41667);
装入低位
MOVTH0,#HIGH(65536-41667);
装入高位
SETBTR0;
启动T1开始计数
JNBTF0,$;
T1没有溢出,等待
CLRTF0
JNBSW1,T1_INT;
按下开关SW1时,SW1=0,转速为60转/分
DJNZR3,TT1
T1_INT:
RETI;
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
3.直流电机脉宽调制调速
ORG0003H
LJMPT_INT0
ORG001BH
LJMPT_INT1
P4EQU0C0H
MOVP4,#0FFH
P4SWEQU0BBH
MOVP4SW,#70H
S1EQUP3.6
S2EQUP3.7
DATEQUP4.5
CLKEQUP4.4
MOVR0,#0H
MOVR1,#0H;
实际转速
MOVR2,#050H;
目预测转速,初值为100
MOVR3,#014H;
R5=20,每50ms减1,控制时间为1s,用来求直流电机每秒的转速
MOVR4,#064H;
R6=100,表示N。
MOVR5,#0H
MOVR6,#0H
MOVR7,#0H
MOV71H,#0H
MOV75H,#0H
MOV76H,#0C8H
MOV77H,#0H
MOV78H,0H
MOVTMOD,#10H;
设定T1工作在MODE1工作模式
MOVTH1,#3CH;
50ms
MOVTL1,#0B0H;
50ms
SETBET1
SETBTR1;
启动T1
MOVTH0,#0EFH;
1ms
MOVTH0,#0FFH;
SETBET0
SETBTR0;
启动T0
SETBEX0;
外部中断0中断允许/禁止标志位
SETBIT0;
触发方式标志,为1时是下降沿触发
SETBEA;
开中断
CLRP1.1;
P1.1初始状态
YUCE:
预测转速调控
JNBS1,CY1;
按下S1=0;
跳转到预测转速加1
JNBS2,CY2;
按下S2=0;
跳转到预测转速减1
LJMPCOMPT
CY1:
INCR2
LJMPLL1
CY2:
DECR2
COMPT:
CJNER3,#0H,COMPT;
等待1s
MOVA,R1
MOVR1,#0H
MOV71H,A;
记录实际转速
MOVR3,#14H
CLRC
SUBBA,R2;
比较实际转速和预期转速
CJNEA,#0H,AA
LJMPLL;
实际转速等于预测转速,则显示转速
AA:
JCAA1
DECR4;
减小N,增加p1.3接口0的输出时间
JMPLL
AA1:
实际转速小于预期转速
INCR4;
增加N,减小p1.3接口0的输出时间
JMPLL
MOVR0,77H
INCR0
CJNER0,#2,LL1
MOV77H,#0H
MOVA,71H
JMPCOUNT
LL1:
MOVA,R2;
预期转速
COUNT:
MOVB,#100
DIVAB
MOV72H,A
XCHA,B
MOVB,#10
MOV73H,A
MOV74H,B
MOVR5,72H
MOVR6,73H
MOVR7,74H
CLRA
MOVA,R7;
MOVDPTR,#TAB;
MOVCA,@A+DPTR;
LCALLDIS;
MOVA,R6;
MOVA,R5;
MOVR5,#0H
MOVR6,#0H
LJMPYUCE
MOV78H,#08H;
LP:
CLRCLK;
RLCA;
MOVDAT,C
SETBCLK;
DJNZ78H,LP;
RET
T_INT0:
INCR1
RETI
5ms
MOVTL0,#0FFH;
PUSHACC
PUSHPSW
MOVA,75H
ADDA,R4
MOV75H,A
SUBBA,76H
MOVP1.1,C
JCDD
ADDA,76H
DD:
POPPSW
POPACC
T_INT1:
MOVTH1,#3CH;
MOVTL1,#0B0H;
DECR3
4.LED点阵显示屏
#include<
reg52.H>
unsignedcharcol1[]={0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
//行扫描显示编码
unsignedcharcol2[]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE};
unsignedcharrow1[]={0x00,0x00,0x3F,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x3F,0x20,0x00,0x00};
//列扫描显示编码
unsignedcharrow2[]={0x00,0x3E,0xA2,0x92,0x92,0x8A,0x92,0x92,0xA2,0xA2,0XA2,0x96,0x8A,0x82,0x02,0x02};
sbitP00=P0^0;
//D.X,数据线
sbitP01=P0^1;
//CK.X,数据输入时钟线
sbitP02=P0^2;
//CK.XL,输出存储器锁存时钟
sbitP03=P0^3;
//D.Y
sbitP04=P0^4;
//EX.Y
sbitP05=P0^5;
//CK.Y
sbitP06=P0^6;
//CK.YL
sbitP07=P0^7;
//EX.X,输出使能
voidsend(unsignedcharm)
{
unsignedcharnum,c;
P07=1;
num=row1[m];
for(c=0;
c<
8;
c++)
{
P01=0;
P00=num&
0x80;
//按位发送
P01=1;
//SRCK上升沿,数据移位
num<
<
=1;
}
num=row2[m];
P02=0;
//RCK上升沿,移位寄存器的数据进入数据存储寄存器
P02=1;
P07=0;
//G为低电平,允许输出
P04=1;
num=col1[m];
P05=0;
P03=num&
P05=1;
num=col2[m];
P06=0;
P06=1;
P04=0;
//允许输出
}
voiddelay_t(unsignedintt)//延时t毫秒
{
unsignedchari;
for(;
t;
t--)
i=255;
if(i>
0)
i--;
}
voidmain(void)
unsignedchari,j;
while
(1)
{
for(j=0;
j<
16;
j++)
send(j);
for(i=0;
i<
10;
i++)
delay_t(10);
}
5.重量测量
//字模方式:
列行式,逆向,16*16
reg52.h>
intrins.h>
#defineucharunsignedchar
#defineuintunsignedint
#defineLCD_databusP2//LCD8bitdatabus
ucharnum;
sbitRS=P3^5;
//寄存器选择信号
sbitRW=P3^4;
//读/写操作选择信号,高电平读,低电平写
sbitEN=P3^3;
//使能信号
sbitCS1=P1^7;
//左半屏显示信号,低电平有效
sbitCS2=P1^6;
//右半屏显示信号,低电平有效
uintloop=0;
//页面
uinttimes=0;
//延时计数
ucharcodefa[]={0x02,0x82,0xE2,0x5E,0x42,0xC2,0x02,0x10,0x10,0x10,0xFF,0x10,0x10,0x18,0x10,0x00,0x02,0x01,0x7F,0x10,0x10,0x3F,0x01,0x21,0x79,0x27,0x21,0x29,0x31,0x61,0x01,0x00};
/*"
砝"
0*/
ucharcodema[]={0x02,0x82,0xE2,0x5E,0x42,0xC2,0x00,0x02,0xFA,0x82,0x82,0x82,0xFE,0x80,0x00,0x00,0x01,0x00,0x7F,0x10,0x10,0x3F,0x00,0x04,0x04,0x04,0x44,0x84,0x40,0x3F,0x00,0x00};
码"
1*/
ucharcodezhong[]={0x08,0x08,0x0A,0xEA,0xAA,0xAA,0xAA,0xFF,0xA9,0xA9,0xA9,0xE9,0x08,0x08,0x08,0x00,0x40,0x40,0x48,0x4B,0x4A,0x4A,0x4A,0x7F,0x4A,0x4A,0x4A,0x4B,0x48,0x40,0x40,0x00};
重"
2*/
ucharcodeliang[]={0x40,0x40,0x40,0xDF,0x55,0x55,0x55,0xD5,0x55,0x55,0x55,0xDF,0x40,0x40,0x40,0x00,0x40,0x40,0x40,0x57,0x55,0x55,0x55,0x7F,0x55,0x55,0x55,0x57,0x50,0x40,0x40,0x00};
量"
3*/
ucharcodewei[]={0x00,0x10,0x10,0x12,0x14,0x1C,0x10,0xF0,0x9F,0x10,0x10,0x10,0x10,0xF8,0x10,0x00,0x00,0x00,0x40,0x20,0x10,0x08,0x06,0x01,0x00,0x11,0x26,0x40,0x20,0x1F,0x00,0x00};
为"
4*/
ucharcodemao[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x36,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
:
"
5*/
ucharcodeling[]={0x00,0x00,0x00,0xF8,0x04,0x02,0x02,0x02,0x02,0x02,0x04,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x40,0x40,0x40,0x40,0x40,0x20,0x1F,0x00,0x00,0x00,0x00};
0"
ucharcodeyi[]={0x00,0x00,0x00,0x00,0x00,0x08,0x04,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x7F,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00};
1"
ucharcodeer[]={0x00,0x00,0x00,0x18,0x04,0x02,0x02,0x02,0x82,0x82,0x84,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x44,0x42,0x41,0x41,0x40,0x40,0x40,0x70,0x00,0x00,0x00,0x00};
2"
ucharcodesan[]={0x00,0x00,0x00,0x0C,0x02,0x02,0x02,0x82,0x82,0x42,0x22,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x40,0x40,0x40,0x40,0x40,0x41,0x22,0x1C,0x00,0x00,0x00,0x00};
3"
ucharcodesi[]={0x00,0x00,0x00,0x00,0x80,0x60,0x1C,0x02,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x0A,0x09,0x08,0x48,0x48,0x7F,0x48,0x48,0x08,0x00,0x00,0x00,0x00};
4"
ucharcodewu[]={0x00,0x00,0x00,0xFE,0x82,0x42,0x42,0x42,0x42,0x42,0x82,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x31,0x40,0x40,0x40,0x40,0x40,0x40,0x20,0x1F,0x00,0x00,0x00,0x00};
5"
ucharcodeliu[]={0x00,0x00,0x00,0xF8,0x04,0x82,0x82,0x82,0x82,0x82,0x04,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x21,0x40,0x40,0x40,0x40,0x40,0x21,0x1E,0x00,0x00,0x00,0x00};
6"
6*/
ucharcodeqi[]={0x00,0x00,0x00,0x0E,0x02,0x02,0x02,0x02,0x82,0x42,0x32,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x0E,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
7"
7*/
ucharcodeba[]={0x00,0x00,0x00,0x38,0x44,0x82,0x82,0x82,0x82,0x82,0x44,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x21,0x40,0x40,0x40,0x40,0x40,0x21,0x1E,0x00,0x00,0x00,0x00};
8"
8*/
ucharcodejiu[]={0x00,0x00,0x00,0x78,0x84,0x02,0x02,0x02,0x02,0x02,0x84,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x20,0x41,0x41,0x41,0x41,0x41,0x20,0x1F,0x00,0x00,0x00,0x00};
9"
9*/
ucharcodeke[]={0x00,0x04,0x04,0xE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 传感器 实验