基于红外热感应传感器LHI958的微机课程设计2——汇编语言(8086/8088)[实验环境/模块/连线介绍与编程思路]

3.实验设备与说明

        本次课设利用实验室的MPTS-1实验系统,使用红外热感应传感器和光敏电阻模块。同时会使用数码管LCD 显示屏82558253

3.1微机接口 I/O 地址译码电路

        实验台上I/O地址选用280H-2BFH共64个,分8组输出:Y0-Y7,其地址分别为280H-287H;288H-28FH;290H-297H;298H-29FH;2A0H-2A7H;2A8H-2AFH;2B0H-2B7H;2B8H-2BFH,8 根输出线在实验台“I/O 地址”处分别由自锁紧插孔引出。

3.2时钟电路

        输出1MHZ、2MHZ两种信号,供定时器/计数器、A/D 转换器、串行接口实验使用。

3.3七段数码管显示电路

        实验台设有4个共阴极数码管及驱动电路,电路图如图3- 4。段码输入端:a、b、c、d、e、f、g、dp,位码输入端:S0、S1、 S2、S3。

        七位数码管由 7 个 LED 灯组成,通过点亮多个 LED 灯进行适当的组合,就可以显示数字 0~9,显示原理如图2-1所示,其为数字2的显示。 

         其余数字编码如表2-1。段码表示每一个要显示数字对应的七段数码管的输入信号。

        数码管显示原理流程图如图2-2所示。首先通过8255的D口送入方式控制字,再通过A口送出个位的段码,并通过C口送出个位的位码显示延迟后, 送出十位的段码位码,一直循环显示。直至有按键按下,才会熄灭数码管。

3.4红外热感应传感器 LHI958

        LHI958为热释电红外传感器。热释电红外传感器通过目标与背景的温差来探测目标,其工作原理是利用热释电效应,即在钛酸钡一类晶体的上、下表面设置电极,在上表面覆以黑色膜,若有红外线间歇地照射,其表面温度上升△T, 其晶体内部的原子排列将产生变化,引起自发极化电荷,在上下电极之间产生电压△U。

        热释电红外传感器内部由光学滤镜、场效应管、红外感应源(热释电元件)、 偏置电阻、EMI 电容等元器件组成,其内部电路框图如图 3- 5 所示。

        人体或者体积较大的动物都有恒定的体温,一般在37度,所以会发出特定波长10μm左右的红外线,当人体进入检测区,因人体温度与环境温度有差别,人体发射的10μm左右的红外线通过菲涅耳透镜滤光片增强后聚集到红外感应源(热释电元件)上,红外感应源在接收到人体红外辐射时就会失去电荷平衡,向外释放电荷,进而产生△T 并将△T 向外围电路输出,后续电路经检测处理后就 能产生报警信号。

        若人体进入检测区后不动,则温度没有变化,传感器也没有信号输出,所以这种传感器适合检测人体或者动物的活动情况

3.5光敏电阻

        半导体光敏元件是基于半导体光电效应的光电转换传感器,又称光电敏感器。 采用光、电技术能实现无接触、远距离、快速和精确测量,常用来间接测量能转 换成光量的其他物理或化学量。一般光越强,电阻阻值越小;反之越大。

3.6 128X64 字符图形液晶显示

3.6.1实验原理和内容

(1)中文字型产生ROM (CGROM) 及半宽字型ROM(HCGROM)

        ST7920 的字型产生ROM通过 8192个16×16点阵的中文字型,以及126 个16×8点阵的西文字符,它用2个字节来提供编码选择,将要显示的字符的编码写到DDRAM上,硬件将依照编码自动从CGROM中选择将要显示的字型显示再屏幕上。

(2)字型产生RAM(CGRAM)

        ST7920的字型产生RAM提供用户自定义字符生成(造字)功能,可提供4组16×16点阵的空间,用户可以将CGROM中没有的字符定义到CGRAM中。

(3)显示 RAM(DDRAM)

        显示 RAM 提供64×2字节的空间,最多可以控制4行16字的中文字型显示当写入显示资料RAM 时,可以分别显示CGROM,HCGROM 及CGRAM的字型。 三种字型的选择:

1)显示半宽字型:将一个字节的编码写入 DDRAM 中,范围是 02~7FH。

2)显示CGRAM字型:将2个字节的编码写入DDRAM中,共有0000H,0002H,0004H及 0006H四种编码。

3) 显示中文字型:将2字节的编码写入DDRAM中,先写高8位,后写低8位范围是 0A1AOH~0F7FFH(GB)。

“北京科技大学”对应编码为: 0BIBIH,0BEA9H,0BFC6H,0BCBCH,0B4F3H,0D1A7H;

“自动化学院”对应编码为: 0D7D4H,0B6AFH,0BBAFH,0D1A7H,0D4BAH;

(4)绘图RAM提供64×32个字节的空间(由扩充指令设定绘图 RAM 地址),最多可以控制256×64 点阵的二维绘图缓冲空间,在更改绘图RAM时,由扩充指令设置GDRAM地址先垂直地址后水平地址 (连续2个字节的数据来定义垂直和水平地址),再2个字节的数据给绘图RAM (先高8位后低8位)。

