智能装置与仪表归总.docx

上传人:b****5 文档编号:7667643 上传时间:2023-01-25 格式:DOCX 页数:15 大小:27.93KB
下载 相关 举报
智能装置与仪表归总.docx_第1页
第1页 / 共15页
智能装置与仪表归总.docx_第2页
第2页 / 共15页
智能装置与仪表归总.docx_第3页
第3页 / 共15页
智能装置与仪表归总.docx_第4页
第4页 / 共15页
智能装置与仪表归总.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

智能装置与仪表归总.docx

《智能装置与仪表归总.docx》由会员分享,可在线阅读,更多相关《智能装置与仪表归总.docx(15页珍藏版)》请在冰豆网上搜索。

智能装置与仪表归总.docx

智能装置与仪表归总

第一章作业思考题

1.数码管动态显示,静态显示有什么不同?

LED数码管显示按扫描方式分有动态显示和静态显示2种。

(1)动态显示:

一般需要占用8个段码线和4位以上的位码线,即一般至少要占用12条以上的I/O口资源。

优点是节省芯片;但亮度可能不够,或者显示有断续的闪烁现象,同时要占用CPU动态扫描时间。

(2)静态显示

每一位数码管需要有一个芯片来驱动。

优点是亮度够,显示质量好;缺点是所需芯片多,电路一般采用多个芯片首尾相接串联而成。

2.使用串行芯片与并行芯片各有什么优缺点?

串行芯片比并行芯片节省I/O资源(串行一般2-3条线),并行比串行速度快。

3.专用显示键盘芯片CH451有什么功能和特点?

功能和特点:

•可以自行动态驱动8位8段的数码管显示,或者8x8=64位发光指示灯。

段电流可达30毫安,字电流可达160毫安;

•支持8x8按键输入;

•内置看门狗电路,可以对CPU实行监控;

•与CPU可以4线串行接口;

其他的辅助功能还有:

•可选数码管显示的段码为不译码方式或者BCD译码方式;

•字数据可以左移、右移、左循环、右循环显示;

•各数字可以独立闪烁控制。

•通过占空比设定,提供16级亮度控制。

•支持段电流上限调整,可以省去所有限流电阻;

•键盘内置去抖电路,提供按键释放标志

•有键盘中断,低电平有效;

4.CH451时钟线DCLK有什么作用?

DCLK用于提供串行时钟,CH451在其上升沿从DIN输入数据,在其下降沿从DOUT输出数据。

此外,看门狗计时器也是通过观察DCLK信号来使CPU正常工作的。

CH451在启用看门狗功能后,只要输入引脚DCLK没有信号变化,看门狗计时器就会计时,当计满溢出周期时,就会产生看门狗复位脉冲信号。

所以CPU必须定时、有规律的输出DCLK信号,清除看门狗计时器。

所以,一旦CPU工作混乱,就会被CH451强制复位。

5.CH451读取按键代码的步骤是怎样的?

CPU收到键盘中断,开始读按键代码:

(1)CPU向DIN输出读取按键代码的命令命令为:

7××H

(2)向LOAD输出低电平脉冲,其中包括一个上升沿使CH451加载串行数据,CH451接受并判别是读取按键命令后,立即在DOUT输出按键代码;

(3)CPU按位读取7位数据;

6.组成CH451的键码的各个比特有什么实际含义?

CH451所提供的按键代码为7位,位2-位0位是列扫描码,位5-位3是行扫描码,位6是状态码(键按下为1,键释放为0).

7.请编写串行写12比特数据到CH451的程序,其中低8位在30H,高4位在31H中。

DINBITP1.0;

DCLKBITP1.1;

DOUTBITP3.3;

LOADBITP1.2;

BYTE_HDATA30H;

BYTE_LDATA31H;

WRITE:

PUSHACC;

PUSHR7;

CLREX1;

CLRLOAD;

MOVR7,#08H;

MOVA,BYTE_L;

WRITE_L:

RRCA;

CLRDCLK;

MOVDIN,C;

SETBDCLK;

DJNZR7WRITE_L;

MOVA,31H;

MOVR7,#04H;

WRITE_H:

RRCA;

CLRDCLK;

MOVDIN,C;

SETBDCLK;

DJNZR7,WRITE_H;

SETBLOAD;

SETBEX1;

POPR7;

POPACC;

RET

8.请编写串行读CH451按键代码的子程序,键码放到32H中。

KEYDATA32H

READ_KEY:

