1、摘 要随着科技的迅速发展,单片机的应用逐渐广泛,已经融入到了我们的生活,几乎在每个领域都会涉及到单片机。例如计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,自动控制领域的机器人、智能仪表、医疗器械以及各种智慧机械,都离不开单片机。本文主要介绍了一个基于89S51单片机的测温系统,详细描述了利用数字温湿度传感器SHT10开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,特别是数字温湿度传感器SHT10的数据采集过程。对
2、各部分的电路也一一进行了介绍,该系统可以方便的实现实现温度采集和显示,使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。SHT10与AT89S51结合实现最简温湿度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。关键词: 单片机 SHT10 温湿度传感器 AT89S51 目 录 概述1绪论.1.1 课程设计的意义.1.2 本设计的基本要求.2 系统设计方案.2.1 系统总体方案设计.2.2 系统主要器件选择及依据.2.2.
3、1单片机AT89C51.2.2.2时钟芯片DS1302.2.2.3温湿度传感器芯片SHT10.2.2.4数码管驱动及键盘控制芯片CH451.2.2.5 LCD液晶显示模块12232F.2.2.6存储器24C02.3系统硬件设计.3.1 系统结构总框图.3.2 单片机整体结构.3.3 硬件设计.3.3.1时钟显示模块.3.3.2温湿度控制模块.3.3.3数码管驱动及键盘显示.3.3.4 LCD显示模块.3.3.5存储器24C02.4 系统软件设计.4.1 系统主程序流程图.4.2 系统子程序流程图.4.2.1 LCD显示4.2.2定时中断跑马灯.4.2.3外中断流水灯.4.2.4存储器读写记录.
4、4.2.5蜂鸣器模块.4.2.6 温湿度显示.4.2.7 键盘段码显示控制.5 总结.致谢参考文献附录A附录B1 概述1.1 课程设计的意义 本次课程设计是在我们学过单片机后的一次实习,这次实习意义重大,可增加我们的动手能力,让我们把在单片机课程上学习到的东西应用到实践当中,了解到单片机真正的用途。本课程设计由两个人共同完成,在锻炼了自己的同时也增强了自己的团队意识和团队合作精神,我们体会到了分工和合作的重要性。1.2 本设计的基本要求1.实时显示室内的温度和湿度,显示年、月、日、星期、时、分、秒2.能够通过键盘输入日期和时间的初值3.能够通过功能键实现数据储存、查询、上传(串行通讯)功能4.
5、能够通过功能键实现外中断和定时中断功能2系统设计方案2.1系统总体方案设计根据上述设计要求,该系统的硬件设计应充分考虑性价比,用最少的器件设计出满足要求的硬件电路。系统的总体设计框图如1-1所示。主要包括电源模块、CPU模块AT89C51、LCD液晶显示模块、键盘及数码管显示模块、外部内存模块、串行口模块、温湿度模块等部分组成。系统的框架如图1-1所示。电源模块CPU模块AT89C51外部内存模块串行口模块LCD液晶显示模块温湿度模块键盘及数码管显示模块图1-1系统整体图系统程序开始运行之后,CPU通过功能键选择操作不同的功能。CPU开启外部中断1,将按键产生的低电平作为外部中断1的触发电平,
6、在CPU模块中对按键的值进行接收与判断。当判断是按键为A时,触发了LCD液晶显示模块,在LCD上显示时间;当判断是按键为9时,出发了外部存储模块,进行数据(温湿度及时间)的存储;当判断按键为C时,触发的是外部内存模块以及串行口模块,外部内存与CPU中的内存相连,当判断按键为E时,触发的是CPU内部的定时器模块产生定时功能;当按键为D时,触发的是温湿度模块以及LCD模块,将温湿度显示在LCD上。 2.2系统主要器件选型及依据2.2.1单片机AT89C51单片机是把组成的微机的各种部件:CPU、存储器、输入输出接口电路、定时计数器等,制作在一块芯片上,构成一个完整的微型计算机。自1976年开始,由
7、Inter公司相继推出的MCS-48,MCS-51,MCS-96三大系列单片机,根据实验所需,择优选取,具体信息如下:1.MCS-48系列单片机是一个40引脚的大规模集成电路,其芯片内部集成有: 8位CPU; 1K字节程序存储器; 64字节数据存储器; 一个8位的定时计数器; 4K字节片外程序存储空间; 256字节片外数据存储空间; 27根输入输出线;表1-1 MCS-48系列单片机及其特性型号片内存储器(字节)I/O口线定时/计数器片外寻址空间(字节)程序数据程序数据80481K ROM64RAM271个8位4K25687481K EPROM64RAM271个8位4K2568035无64RA
8、M271个8位4K25680492K ROM128RAM271个8位4K25687492K EPROM128RAM271个8位4K2568039无128RAM271个8位4K25680504K ROM256RAM271个8位4K25687504K EPROM256RAM271个8位4K2568040无256RAM271个8位4K2562.MCS-51系列,这是一种高性能8位单片机。和MCS-48相比,MCS-51单片机无论在片内程序存储器、数据存储器、输入/输出功能、种类和数量上还是在系统的扩展功能,指令系统的功能等方面都有很大的加强,其典型产品为8051,其封装仍为40引脚,芯片内部集成有:
9、8位CPU; 4K字节程序存储器; 256字节数据存储器; 64K字节片外程序存储空间; 64K字节片外数据存储空间; 32根输入输出线;1个全双工异步串行口;2个16位定时/计数器;5个中断源,2个优先级;表1-2 MCS-51 系列单片机及其特性型号片内存储器(字节)I/O口线定时/计数器片外寻址空间(字节)串行通信程序数据程序数据80514K ROM128RAM322个16位64K64KUART87514K EPROM128RAM322个16位64K64KUART8031无128RAM322个16位64K64KUART80C514K ROM128RAM322个16位64K64KUART8
10、0C31无128RAM322个16位64K64KUART80528K ROM256RAM322个16位64K64KUART8032无256RAM322个16位64K64KUART80444K ROM192RAM322个16位64K64KSDLC87444K EPROM192RAM322个16位64K64KSDLC8344无192RAM322个16位64K64KSDLC3.MCS-96系列单片机采用多累加器和“流水线作业”的系统结构,其最显著特点是运算精度高,速度快。典型产品8397,其芯片内集成有:16位CPU; 8K字节程序存储器; 232字节寄存器文件; 具有8路采样保持的10位A/D转换
11、器; 40根输入输出线; 专用的串行口波特率发生器;全双工串行口;2个16位定时/计数器;4个16位软件定时器;20个中断源; 高速输入/输出子系统; 16位监视定时器;表1-3 MCS-96 系列单片机及其特性型号片内存储器(字节)I/O口线定时/计数器片外寻址空间串行通信A/D转换程序数据8094无232B322个16位64KUART无8795无232B322个16位64KUART4路10位8096无232B482个16位64KUART无8097无232B482个16位64KUART4路10位83948KB232B322个16位64KUART无83958KB232B322个16位64KUA
12、RT4路10位83968KB232B482个16位64KUART无83978KB232B482个16位64KUART4路10位 目前由于低档的8位单片机在性能价格比上没有明显优势,已经被高档8位单片机所替代。16位单片机虽然早已推出,但因为价格偏高等原因,应用不够广泛。MCS-51系列单片机尤为我国工程技术人员所推崇,也是符合实验的最佳首选。2.2.2时钟芯片DS13022.4.1 DS1302 简介DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实
13、时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.55.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。DS1302的外部引脚分配如图1所示及内部结构如图2所示。DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。图2-7 DS1302的外部引脚分配各引脚的功能为: Vcc1:主电源;Vcc2:备份电源。当Vcc2Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2 Vcc1时,由Vcc1
14、向DS1302供电。 SCLK:串行时钟,输入,控制数据的输入与输出; I/O:三线接口时的双向数据线; CE:输入信号,在读、写数据期间,必须为高。该引脚有两个功能:第一,CE开始控制字访问移位寄存器的控制逻辑;其次,CE提供结束单字节或多字节数据传输的方法。 DS1302有下列几组寄存器: DS1302有关日历、时间的寄存器共有12个,其中有7个寄存器(读时81h8Dh,写时80h8Ch),存放的数据格式为BCD码形式,如图3所示。 图2-8 DS1302有关日历、时间的寄存器小时寄存器(85h、84h)的位7用于定义DS1302是运行于12小时模式还是24小时模式。当为高时,选择12小时
15、模式。在12小时模式时,位5是,当为1时,表示PM。在24小时模式时,位5是第二个10小时位。秒寄存器(81h、80h)的位7定义为时钟暂停标志(CH)。当该位置为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位置为0时,时钟开始运行。控制寄存器(8Fh、8Eh)的位7是写保护位(WP),其它7位均置为0。在任何的对时钟和RAM的写操作之前,WP位必须为0。当WP位为1时,写保护位防止对任一寄存器的写操作。 2.4.2 读写时序说明DS1302是SPI总线驱动方式。它不仅要向寄存器写入控制字,还需要读取相应寄存器的数据。要想与DS1302通信,首先要先了解DS1302的控制字。DS13
16、02的控制字如图6。图2-9 控制字(即地址及命令字节) 控制字的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中。位6:如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1(A4A0):指示操作单元的地址; 位0(最低有效位):如为0,表示要进行写操作,为1表示进行读操作。控制字总是从最低位开始输出。在控制字指令输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从最低位(0位)开始。同样,在紧跟8位的控制字指令后的下一个SCLK脉冲的下降沿,读出DS1302的数据,读出的数据也是从最低位到最高位。数据读写时序如图7 。图2-10
17、 数据读写时序2.2.3温湿度传感器芯片SHT10SHTxx 系列产品是一款高度集成的温湿度传感器芯片,提供全标的数字输出 。它采用专利CMOSens 技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电容性聚合体测湿敏感元件、一个用能隙材料制成的测温元件,并在同一芯片上,与 14 位的 A/D 转换器以及串行接口电路实现无缝连接。因此,该产品具有品质卓越、超快响应、抗干扰能力强、极高的性价比等优点。每个传感器芯片都在极为精确的湿度腔室中进行标定,以镜面冷凝式湿度计为参照。校准系数以程序形式储存在 OTP内存中,在标定的过程中使用。两线制的串行接口与内部的电压调整,使外围系统集成
18、变得快速而简单。微小的体积、极低的功耗,使其成为各类应用的首选。产品提供表面贴片 LCC 或 4 针单排引脚封装。特殊封装形式可根据用户需求而提供。2.3.1接口说明图2-4 典型电路(1)电源引脚SHTxx 的供电电压为 2.45.5V。传感器上电后,要等待 11ms 以越过“休眠”状态。在此期间无需发送任何指令。电源引脚(VDD,GND)之间可增加一个 100nF 的电容,用以去耦滤波。(2) 串行接口 (两线双向)SHTxx 的串行接口,在传感器信号的读取及电源损耗方面,都做了优化处理;但与 I2C 接口不兼容,详见 FAQ。串行时钟输入 (SCK)SCK 用于微处理器与 SHTxx 之
19、间的通讯同步。由于接口包含了完全静态逻辑,因而不存在最小 SCK 频率。串行数据 (DATA)DATA 三态门用于数据的读取。DATA 在 SCK 时钟下降沿之后改变状态,并仅在 SCK 时钟上升沿有效。数据传输期间,在 SCK 时钟高电平时,DATA必须保持稳定。为避免信号冲突,微处理器应驱动DATA 在低电平。需要一个外部的上拉电阻(例如:10k)将信号提拉至高电平(参见图 2)。上拉电阻通常已包含在微处理器的 I/O 电路中。详细的 IO特性,参见表 5。 发送命令用一组“ 启动传输”时序,来表示数据传输的初始化。它包括:当 SCK 时钟高电平时 DATA 翻转为低电平,紧接着 SCK
20、变为低电平,随后是在 SCK 时钟高电平时 DATA翻转为高电平。图2-5 “启动传输”时序后续命令包含三个地址位(目前只支持“000”),和五个命令位。SHTxx 会以下述方式表示已正确地接收到指令:在第 8 个 SCK 时钟的下降沿之后,将DATA 下拉为低电平(ACK 位)。在第 9 个 SCK 时钟的下降沿之后,释放 DATA(恢复高电平)。测量时序(RH 和 T)发布一组测量命令 ( 00000101 表示相对湿度RH,00000011表示温度 T)后,控制器要等待测量结束。这个过程需要大约 11/55/210ms,分别对应 8/12/14bit 测量。确切的时间随内部晶振速度,最多
21、有15%变化。SHTxx 通过下拉 DATA 至低电平,表示测量的结束。控制器在触发 SCK 时钟前,必须等待这个“数据备妥”信号。接着传输 2 个字节的测量数据和 1 个字节的 CRC 奇偶校验。uC 需要通过下拉 DATA 为低电平,以确认每个字节。所有的数据从 MSB 开始,右值有效(例如:对于 12bit 数据,从第 5 个 SCK 时钟起算作MSB; 而对于 8bit 数据 , 首字节则无意义 )。用 CRC 数据的确认位,表明通讯结束。如果不使用CRC-8 校验,控制器可以在测量值 LSB 后,通过保持确认位ack 高 电 平,来中止通讯。在测量和通讯结束后,SHTxx自动转入休眠
22、模式。通讯复位时序如果与 SHTxx 通讯中断,下列信号时序可以复位串口:当 DATA 保持高电平时,触发 SCK 时钟 9 次或更多。在下一次指令前,发送一个“传输启动”时序。这些时序只复位串口,状态寄存器内容仍然保留。图2-6 通讯复位时序2.2.4数码管驱动及键盘控制芯片CH451CH451 是一个整合了数码管显示驱动和键盘扫描控制以及P 监控的多功能外围芯片。CH451 内置RC振荡电路,可以动态驱动8位数码管或者64位LED,具有BCD译码、闪烁、移位等功能;同时还可以进行64 键的键盘扫描;CH451 通过可以级联的串行接口与单片机等交换数据;并且提供上电复位和看门狗等监控功能。2
23、.2.1、功能说明(1)显示驱动CH451对数码管和发光管采用动态扫描驱动,顺序为DIG0 至DIG7,当其中一个引脚吸入电流时,其它引脚则不吸入电流。CH451内部具有大电流驱动级可以直接驱动0.5 英寸至2英寸的共阴数码管,段驱动引脚SEG6SEG0 分别对应数码管的段G段A,段驱动引脚SEG7 对应数码管的小数点,字驱动引脚DIG7DIG0 分别连接8 个数码管的阴极;CH451 也可以连接88 矩阵的发光二级管LED阵列或者64 个独立发光管;CH451 还可以通过外接反相驱动器支持共阳数码管,或者外接大功率管支持大尺寸的数码管。CH451内部具有8 个8 位的数据寄存器,用于保存8
24、个字数据,分别对应于CH451所驱动的8个数码管或者8 组每组8 个的发光二极管。CH451支持数据寄存器中的字数据左移、右移、左循环、右循环,并且支持各数码管的独立闪烁控制,在字数据左右移动或者左右循环移动的过程中,闪烁控制的属性不会随数据移动。(2)键盘扫描CH451 的键盘扫描功能支持88 矩阵的64 键键盘。在键盘扫描期间,DIG7DIG0 引脚用于列扫描输出,SEG7SEG0 引脚都带有内部下拉电阻,用于行扫描输入;当启用键盘扫描功能后,DOUT引脚的功能由串行接口的数据输出变为键盘中断以及数据输出。CH451 定期在显示驱动扫描过程中插入键盘扫描。在键盘扫描期间,DIG7DIG0
25、引脚按照DIG0至DIG7 的顺序依次输出高电平,其余7个引脚输出低电平;SEG7SEG0引脚的输出被禁止,当没有键被按下时,SEG7SEG0都被下拉为低电平;当有键被按下时,例如连接DIG3与SEG4的键被按下,则当DIG3输出高电平时SEG4 检测到高电平;为了防止因为按键抖动或者外界干扰而产生误码,CH451实行两次扫描,只有当两次键盘扫描的结果相同时,按键才会被确认有效。如果CH451检测到有效的按键,则记录下该按键代码,并通过DOUT 引脚产生低电平有效的键盘中断,此时单片机可以通过串行接口读取按键代码;在没有检测到新的有效按键之前,CH451 不再产生任何键盘中断。CH451 不支
26、持组合键,也就是说,同一时刻,不能有两个或者更多的键被按下;如果多个键同时按下,那么按键代码较小的按键优先。2.2.2串行接口CH451具有硬件实现的高速4 线串行接口,包括4个信号线:串行数据输入线DIN、串行数据时钟线DCLK、串行数据加载线LOAD、串行数据输出线DOUT。其中,DIN、DCLK、LOAD 是带上拉的输入信号线,默认是高电平;DOUT 在未启用键盘扫描功能时作为串行数据输出线,在启用键盘扫描功能后作为键盘中断和数据输出线,默认是高电平。DIN 用于提供串行数据,高电平表示位数据1,低电平表示位数据0,串行数据输入的顺序是低位在前,高位在后。另外,在CH451 上电复位后,
27、单片机必须在DCLK 输出串行时钟之前,先在DIN上输出一个低电平脉冲(由高电平变为低电平再恢复为高电平),通知CH451 使能4 线串行接口。DCLK用于提供串行时钟,CH451在其上升沿从DIN 输入数据,在其下降沿从DOUT 输出数据。CH451内部具有12 位移位寄存器,在DCLK的上升沿,DIN上的位数据被移入移位寄存器的最高位寄存器,以此类推,原次低位数据移入最低位寄存器,在该上升沿后的第一个下降沿,原次低位数据从DOUT输出。CH451 允许DCLK 引脚的串行时钟频率大于10MHz,从而可以实现高速串行输入输出。LOAD用于加载串行数据,CH451在其上升沿加载移位寄存器中的1
28、2 位数据,作为操作命令分析并处理。也就是说,LOAD的上升沿是串行数据帧的帧完成标志,此时无论移位寄存器中的12 位数据是否有效,CH451 都会将其当作操作命令。由于CH451 只在LOAD 的上升沿加载命令数据并处理,所以单片机不能将LOAD 信号线用于其它用途,但是DIN 和DCLK 可以用于其它用途。当单片机I/O 引脚资源紧张时,CH451 只需要独占使用LOAD 信号线,DIN 和DCLK 信号线可以与其它接口电路共用。单片机向CH451 输出串行数据的过程是(不是唯一的过程,可以有很多变化): 输出一位数据,即向DIN输出最低位数据B0,并向DCLK输出低电平脉冲(从高电平变为
29、低电平再恢复为高电平),其中包括一个上升沿使CH451 输入位数据; 以同样的方式,输出位数据B1B11; 向LOAD 输出低电平脉冲,其中包括一个上升沿使CH451 加载串行数据。在本说明书中,将以B0B1B2B3B4B5B6B7B8B9B10B11作为上述过程的简化描述,其中,代表DCLK 的上升沿,代表LOAD 的上升沿,B0B11分别代表1 位数据,如果是字符0 或1则对应DIN 输入的位数据,如果是字符L 或H 则对应DOUT 输出的位数据0 或1。例如,100000000100表示向CH451 发送了一组12 位的串行数据001000000001B;1110HHLLLHH表示先向C
30、H451 发送了一组4 位的串行数据0111B,然后接收了一组7 位的串行数据1100011B。在未启用键盘扫描功能时,DOUT用于输出串行数据,移位寄存器中的最低位数据总是在DCLK 的下降沿出现在DOUT 引脚。CH451 支持无限制的级联,只要3 根信号线就可以连接多个CH451 芯片。其中,所有CH451 的DCLK 并联后连接单片机的DCLK 输出,所有CH451 的LOAD 并联后连接单片机的LOAD 输出,后级CH451 的DIN 连接前级CH451 的DOUT 输出,最前级CH451 的DIN 连接单片机的DIN输出。级联电路中,单片机每次输出的串行数据必须是单个CH451 的
31、串行数据的位数乘以级联的级数。例如,CH451 的串行数据是12 位,如果3 个CH451 进行级联,则单片机每次输出的数据位数必须是36 位,依次是后级CH451 的命令数据、中级CH451 的命令数据、前级CH451 的命令数据。图2-1 数据发送时序图(未启用键盘扫描)如图2-1是在未启用键盘扫描功能时,单片机通过串行接口向CH451 发送12 位数据的波形示意图,数据是001000000001B,LOAD 的低电平脉冲可以更宽,图中以虚线表示。当启用键盘扫描功能后,DOUT 用于键盘中断和数据输出,默认是高电平。当CH451 检测到有效按键时,DOUT输出低电平有效的键盘中断;单片机被
32、中断后,发出读取按键代码命令,CH451在LOAD的上升沿后从DOUT输出7位按键代码的最高位;单片机继续输出串行时钟,在DCLK 的每个下降沿,CH451依次从DOUT输出7位按键代码的剩余6位,顺序是高位在前,低位在后;7位按键代码输出完毕后,无论DCLK如何变化,CH451都将DOUT恢复为默认的高电平。参考下图,单片机从CH451获得按键代码的过程是:图2-2 数据发送时序图(启用键盘扫描) 输出一位数据,即向DIN输出读取按键代码命令的最低位数据B0,并向DCLK输出低电平脉冲; 以同样的方式,输出读取按键代码命令的位数据B1B11; 向LOAD 输出低电平脉冲,其中包括一个上升沿使
33、CH451 加载串行数据,CH451 分析出是读取按键代码命令,立即在DOUT 输出按键代码的最高位数据K6; 读取一位数据,即从DOUT 输入按键代码的最高位数据K6,并向DCLK 输出低电平脉冲; 以同样的方式,输入按键代码的位数据K5K0。实际上,CH451的读取按键代码命令只有位数据B8B11 是有效的,所以单片机不必发出读取按键代码命令的B0B7。例如,按键代码是63H,则上述过程的简化描述是1110HHLLLHH,即先向CH451 发出读取按键代码命令0111xxxxxxxxB,然后从DOUT 接收按键代码1100011B。图2-2是单片机向CH451 发送命令并接收按键代码的波形
34、示意图,MCU 是指单片机的工作状态。2.2.3命令CH451的操作命令均为12位,下表列出了CH451 的各个操作命令所对应的12位串行数据。其中标注为x 的位表示该位可以是任意值;标有名称的位表示该位在CH451芯片内部具有相应的寄存器,其数据根据操作命令的不同而变化。操作命令位11位10位9位8位7位6位5位4位3位2位1位0空操作0000xxxxxxxx芯片内部复位001000000001字数据左移001100000000字数据右移001100000010字数据左循环001100000001字数据右循环001100000011设定系统参数010000000WDOGKEYBDISP设定显
35、示参数0101MODELIMITINTENSITY设定闪烁控制0110D7SD6SD5SD4SD3SD2SD1SD0S加载字数据01000DIG_DATA, DIG0 对应的字数据加载字数据11001DIG_DATA, DIG1 对应的字数据加载字数据21010DIG_DATA, DIG2 对应的字数据加载字数据31011DIG_DATA, DIG3 对应的字数据加载字数据41100DIG_DATA, DIG4 对应的字数据加载字数据51101DIG_DATA, DIG5 对应的字数据加载字数据61110DIG_DATA, DIG6 对应的字数据加载字数据71111DIG_DATA, DIG7
36、 对应的字数据读取按键代码0111xxxxxxxx图2-3 CH451操作命令(1)空操作:00xxxxxxxxB空操作命令不对CH451 产生任何影响。该命令可以在多个CH451 级联的应用中,透过前级CH451向后级CH451 发送操作命令而不影响前级的状态。例如,要将操作命令001000000001B发送给两级级联电路中的后级CH451(后级CH451 的DIN 连接前级CH451 的DOUT),只要在该命令后添加空操作命令000000000000B 再发送,100000000100000000000000,那么,该操作命令将经过前级CH451 到达后级CH451,而空操作命令留给了前级
37、CH451。另外,为了在不影响CH451的前提下变化DCLK以清除看门狗计时,也可以发送空操作命令,在非级联的应用中,空操作命令可以只发送有效数据B8B11,简化描述是0000。(2)芯片内部复位:001000000001B内部复位命令将CH451 的各个寄存器和各种参数复位到默认的状态。芯片上电时,CH451 总是被复位,此时各个寄存器均复位为0,各种参数均恢复为默认值。(3)字数据左移:001100000000B字数据左移命令将CH451 的字数据左移一次,即从DIG0 向DIG7 移动一位,然后最右边的DIG0补进数据00H。例如,在数码管DIG7DIG0 显示“87654321”时,执
38、行字数据左移命令,显示变为 “7654321 ”(不译码方式)或者“76543210”(BCD 译码方式)。(4)字数据右移:001100000010B字数据右移命令将CH451 的字数据右移一次,即从DIG7 向DIG0 移动一位,然后最左边的DIG7补进数据00H。例如,在数码管DIG7DIG0 显示“87654321”时,执行字数据右移命令,显示变为“ 8765432”(不译码方式)或者“08765432”(BCD 译码方式)。(5)字数据左循环:001100000001B字数据左循环命令将CH451 的字数据左循环一次,即从DIG0 向DIG7 移动一位,然后最右边的DIG0 补进原D
39、IG7 的数据。例如,在数码管DIG7DIG0 显示“87654321”时,执行字数据左循环命令,显示变为“76543218”。(6)字数据右循环:001100000011B字数据右循环命令将CH451 的字数据右循环一次,即从DIG7 向DIG0 移动一位,然后最左边的DIG7 补进原DIG0 的数据。例如,在数码管DIG7DIG0 显示“87654321”时,执行字数据右循环命令,显示变为“18765432”。(7)设定系统参数:010000000WDOGKEYBDISPB设定系统参数命令用于设定CH451 的系统级参数:看门狗使能WDOG,键盘扫描使能KEYB,显示驱动使能DISP。各个参数均通过1 位数据控制,将相应的数据位置为1则启用该功能,否则关闭该功能(默认值)。例如,命令数据010000000011B 表示关闭看门狗的功能、启用键盘扫描的功能、启用显示扫描驱动的功能。(8)设定显示参数:0101MODELIMITINTENSITY B设定显示参数命令用于设定CH451 的显示参数:译码方式MODE,扫描极限LIMIT,显示亮度INTENSITY。译码方式MODE通过1位数据控制,置1 时选择BCD 译码方式,置0 时选择不译码方式(默认值)。