智能仪器(第1章)_第1页
智能仪器(第1章)_第2页
智能仪器(第1章)_第3页
智能仪器(第1章)_第4页
智能仪器(第1章)_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 智能仪表和装置的内涵智能仪表和装置的内涵 仪表一般指包含有电子线路的自动化仪器。智能是指包含有智能仪表一般指包含有电子线路的自动化仪器。智能是指包含有智能部件。智能部件多数情况下都是部件。智能部件多数情况下都是“CPU”,可以实现编程控制。它能,可以实现编程控制。它能在运行中根据现场情况,实时做出相应的灵活反应。所以,智能仪表在运行中根据现场情况,实时做出相应的灵活反应。所以,智能仪表和装置可以简单的概括成:和装置可以简单的概括成:“包含有包含有CPU的自动化仪器的自动化仪器”。 本门课程的内容本门课程的内容 围绕围绕CPU系统的软件和重要硬件扩展,讲述智能仪器的设计和应用。系统的软件和重要

2、硬件扩展,讲述智能仪器的设计和应用。 具体内容安排:具体内容安排:(1)智能仪器的串行显示扩展;)智能仪器的串行显示扩展;(2)仪表状态、状态键盘、仪表框架程序设计;)仪表状态、状态键盘、仪表框架程序设计;(3)电源设计、)电源设计、C51程序设计程序设计(4)电子音乐的制作;)电子音乐的制作;(5)I2C总线扩展(总线扩展(E2PROM器件)器件)(6)嵌入式操作系统初步(进程、同步、调度、信号量、锁)嵌入式操作系统初步(进程、同步、调度、信号量、锁)(7)高端嵌入式系统硬件结构()高端嵌入式系统硬件结构(stm32)先修课程:先修课程: 要求学习过要求学习过 MCS51单片机原理单片机原理

3、 INTEL:8031,8032; atmel公司:公司:89C51,89C52; C8051系列:系列:F02x等;(兼容等;(兼容51指令,但功能大大扩展)指令,但功能大大扩展) AVR Mega系列:系列:Mega16/32/64等,其中等,其中32代表代表32k内部内部RAM. 深圳宏晶深圳宏晶 STC系列:兼容系列:兼容51指令(宏晶设计,台湾指令(宏晶设计,台湾TSMC代工生产)代工生产) STC89系列:功能与系列:功能与C52单片机类似单片机类似 STC11系列:具备高速运算能力,是系列:具备高速运算能力,是89系列系列8倍以上倍以上 STC12系列:在系列:在11系列上,增加

4、了系列上,增加了AD/DA转换或转换或PWM输出输出 后续课程:后续课程: ARM技术技术: 英国英国ARM公司设计,全球通用,如三星、公司设计,全球通用,如三星、philip等。等。 arm9: S3C2410/2440,TI/DM365,AT9260,PHI/LPC 等等 arm11: 三星公司的三星公司的S3C6410等,主频等,主频600M cortex-a8:三星:三星S5PV210,4412,TI/OMAP3530,主频,主频600M1G cortex-m3, 美美ST公司的公司的STM32系列,控制用代替系列,控制用代替8/16位位MCU; DSP技术技术: 主要是美国主要是美国