PUSHACC;

PUSHR7;

CLREX1;

CLRLOAD;

MOVA,#07H;

MOVR7,#04H;

READ_4:

RRCA

CLRDLCK;

MOVDINC;

SETBDCLK;

DJNZR7,READ_4;

SETBLOAD;

CLRA;

MOVR7,#07H

READ_7:

MOVC,DOUT;

CLRDCLK;

RLCA;

SETBDCLK;

DJNZR7,READ_7;

CLRC;

SUBBA,#40H;

MOVKEY,A;

CLRIE1;

SETBEX1;

POPR7;

POPACC;

RET

9.什么叫BCD码?

什么叫显示段码?

即BCD代码。

Binary-CodedDecimal‎,简称BCD,称BCD码或二-十进制代码,亦称二进码十进数。

是一种二进制的数字编码形式,用二进制编码的十进制代码。

这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。

10.请写出字符“U”和“n”的段码。

U:

0111110Bn:

1010100B

第2章作业思考题:

1.仪表状态的含义是什么?

状态仪表每时每刻工作在某种状态下,当一个消息到达之后,仪表将做出对应的反应:

执行一项任务,并从一种状态迁移到新状态下。

仪表中的状态是指仪表接受了一个消息驱动后,系统所处的位置及状况。

2.状态转移法编程的优点是什么?

状态法优点:

用“状态转移法”设计键控程序时,其程序基本框架是相同的,对不同的应用实例只需更改状态表和子程序功能即可。

因此程序具有通用性强、修改方便、便于阅读等优点。

3.程序状态表的结构是如何组成的?

状态表:

状态表就是反映状态、键码、子程序、次态之间关系的表格

程序状态表:

将状态表写成程序数据表的形式,用于程序查表使用

4.广义来看,消息可以有哪些来源?

消息:

主要是按键,也可以定时器溢出,外部中断信号,I/O输入信号,脉冲信号等.

5.写出查状态表要用到的下态和任务号地址的计算公式。

状态的转移和程序的执行过程是通过查状态表来实现的。

设按键DOWN,PARA,UP对应的数值分别为0,1,2,已知当前状态为ST,当某个按键按下后,查找下态和要执行的任务号地址的公式为:

下态地址=#ST_TAB+ST*6+KEY*2

任务号地址=#ST_TAB+ST*6+KEY*2+1=下态存放地址+1

其中#ST_TAB为程序中状态表的首地址。

也就是程序中数据表的标号。

乘6是因为3键时,每行数据为6个;如果是4键,则每行数据为8个,就需要乘8。

6.在4个按键情况下,编写程序查状态表获得下态和任务号。

MOVA,STATE;原状态号

MOVB,#8;状态乘以8

MULAB

ADDA,KEY;键值乘2

ADDA,KEY

MOVR0,A;保存偏移量

MOVDPTR,#ST;取状态表首地址

MOVCA,@A+DPTR

MOVSTATE,A;得到新状态号

MOVA,R0;恢复偏移量

INCA;指向任务号地址

MOVCA,@A+DPTR;得到任务号于A中

7.根据已知任务号,编写散转程序,转去执行对应程序。

MOVAPR;任务号送A

MOVB#03H;乘3,每个LJMP为3字节

MULAB;任务号于A中

MOVDPTR#TASK;散转,去执行对应任务

JMP@A+DPTR

TASK:

LJMPP_0;空操作

LJMPP_1显示100/P…

LJMPP_2;显示AAAA

LJMPP_3;XX=YY,并且显示XX

LJMPP_4;XX-1并且显示XX

LJMPP_5;XX+1并且显示XX

LJMPP_6;YY=XX并且显示P---

LJMPP_7;显示BBB

8.改写课堂讲述的状态键盘实验程序:

(1)适当增补1-2种以上状态;

(2)增加若干个功能子程序;(3)对应修改状态表中的内容。

状态

键号0

次态号

任务号

0

1

1

1

2

2

2

3

3

3

0

0

 

TASK:

LJMPP_0;跳转子程序0

LJMPP_1;跳转子程序1

LJMPP_2;跳转子程序2

LJMPP_3;跳转子程序3

P_0:

…;子程序略

P_1:

…;子程序略

P_2:

…;子程序略

P_3:

…;子程序略

;状态表

;K0

;ST,PR

STAB:

DB1,1;stat0

DB2,2;stat1

DB3,3;stat2

DB0,0;stat3

自动化装置设计课外作业