(5)ST7920A 部分基本接口功能介绍

1) D/I; 寄存器选择端,H为数据寄存器,L为指令寄存器

2) RW:读写选择端,H为读,L 为写

3) E:指令集选择控制位,使能信号

(6)部分基本指令介绍

1)显示开关设置

        控制整体显示开关,游标开关,游标位置显示反白开关。

        D=1,整体显示开;D=0,整体显示关,但是不改变 DDRAM 内容。 C=1,游标显示开;C=0,游标显示关。 B=1,游标位置显示反白开,将游标所在地址上的内容反白显示;B=0,正常显示。格式设置如图 2- 30。

(7)汉字显示坐标

     当确定汉字编码后,还需要确定汉字坐在阵列的位置,LCD中汉字字符对应地址安排如表2- 2。

(8)显示一个汉字的流程

        每个汉字大小为16×16,所以 LCD 屏幕最多可以显示 8×4 个汉字,所以将LCD屏分成8列4 行,“北京科技大学自动化学院”前 8 个汉字在第2行显示,后3个汉字显示在第3行。 要成功显示汉字,首先需要确定该汉字要显示的地址,根据表2-2可知,“北” 字所在的地址是90H,“京”字所在的地址是91H……以此类推可以得到所有要显示汉字的显示地址。此后,先送汉字编码的高8位至 LCD,再送低8位至LCD, 如此便实现了一个汉字的显示。所以,显示一行汉字的流程如图 2- 31。

4.实验接线及思路

4.1实验接线介绍

        根据实验要求得知,需要在红外热感应传感器输出值在不同的情况下, 数码管LCD显示屏显示出不同的信息。其中红外热感应传感器LHI958范围内有人体温度变化时,传感器输出信号经过放大电路和比较电路后输出一高电平信号。将这一信号通过可编程并行接口8255传递到8086系统内部,配合定时器8254,从而实现实验要求的具体功能。实验原理图如图 4- 1:

接线如下:

数码管 D7~D0 <--------->8255 PB7~PB0

数码管位选 S3/S2 <--------->GND

LCD D7~D0 <--------->8255 PA7~PA0

LCD DI/RW/E <--------->8255 PC0/PC1/PC2

红外模块输出 <--------->8255 PC4

时钟输出 <--------->8255 PC5

光敏电阻输出 <--------->8255 PC6

4.2实验编程思路

        根据实验基本要求以及现有代码模板可知,总共需要通过编程完成三个状态:

状态 1:红外热感应传感器输出低电平时,数码管显示“FF”且 LCD 显示 “无遮挡物”状态,对应模板程序段 aa;

状态 2:红外热感应传感器输出高电平时,数码管显示“00”且LCD显示 “有遮挡物”状态,对应模板程序段 bb;

状态 3:当LCD显示“有遮挡物”时,保持该状态十秒的状态,对应模板程序段 cc。

        因此我们只需要将每一段程序进行完善补充,对8254,8255等模块正确初始化和使用,就可以实现基本要求。故程序最开始就应该配置好8255每个端口的工作方式。 根据实验原理图以及上述 8255 的端口划分,我们应将8255的PA0~PA7、PB0~PB7、PC0~PC3设置为输出,PC4~PC7 设置为输出。紧接着 aa 程序段 LCD 显示“无遮挡物”以及数码管显示“FF”,接下来 bb 程序段用来检测红外热感应 传感器是否出现有效输出,若没有则跳转至aa,继续执行状态1;反之,则执行 状态2即LCD显示“有遮挡物”,数码管显示“00”;紧接着就要使用到定时器 55 了,由于实验箱只提供 1MHZ 以上频率 的时钟,如果直接用它来进行定时10s, 计数初值为10^7,而8086允许的操作数最多16位,已经严重超出,所以不能直接定时,需要使用8254的计数器0将1MHZ的输入时钟频率进行分频,如1KHZ, 将它输出到8254定时器的计数器1的输入,这样就可以使8254的计数器 1 进行10s的定时。 而cc程序段即状态3就是在这10s没结束时,一直循环检测计数器,直到10s结束,计数器输出高电平,才会再回到初始状态 1。如此便设计完成具有完整功能的红外热感应传感器系统。

        引入光敏电阻模块,同时加入了一个新的状态“黑夜有人!!!!”,即在原有状态不变的情况下,改变代码逻辑,首先先进行光源检测, 若白天的情景下(光敏电阻输出 1),输出不变,即在红外热感应传感器产生有效输出时,输出“有遮挡物”的状态,没有有效输出时,保持“无遮挡物”状态。在夜晚的情景下(光敏电阻输出0),输出发生变化,即在红外热感应传感器检测到有人经过时,输出“黑夜有人!!!!”状态,在没有检测到人的情况下,显示“无遮挡物”。

        感谢北京科技大学微机原理课程组对本次课设和博客的帮助。 

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值