5、TI公司生产的公司生产的DSP。 TI320/2000(控制器):(控制器):2407,2812,28335; 5000系列(低功耗,仪器);系列(低功耗,仪器);6000系列(高速数字处理,多媒体)系列(高速数字处理,多媒体) 嵌入式操作系统嵌入式操作系统:LINUX,WinCE,风河,风河VxWorks,美,美uC/OS-2 手机操作系统手机操作系统: 谷歌的谷歌的android(安卓安卓),苹果的,苹果的ios。 时间安排:时间安排:(1)讲课)讲课20小时;小时;(2)实验)实验10小时(小时(45个实验:串行显示个实验:串行显示-CH451,状态键盘;电子音乐;,状态键盘;电子音乐;

6、I2C/E2PROM-24C04)(3)测验)测验2小时;小时; 实验的实验装置:实验的实验装置: 实验室有北京篮海微星科技有限公司的产品实验室有北京篮海微星科技有限公司的产品LJD-SY-5100,具体情况可,具体情况可以浏览网站以浏览网站www.ljd- 。 淘宝网有各种物廉价美的开发板和仿真器产品销售。淘宝网有各种物廉价美的开发板和仿真器产品销售。 电子器件手册查阅和检索:电子器件手册查阅和检索: http:/ 可以下载可以下载PDF格式数据手册格式数据手册 21世纪网站:世纪网站: 技术论坛技术论坛: 下载资源(评价下载资源(评价+评级,返回分),提问交流(每天评级,返回分),提问交流

7、(每天10分)分)答疑联系:答疑联系: 电话:电话:88803020; 地点地点5教教1018/1020室室 邮件:邮件:LYCNCUT.EDU.CN显示是智能仪表向外接传递信息的主要窗口,有多种显示方式。常用的显示是智能仪表向外接传递信息的主要窗口,有多种显示方式。常用的有有LED数码管显示;数码管显示;LCD液晶屏显示;前者功耗较大(百毫安左右);液晶屏显示;前者功耗较大(百毫安左右);后者省电(几十微安左右),但要交流驱动,需使用专门芯片,例如常后者省电(几十微安左右),但要交流驱动,需使用专门芯片,例如常用的字符式芯片用的字符式芯片1602,价格,价格5元以内。元以内。LED数码管显示

8、按扫描方式分有动态显示和静态显示数码管显示按扫描方式分有动态显示和静态显示2种。种。1.1 动态显示动态显示 一般需要占用一般需要占用8个段码线和个段码线和4位以上的位码线,即一般至少要占用位以上的位码线,即一般至少要占用12条以上的条以上的I/O口资源。口资源。 优点是节省芯片;但亮度可能不够,或者显示有断续的闪烁现象,优点是节省芯片;但亮度可能不够,或者显示有断续的闪烁现象,同时要占用同时要占用CPU动态扫描时间动态扫描时间。 扫描键盘与扫描显示位码通常可以合用一部分管脚,并且显示和按扫描键盘与扫描显示位码通常可以合用一部分管脚,并且显示和按键都属于人机接口部分,所以两部分功能常做在一起。

9、键都属于人机接口部分,所以两部分功能常做在一起。 1.2 静态显示静态显示 每一位数码管需要有一个芯片来驱动。优点是亮度够,每一位数码管需要有一个芯片来驱动。优点是亮度够,显示质量好;缺点是所需芯片多。显示质量好;缺点是所需芯片多。 其驱动电路一般采用多个芯片首尾相接串连而成。典其驱动电路一般采用多个芯片首尾相接串连而成。典型电路使用型电路使用移位寄存器芯片移位寄存器芯片74164。CPU将各个数码管将各个数码管的段码串行送出,再由的段码串行送出,再由74164转换成并行信号来驱动数转换成并行信号来驱动数码管。码管。 动态电路占用较多的动态电路占用较多的CPU运行时间;静态电路花费较多的器件,

10、电路板运行时间;静态电路花费较多的器件,电路板面积较大。面积较大。1.3 专用显示专用显示/键盘电路键盘电路 专用显示专用显示/键盘电路它们与键盘电路它们与CPU的接口分有并行器件和串行器件。的接口分有并行器件和串行器件。并行并行器件:需要占用较多的器件:需要占用较多的CPU的的I/O口线,例如口线,例如INTEL的的8279;串行串行器件:只需要器件:只需要23条线就可以了,所以串行器件占有优势。例如条线就可以了,所以串行器件占有优势。例如INTEL7279,串行总线的键盘显示控制芯片,串行总线的键盘显示控制芯片 CH451 1.3.1 CH451的引脚说明的引脚说明28脚。其中脚。其中8条