第3章作业思考题:

1.C51是一种什么语言?

与标准C有什么主要区别?

C51是在51系列单片机上使用一种简单的高级语言,语法符合标准C语言规范。

编写程序和调试程序的时间大大缩短。

区别:

C51是兼容ANSI的编译器,但为了支持8051系列MCU加入了一些扩展的内容。

C51编译器的扩展内容包括

数据类型

存储器类型

指针

重入函数

中断服务程序

实时操作系统

和PL/M及A51源程序的接口。

2.与汇编程序相比,C51有什么主要优缺点?

采用汇编语言编程,优点是程序运行效率高,但程序设计周期长,设计工作效率低,程序调试困难,不利于程序维护和升级。

C51编写程序和调试程序的时间大大缩短。

3.在C51程序设计中,有哪些主要的存储器类型?

存储器类型

code程序空间(64Kbytes),通过MOVC@A+DPTR访问。

data直接访问的内部数据存储器,访问速度最快(128ytes)。

idata间接访问的内部数据存储器,可以访问所有的内部存储器空间(256bytes)。

bdata可位寻址的内部数据存储器,可以字节方式也可以位方式访问(16bytes,20H-2FH)。

xdata外部数据存储器(64Kbytes),通过MOVX@DPTR访问。

pdata分页的外部数据存储器(256bytes),通过MOVX@Rn访问(固定住P2高8位地址线内容)。

4.写出C51中断服务程序的基本格式。

创建中断服务程序。

需要关心中断号和寄存器组的选择。

编译器自动产生中断向量和程序的入栈及出栈代码。

•用interrupt,定义一个中断服务程序

•用using定义此中断服务程使用的寄存器组

unsignedintinterruptcnt;//定义变量

unsignedcharsecond;//定义变量

voidtimer0(void)interrupt1using2

{//定义中断

if(++interruptcnt==4000)

{//countto4000

second++;//secondcounter

interruptcnt=0;//clearintcounter

}

}

5.用C51编写一个简单计算器程序,要求能够完成个位数加减运算的功能。

按键包含数字键0-9。

其他键定义如下:

A代表加号,B代表减号,C代表清除前1字符输入,D无定义,E代表等于号;F代表全部清空,重新开始。

 

第4章作业思考题:

1.电子音乐的音频和节拍是靠什么实现的?

音乐的基本构成:

音符、节拍

(1)乐谱中不同的音符由不同频率的正弦波产生

(2)音的节拍由延时子程序实现

要产生音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。

利用定时器进行半周期计时,每当半周期计时到,就将输出脉冲的I/O口反相,如此重复,就可在I/O口上得到对应频率的脉冲。

再通过硬件电路对脉冲滤波,得到近似的正弦波信号,送给小喇叭发出音乐声。

电子音乐的生成原理:

音乐的旋律是由几百—几KHz的音频波形合成的。

例如二胡,由于钢丝带动蛇皮振动而发声,小提琴也是由钢丝带动音响盒振动发声。

计算机的发声原理是按特定旋律,定时产生周期的方波来生成的。

2.在单片机程序中如何存储一首音乐的乐谱?

1)先把乐谱的音符由低到高找出,然后按顺序建立T值表,编制简谱码。

再按照T值表建立数据表TABLE1;

2)编制节拍码,如表3.6所示。

设定1/4拍的延时时间(167ms),由延时子程序完成;

DELAY:

MOVR7,#02

DEL2:

MOVR4,#167

DEL3:

MOVR3,#248

DJNZR3,$

DJNZR4,DEL3

DJNZR7,DEL2

RET

(3)乐谱描述:

A、采用单字节描述时:

每个音符使用一个字节,字节的高4位为简谱码(音符),低四位为节拍码(节拍),按照乐谱建立数据表TABLE.

B、采用双字节描述时:

每个音符使用2个字节,1字节为简谱码,1字节为节拍码。

3.如何利用定时器实现不同频率的脉冲输出?

要产生音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。

利用定时器进行半周期计时,每当半周期计时到,就将输出脉冲的I/O口反相,如此重复,就可在I/O口上得到对应频率的脉冲。

再通过硬件电路对脉冲滤波,得到近似的正弦波信号,送给小喇叭发出音乐声。

利用8051的内部定时器让其工作在方式1下,改变定时器的计数初值TH0及TL0,就可以产生不同频率的音频脉冲。

计数脉冲与频率的关系如下推导如下,设:

Fr:

要产生的音乐频率;则音频周期:

T=1/Fr,音频半周期:

T/2=1/(2Fr)

Fi:

定时器计数频率;12M晶振时,内部计时1次需时1µs,故其频率为Fi=1MHz;6M晶振时,内部计时一次需时2µs,频率则为Fi=0.5MHz。

N:

半周期内计数器的计数次数;

则N=(1/(2Fr))÷(1/Fi)=Fi/(2Fr)

计数器是递增的,计满溢出,所以计数初值计算公式如下:

T=65536-N=65536-Fi/(2Fr)

=65536-500000/Fr(12M晶振)

T=65536-N=65536-Fi/(2Fr)

=65536-250000/Fr(6M晶振)

4.计数器的初值大小与频率的大小是什么样的关系?

利用8051的内部定时器让其工作在方式1下,改变定时器的计数初值TH0及TL0,就可以产生不同频率的音频脉冲。

计数脉冲与频率的关系如下推导如下,设:

Fr:

要产生的音乐频率;则音频周期:

T=1/Fr,音频半周期:

T/2=1/(2Fr)

Fi:

定时器计数频率;12M晶振时,内部计时1次需时1µs,故其频率为Fi=1MHz;6M晶振时,内部计时一次需时2µs,频率则为Fi=0.5MHz。

N:

半周期内计数器的计数次数;

则N=(1/(2Fr))÷(1/Fi)=Fi/(2Fr)

计数器是递增的,计满溢出,所以计数初值计算公式如下:

T=65536-N=65536-Fi/(2Fr)

=65536-500000/Fr(12M晶振)

T=65536-N=65536-Fi/(2Fr)

=65536-250000/Fr(6M晶振)

5.编写一程序,可以输出规定频率F0=1K的脉冲。

设为12M晶振,计时频率1K,算初值T=65035(FE0BH)

OUTPLUSEBITP3.7

ORGOOH

SJMPSTART

ORG0BH

LJMPTIM0_INT

ORG30H

START:

MOVTMOD,#01H;定时器工作方式1

MOVIE,#82H;允许T0中断

MOVTH0,#0FEH

MOVTL0,#0BH;

SETBTR0

JMP$

TIM0_INT:

MOVTL0,#0BH

MOVTH0,#FEH

CPLOUTPLUSE

RETI

END

6.参照实验程序的数据表TABLE1,试写出记录如下一节乐谱的乐谱数据表。

 

音符

发音

音符码

T值

2

中音RE

1

64684

3

中音MI

2

64777

5

中音SO

3

64898

6

中音LA

4

64968

TABLE1:

DW64684,64777,64898,64968

TABLE:

DB22H,42H,42H,32H,26H,12H

第5章作业思考题:

1.I2C总线有什么特点?

I²C总线是器件与器件或InterIcBus之间的通信总线,它采用总线寻址方式查询外围接口器件,不需要片选地址,接口电路简单,可以在总线上挂接多个外围接口器件。

I2C总线为二线制串行扩展总线,它只需要两根线(串行时钟线和串行数据线)即可在连接于总线上的器件之间传送信息。

I²C总线规范中的传送速度可达400Kb/s,总线驱动能力400pf,可带电插拔。

计算机外围器件市场上有许多带I²C总线的外围芯片可用。

如:

串行EEPROM,串行ADC/DAC,串行时钟芯片,串行数字电位器,串行微处理器监控芯片,串行温度传感器等等。

2.SDA和SCL为什么采用漏极开路形式并且要接上拉电阻?

I²C总线结构

I2C总线规定SDA线和SCL线是各设备对应输出状态相“与”的结果,I²C总线上接口芯片的输出必须是漏极开路或集电极开路结构。

输出端必须接上拉电阻。

为了使总线上所有电路输出实现“与”的逻辑功能,使其能够线与,用以实现总线的仲裁(即判断多个器件的主从关系),否则只能输出低电平。

总线上数据的有效性:

I2C总线规定,SCL的一个时钟周期传送一位数据,并且在SCL的高电平期间,SDA上的数据必须保持稳定的逻辑电平状态,即高电平位数据1,低电平位数据0.只有在时钟SCL为低电平时,才允许数据线上的电平状态变化。

3.I2C总线的开始信号和结束信号的逻辑时序是什么?

•起始信号:

在时钟线SCL保持高电平期间,数据线SDA出现由高电平向低电平变化时,启动I²C总线。

称之为I²C总线的起始信号。