11、段码,条段码,8条位码;与条位码;与CPU接口用接口用4条引脚;电源、地线条引脚;电源、地线2条;晶振条;晶振2条;复位条;复位3条;段电流调整条;段电流调整1条;合计条;合计28条引脚。条引脚。CH451的引脚排列的引脚排列1.3.2功能和特点:功能和特点:可以自行动态驱动可以自行动态驱动8位位8段的数码管显示,或者段的数码管显示,或者8x864位发光指示灯。位发光指示灯。段电流可达段电流可达30毫安,字电流可达毫安,字电流可达160毫安,芯片输出电流毫安,芯片输出电流200毫安毫安;支持支持8x8按键输入;按键输入;内置看门狗电路,可以对内置看门狗电路,可以对CPU实行监控;实行监控;与与

12、CPU可以可以4线串行接口;线串行接口; 其他的辅助功能还有:其他的辅助功能还有:可选数码管显示方式为不译码方式(直接送段码)或者可选数码管显示方式为不译码方式(直接送段码)或者BCD 译码方式译码方式(送(送BCD码,码,451自己完成译码);自己完成译码);字数据可以左移、右移、左循环、右循环显示;字数据可以左移、右移、左循环、右循环显示;各数字可以独立闪烁控制;各数字可以独立闪烁控制; 通过占空比设定,提供通过占空比设定,提供16 级亮度控制;(由设定命令实现)级亮度控制;(由设定命令实现) 支持段电流上限调整,可以省去所有限流电阻;(靠支持段电流上限调整,可以省去所有限流电阻;(靠AD

13、J引脚)引脚)键盘内置去抖电路,提供按键释放标志;键盘内置去抖电路,提供按键释放标志;有键盘中断,低电平有效;有键盘中断,低电平有效; 图图1.2 CH451外部接口方块图外部接口方块图1.3.3 字符显示字符显示 段驱动引脚段驱动引脚SEG6SEG0 输出电流,经过数码管流到字输出电流,经过数码管流到字驱动引脚驱动引脚DIG7DIG0 ,当某一位,当某一位DIGi导通时,对应一导通时,对应一位数码管亮。位数码管亮。 CH451内部具有内部具有8个个8位的数据寄存器,用于保存对应于位的数据寄存器,用于保存对应于8位数码管的位数码管的8个字数据个字数据 ; CH451默认情况下工作于默认情况下工

14、作于不译码方式不译码方式,此时,单片机送给,此时,单片机送给CH451 的的8个数据寄存器中字数据就是段码;个数据寄存器中字数据就是段码; 如果指定工作在如果指定工作在译码方式译码方式下,则单片机送给下,则单片机送给CH451的就是的就是BCD码,码,CH451自己完成自己完成BCD码的译码工作。不过码的译码工作。不过BCD码只包含码只包含28个字符,要显示特殊符号时,例如个字符,要显示特殊符号时,例如“U,n”等等符号时,还是要采用软件译码方式,即送段码给符号时,还是要采用软件译码方式,即送段码给CH451。 表表1.2 CH451工作于译码方式下的字符显示工作于译码方式下的字符显示BCD码

15、码 段码段码1.3.4 按键工作原理按键工作原理 支持支持88阵列键盘。在阵列键盘。在键盘键盘扫描期间,扫描期间,DIG7DIG0引引脚用于列扫描输出,脚用于列扫描输出,SEG7SEG0引脚都带有内部下拉,引脚都带有内部下拉,用于行扫描输入。用于行扫描输入。 由于由于SEG7SEG0也是显示段码输出引脚,所以,也是显示段码输出引脚,所以, SEG7SEG0 是分时使用是分时使用的。即在检测按键输入时,停的。即在检测按键输入时,停止显示输出,这样可以节省管脚;止显示输出,这样可以节省管脚; DIG7DIG0引脚按照引脚按照DIG0至至DIG7的顺序依次输出高的顺序依次输出高电平,其余电平,其余7

16、个引脚输出低电平;当没有键被按下时;输入个引脚输出低电平;当没有键被按下时;输入SEG7SEG0都被内部下拉为低电平,检测到的是低电平;都被内部下拉为低电平,检测到的是低电平;当有键被按下时,例如连接当有键被按下时,例如连接DIG3与与SEG4交叉点的键被按交叉点的键被按下,则当下,则当DIG3输出高电平时,输出高电平时,SEG4检测到高电平;检测到高电平; 为了防止因为按键抖动或者外界干扰而产生误码,为了防止因为按键抖动或者外界干扰而产生误码,CH451实行两次扫描,只有当两次键盘扫描的结果相同实行两次扫描,只有当两次键盘扫描的结果相同时,按键才会被确认有效。时,按键才会被确认有效。 如果如

17、果CH451检测到有效的按键,则记录下该按键代码,检测到有效的按键,则记录下该按键代码,并通过并通过DOUT引脚产生低电平有效的键盘中断,此时单片引脚产生低电平有效的键盘中断,此时单片机可以通过串行接口读取按键代码;机可以通过串行接口读取按键代码; CH451所提供的按键代码为所提供的按键代码为7位,位位,位2位位0是列扫描码,是列扫描码,位位5位位3是行扫描码,位是行扫描码,位6是状态码(是状态码(键按下为键按下为1,键释,键释放为放为0)。)。 例如,连接例如,连接SEG4 与与DIG3的键被的键被按下按下,则按键代码是,则按键代码是 1 100 011B 即即63H;键被;键被释放释放后

18、,按键代码是后,按键代码是 0 100 011B 即即23H,其中,对应,其中,对应DIG3的列扫描码为的列扫描码为011 B,对应,对应SEG4的行扫描码为的行扫描码为100 B。表1.3 CH451的键盘编码表 1.3.5 CPU监控监控 (1)上电复位)上电复位 当当CH451通电或者看门狗溢出时,通电或者看门狗溢出时,RST引脚输出高电平有引脚输出高电平有效的复位脉冲信号,效的复位脉冲信号,RST#引脚输出低电平有效的复位脉引脚输出低电平有效的复位脉冲信号。冲信号。 (2)看门狗)看门狗 CH451在启用看门狗功能后,只要输入引脚在启用看门狗功能后,只要输入引脚DCLK没有信没有信号变

19、化,看门狗计时器就会计时,当计满溢出周期时,就号变化,看门狗计时器就会计时,当计满溢出周期时,就会产生看门狗复位脉冲信号。会产生看门狗复位脉冲信号。 所以所以CPU必须定时、有规律必须定时、有规律的输出的输出DCLK信号,清除看门狗计时器。所以,一旦信号,清除看门狗计时器。所以,一旦CPU工作混乱,就会被工作混乱,就会被CH451强制复位。强制复位。1.4 CH451串行接口工作原理串行接口工作原理1.4.1 串行接口与工作时序串行接口与工作时序 4根信号线:串行数据输入线根信号线:串行数据输入线DIN、串行数据时钟线、串行数据时钟线DCLK、串行数据加载线、串行数据加载线LOAD、串行数据输

20、出线、串行数据输出线DOUT。 LOAD用于加载串行数据,用于加载串行数据,CH451在其上升沿加载位移在其上升沿加载位移寄存器中的寄存器中的12位数据,作为操作命令分析并处理。也就位数据,作为操作命令分析并处理。也就是说,是说,LOAD的上升沿是串行数据帧的帧完成标志的上升沿是串行数据帧的帧完成标志,此时,此时无论位移寄存器的无论位移寄存器的12位数据是否有效,位数据是否有效,CH451都会将其都会将其当作操作命令。当作操作命令。 时序图:时序图: DCLK用于提供数据同步的串行时钟,用于提供数据同步的串行时钟,CH451在其在其上升上升沿沿从从DIN输入输入数据,在其数据,在其下降沿下降沿

21、从从DOUT输出输出数据。数据。 串行数据输入串行数据输入/输出的顺序是输出的顺序是低位在前,高位在后。低位在前,高位在后。 单片机通过串行接口向单片机通过串行接口向CH451发送发送12位数据位数据0010 0000 0001 B的时序图的时序图 低位在前发送:低位在前发送:0 0 1 0 0 0 0 0 0 0 0 1 单片机从单片机从CH451获取按键代码的过程:获取按键代码的过程:(1)CPU向向DIN输出读取按键代码的命令输出读取按键代码的命令 命令为:命令为:7*H 由于由于CH451并不关心并不关心*的值,所以,只的值,所以,只 需要传递需要传递7,即,即4比特比特 0111B就