•终止信号:

在时钟线SCL保持高电平期间,数据线SDA出现由低电平向高电平变化时,停止I²C总线数据传送。

称之为I²C总线的终止信号。

4.在E2PROM的访问中,I2C的应答和非应答信号如何使用?

I2C总线数据传送时,每传送一个字节数据后都必须有应答信号,与应答信号相对应的时钟由主控器产生,这时,发送器必须在这一时钟位上释放数据线,使其处于高电平状态,以便接收器在这一位上送出应答信号。

应答信号在第九个时钟位上出现,接收器输出低电平为应答信号(A),输出高电平则为非应答信号(/A)。

5.在I2C总线上,数据的传送方向如何决定?

数据传送和传送方向

I²C总线规定,起始信号代表一次数据传送的开始,其后为寻址字节,寻址字节由高7位地址和最低1位方向位组成。

方向位表明是“读”或“写”操作,方向位为“0”时表明主控器对被控器的写操作,为1时表明主控器对被控器的读操作。

在寻址字节后是读或写的数据字节与应答位。

在数据传送完成后主控器都必须发送终止信号。

6.在I2C器件的访问中,器件地址和偏移地址各有什么含义?

器件地址:

选择该写外挂的哪个器件

偏移地址:

是选中器件内存储空间的地址。

与普通的I2C器件访问指令相比,由于E2PROM器件中有多个单元,为了访问到特定单元,所以必须指定要访问的单元的地址(WordAdr)。

为了与器件地址(或设备号,SLA)相区别,这个具体的单元地址称为偏移地址。

7.为访问I2C器件E2PROM,请写出写入N字节的指令格式。

//Offset;要访问的目的器件数据的偏移地址

//Size;要访问的单元字节个数

//*RamBuf;要写的数据存放在内存中的起始地址

voidE2promWrite(ucharOffset,ucharSize,uchar*RamBuf)

{

12cStart();//发起始信号

WrtByte(EEPROM);//写入器件地址

WrtByte(Offfset);//写入要访问的单元地址

While(Size--)

{WrtByte(*RamBuf++);//写1字节

}

I2cStop();

}

一般I2C指令格式

(a)I2C指令中,时钟信号SCL由主CPU发出;

(b)数据信号SDA由读写方向决定主或从器件发出;

•写N字节指令(对当前地址,无偏移)

数据由CPU发出,响应信号A由被写芯片发出。

SLAW是器件地址(例如A0H)

•读N字节指令(对当前地址,无偏移)

数据由被读芯片发出,响应信号A和/A由CPU发出。

SLAR是器件地址+1(例如A1H)

E2PROM的I2C指令中通常还要包含存储器内部单元的偏移地址。

•写N字节指令

数据由CPU发出,响应信号A由被写芯片发出。

SLAW是器件地址(A0H),WordAdr是单元偏移地址DataN。

•读N字节指令

数据由被读芯片发出,响应信号A和/A由CPU发出。

SLAW是器件地址(A0H),SLAR是器件地址+1(A1H),WordAdr是单元偏移地址。

•注意:

读指令有2次开始信号

(4)与普通的I2C器件访问指令相比,由于E2PROM器件中有多个单元,为了访问到特定单元,所以必须指定要访问的单元的地址(WordAdr)。

为了与器件地址(或设备号,SLA)相区别,这个具体的单元地址称为偏移地址。

E2PROM的读指令,相当于先通过一条写指令来指定单元偏移地址,然后再用一条读当前地址的指令来完成读过程。

8.编写向E2PROM写入1字节数据时的子程序。

(5)写1字节到E2PROM

voidWrtByte(uncharTempB)

{unchari;//写1字节

for(i=0;i<8;i++)

{if(TempB&0x80)//数据由高位到低位

SDA=1;

else

SDA=0;

_nop_();

SCL=1;

TempB=TempB<<1;

SCL=0;

}

SDA=1;//准备读应答信号

SCL=1;

_nop_();

while(SDA==1);//等待低电平应答信号

SCL=0;

}

9.编写从E2PROM读出1字节数据时的子程序

读1字节内容

uncharReadByte()//读1字节内容

{unchari,DataByte;

SDA=1;//准备读管脚

DataByte=0;

for(i=0;i<8;i++)

{SCL=1;

DataByte=DataByte<<1;

if(SDA==1)//读取1位数据,由高到低

DataByte|=0x01;

SCL=0;

}

returnDataByte;//返回1字节数据

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1