22、可以了。就可以了。(2) 向向LOAD输出低电平脉冲,其中包括一个上升沿使输出低电平脉冲,其中包括一个上升沿使CH451加载串行数据,加载串行数据,CH451接受并判别是读取按键命接受并判别是读取按键命令后,立即在令后,立即在DOUT输出按键代码;输出按键代码;(3) 然后,然后,CPU按位读取按位读取7位数据;位数据; 由于命令是低位在前,数字由于命令是低位在前,数字7在最后,而最后的判别标志是在最后,而最后的判别标志是load信号,所以,可以仅仅只发数字信号,所以,可以仅仅只发数字7后就发出后就发出load信号,信号,低低8位会是原有的随机数。位会是原有的随机数。CH451在时钟在时钟DC

23、LK下降沿从下降沿从DOUT输出数据输出数据 load下降沿也可提前开始下降沿也可提前开始 接受命令输出按键输出按键 1.4.2 CH451的操作命令(的操作命令(12位操作数)位操作数) CH451的操作命令均为的操作命令均为12位,表位,表1.4中列出了中列出了CH451各个操作命令所对应的各个操作命令所对应的12位串行数据,其中位串行数据,其中高高4位为标识位为标识码码,低低8位为参数位为参数,标注为,标注为X的位表示该位为任意值,标的位表示该位为任意值,标有名称的位表示该位在有名称的位表示该位在CH451芯片内部具有相应的寄存芯片内部具有相应的寄存器,其数据根据操作命令的不同而变化。器

24、,其数据根据操作命令的不同而变化。主要操作功能和命令字如下:主要操作功能和命令字如下: 空操作:空操作: 0*H 芯片内部复位:芯片内部复位: 201H 字数据左字数据左/右移位:右移位: 300H/ 302H 左左/右循环移位:右循环移位: 301H/ 303H 设定系统参数设定系统参数格式:格式:WDOGKEYBDISP 看门狗使能看门狗使能WDOG、键盘扫描使能、键盘扫描使能KEYB、显示驱动使能、显示驱动使能DISP。各个参。各个参数均可通过数均可通过1位数据来进行控制,将相应的数据位置为位数据来进行控制,将相应的数据位置为1可启用可启用该功能,该功能,否则关闭该功能(默认值)。否则关

25、闭该功能(默认值)。 设定显示参数设定显示参数 0101 MODE LIMIT INTENSITY 译码方式译码方式MODE( 1位:位:1-译码,译码,0-不译码)不译码) 扫描极限扫描极限LIMIT(3位,代表要显示的数码管位数位,代表要显示的数码管位数1-8位:位:000-111 ) 显示亮度显示亮度INTENSITY(4位,位,16级,代表级,代表显示时间的占空比显示时间的占空比,0000代表占空比为代表占空比为0,亮度等级最高,一般应用取为,亮度等级最高,一般应用取为0) 。 设定闪烁控制设定闪烁控制 指定某一位数字闪烁指定某一位数字闪烁 01108bit, 0110代表命令字代表命

26、令字 8比特中每一比特,代表对应位数字是否要闪烁比特中每一比特,代表对应位数字是否要闪烁 (1-闪,闪,0-不闪)不闪) 加载字数据(送显示):加载字数据(送显示): 格式:格式:1 DIGADDRDIGDATA B 加载字数据命令用于将字节数据加载字数据命令用于将字节数据DIGDATA(位位)写入写入DIGADDR(3位位)指定的数据寄存器中。)指定的数据寄存器中。 DIGADDR: 000B111B指定数据寄存器的地址指定数据寄存器的地址07,并分别对应于,并分别对应于DIG0DIG7引脚驱动的引脚驱动的8个数码管。个数码管。 DIGDATA:为待写入的字节数据(即段码或:为待写入的字节数

27、据(即段码或BCD码)。码)。 例如:例如: 命令数据:命令数据: 1 000 0111 1001 B 表示将字数据表示将字数据79H写入第写入第1个数据寄存器,如果是不译码方式,则个数据寄存器,如果是不译码方式,则DIG0引引脚驱动的数码管显示脚驱动的数码管显示E;(段码顺序:;(段码顺序:pgfedcba) 命令数据:命令数据: 1 100 1000 1000 B 表示将数据表示将数据88H写入第写入第5个数据寄存器个数据寄存器 读取按键代码:读取按键代码:0111B 读取按键代码命令用于获得读取按键代码命令用于获得CH451最近检测到的有效按键的按键代码。最近检测到的有效按键的按键代码。

28、 CH451通常从通常从DOUT引脚输出按键代码,按键代码总是引脚输出按键代码,按键代码总是7位数据,最位数据,最高位是状态码,位高位是状态码,位5位位0是行是行/列扫描码。列扫描码。(位位6:状态码(:状态码(1-按下,按下, 0-释放)释放) 位位53:行扫描码:行扫描码 位位20:列扫描码):列扫描码) 读取按键代码命令的位数据读取按键代码命令的位数据Bit7Bit0可以是任意值,所以控制器可以是任意值,所以控制器可以将该操作命令缩短为可以将该操作命令缩短为4位数据位数据Bit11Bit8。例如,。例如,CH451检测到检测到有效按键并中断时,则先向有效按键并中断时,则先向CH451发出

29、读取按键代码命令发出读取按键代码命令0111B,然,然后再从后再从DOUT获得按键代码。获得按键代码。CPU与与CH451接口电路接口电路数码显示管与数码显示管与CH451接口电路接口电路8X8键键盘盘与与CH451接接口口电电路路;需要主程序定义的参数需要主程序定义的参数LOAD BIT P1.2 ;串行命令加载,上升沿激活;串行命令加载,上升沿激活DIN BIT P1.0 ;串行数据输出,接;串行数据输出,接CH451的数据输入的数据输入DCLK BIT P1.1 ;串行数据时钟,上升沿激活;串行数据时钟,上升沿激活DOUT BIT P3.3 ;INT1,键盘中断和键值数据输入,键盘中断和

30、键值数据输入, ; 接接CH451的数据输出的数据输出KEY DATA 45H ;存放键盘中断中读取的键值;存放键盘中断中读取的键值;* ; CPU和和451的初始化子程序的初始化子程序;-CH451_INIT: ;-初始化子程序初始化子程序 CLR DIN ; “先低先低” 产生一个下跳脉冲(复位时高)产生一个下跳脉冲(复位时高) SETB DCLK ; 置为默认的高电平置为默认的高电平 SETB DIN ; “后高后高”,选,选CH451为为4线串行接口线串行接口 SETB LOAD ;- SETB DOUT ;置置8031的对应的对应PIN为输入为输入,(CH451为输出为输出) CLR

31、 IT1 ; 置外部信号为低电平触发置外部信号为低电平触发 CLR IE1 ; 清中断标志清中断标志 SETB PX1 ; 置外部中断置外部中断1为高优先级为高优先级 SETB EX1 ; 允许键盘中断允许键盘中断 SETB EA ;开总中断开总中断 RET;*;发送命令到发送命令到451的子程序的子程序;入口入口: BACC中待写的中待写的12位数据,低位数据,低8位在位在A中,高中,高4位在位在B的低的低4位中位中;使用寄存器使用寄存器: ACC, B, R7;特别说明特别说明:访问:访问451,不可以重入不可以重入;-WRITE: PUSH ACC ;保护保护ACC的值的值 CLR EX

32、1 ;禁止键盘中断(禁止键盘中断(互斥互斥) CLR LOAD ;一帧命令准备开始一帧命令准备开始 MOV R7,#08H ;先将先将ACC中的中的8位送出位送出WRITE_8: RRC A ;低位在前,高位在后低位在前,高位在后 CLR DCLK MOV DIN,C ;送出一位数据送出一位数据 SETB DCLK ;上升沿通知上升沿通知CH451输入位数据输入位数据 DJNZ R7,WRITE_8 ;位数据未完,继续位数据未完,继续 MOV A,B MOV R7,#04H ; 再将再将B中的中的4位数据送出位数据送出 WRITE_4: RRC A ;低位在前,高位在后低位在前,高位在后 CL

33、R DCLK MOV DIN,C ; 送出一位数据送出一位数据 SETB DCLK ; 上升沿通知上升沿通知CH451输入位数据输入位数据 DJNZ R7,WRITE_4 ; 位数据未完继续位数据未完继续 SETB LOAD ; 产生帧结束信号,通知产生帧结束信号,通知CH451处理命令数据处理命令数据 SETB EX1 ; 准许键盘中断(撤销互斥)准许键盘中断(撤销互斥) POP ACC ; 恢复恢复ACC原数据原数据 RET ; 读取键值子程序读取键值子程序; 出口出口: ACC=键值数据键值数据; 使用使用: ACC, R7; 说明:读键的命令,只需要说明:读键的命令,只需要4比特比特;

34、 按键为低位的按键为低位的4*4=16个按键个按键;-READ: CLR EX1 ; 禁止键盘中断(互斥)禁止键盘中断(互斥) CLR LOAD ;一帧命令准备开始一帧命令准备开始 MOV A,#07H ; 读键值命令的高读键值命令的高4位位0111B MOV R7,#04H ; 忽略忽略12位命令的低位命令的低8位位READ_4: RRC A ; 低位在前,高位在后低位在前,高位在后 CLR DCLK ; MOV DIN,C ; 送出一位数据送出一位数据 SETB DCLK ; 上升沿通知上升沿通知CH451输入位数据输入位数据 DJNZ R7, READ_4 ; 4位数据未完继续位数据未完

35、继续 SETB LOAD ; 一帧命令结束,加载上升沿通知一帧命令结束,加载上升沿通知 ; CH451处理命令数据处理命令数据CLR A ; 先清键值单元以便移位先清键值单元以便移位 MOV R7,#07H ; 准备读入准备读入7位键值位键值READ_7: MOV C, DOUT ; 从从451读入一位数据到进位位读入一位数据到进位位C CLR DCLK ; 产生时钟下降沿通知产生时钟下降沿通知 ; CH451输出下一位数据输出下一位数据 RLC A ; 数据移入数据移入ACC,高位在前,低位在后,高位在前,低位在后 SETB DCLK DJNZ R7,READ_7 ; 数据未完继续数据未完继

36、续 CLR C SUBB A,#40H ; 键码键码4043需需减去减去#40h,得,得 03 ; 键码键码484B需需减去减去#44h,得,得 47 ; 键码键码5053需需减去减去#48h,得,得 8C ; 键码键码585B需需减去减去#4Ch,得,得 CF ;为显示全部键值,此处程序需修改为显示全部键值,此处程序需修改 MOV KEY,A ; 保存键值保存键值 CLR IE1 ; 清中断标志,读操作过程中,因为键盘抖动,清中断标志,读操作过程中,因为键盘抖动, ; 可能还有低电平中断脉冲可能还有低电平中断脉冲 SETB EX1 ; 准许键盘中断(撤销互斥)准许键盘中断(撤销互斥) RET

37、 CH451测试程序:测试程序:CH4518位数码管位数码管44键盘;不按键时,轮显键盘;不按键时,轮显0F;按键显示相应的键;按键显示相应的键符。键编码表如表符。键编码表如表1.5所示所示。程序如下:程序如下:;*LOAD BIT P1.2 DIN BIT P1.0DCLK BIT P1.1 DOUT BIT P3.3 ;* KEY DATA 045H TIMER DATA 030H TIMER1 DATA 031H TIMER2 DATA 032H TIMER3 DATA 033H;* ORG 0000H JMP START ORG 0013H LJMP CH451_INT1 ; 外部中断外部中断1 ORG 080H START: MOV SP,#60H ; 复位时复位时SP=07H MOV P1,#60H ;禁止禁止P1口上其它芯片口上其它芯片 CLR DIN ;输出下跳脉冲,先低输出下跳脉冲,先低 SETB DCLK ; (等待(等待1拍)拍) SETB DIN ;后高,选择后高,选择CH451

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论