这时,不管采用40引脚还是44引脚的产品,只要用一样引脚的AT89C51单片机取代80C51的单片机即可3)静态时钟方式AT89C51单片机采用静态时钟方式,所以可以节省电能这对于降低便携式 产品的功耗十分有用4) 错误编程亦无废品产生一般的OTP产品,一旦错误编程就成了废品而AT89C51单片机部采用了 Flash 存储器,所以,错误编程之后仍可以重新编程,直到正确为止,故不存在废品5) 可反复进行系统试验用AT89C51单片机设计的系统,可以反复进行系统试验每次试验可以编入不 同的程序,这样可以保证用户的系统设计达到最优而且随用户的需要和发展, 还可以进行修改,使系统能不断追随用户的最新要求6) 性价比相对较高现在市场上较为流行的几中品牌的单片机芯片中ATMEL公司的AT89C51单片机 芯片的功能能够满足一般用户的要求,而价格较同类产品相比较低3.1.2 AT89C51单片机结构简介AT89C51单片机的部结构和80C51相近,主要含有如下一些部件:① 803l CPU② 振荡电路③ 总线控制部件④ 中断控制部件⑤ 片Flash存储器⑥ 片RAM⑦ 并行I/O接口⑧ 定时器⑨ 串行I/O接口由于AT89C51片带有EPROM,只要将单片机接上时钟电路和复位电路即构 成单片机最小系统。
由于集成度的限制,该最小应用系统具有如下特点:(1) 有可供用户使用的大量1/0 口线因没有外部存储器扩展,这时/EA 接高电平,P0、P1、P2、P3都可作用户I/0 口使用2) 部存储器容量有限3) 应用系统开发具有特殊性,应用系统程序量不大,外电路简单,便于 采用模拟开发手段4) AT89C51片有EPROM,具有64K数据存储单元,其部资源丰富,芯片 功耗较低,其成本低、体积小,可达性好、扩展容易的优点是我们选择它的主 要原因3.2键盘显示电路3.2.1概述键盘实质上是一组按键开关的集合通常按键所用开关为机械弹性开关, 均利用了机械触点的断合作用键的闭合与否,反映在电压上就是呈高电平或 低点平如果高电平表示断开的话,那么低电平则表示闭合所以通过电平的 高低状态的检测,便可确定健的闭合与否按键按连接方式可分为独立式按键和矩阵式按键独立式按键就是各按键 相互独立,每个按键各接一根输入线,一根输入线上的按键的工作状态不会影 响另一根因此,通过检测输入线上的电平状态就可以很容易判断哪个健按下 独立式按键电路配置灵活,软件结构简单但每个键都需要一根输入线相连, 故这种按键一般用在按键较少而速度较高的场合。
矩阵式键盘运用于按键较多 的场合,它由行线和列线组成,按键位于行线和列线的交叉点上很明显,在 按键较多的场合,矩阵式键盘与独立式键盘相比,要节省好多的I/O 口 LED显示器是由发光二极管显示字段组成的显示器,有共阴极和共阳极之分 共阴极LED各发光二极管阴极连在一起,当某个发光二极管的阳极为高电平 时,发光二极管点亮,相应的段被显示LED显示器包含两种显示方式:静态显示方式和动态显示方式静态显示 器的亮度较高,而动态显示方显示亮度相对较低,且软件实现要比静态显示复 杂我们采用显示与键盘操作控制芯片HD7279A与89C51单片机进行串行通讯 并通过相应的程控实现了这部分的功能其相对于常用的Intel8279可编程键 盘、显示接口芯片来讲,具有以下特点:•数据传输采用串行方式,可以少占用CPU的I/O 口线•可以直接驱动LED,减少硬件的开销 •具有段寻址指令,可方便独立控制LED ・自身带有定时电路,外加定时元件可完成对键盘和现实的扫描3.2.2 HD7279A的结构与特点HD7279A是一片具有串行接口的,可同时驱动8位共阴式数码管(或64只 独立LED)的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵, 单片即可完成LED显示、键盘接口的全部功能。
其部含有译码器,可直接接受 BCD码或16进制码,并同时具有2种译码方式,此外,还具有多种控制指令, 如消隐、闪烁、左移、右移、段寻址等°HD7279A还具有片选信号,可方便地 实现多于8位的显示或多于64键的键盘接口HD7279A可以应用于仪器仪表, 工业控制,条形显示器,控制面板1. 典型应用仪器仪表,工业控制器,条形显示器,控制面板等2. 特点.串行接口,无需外围组件可直接驱动LED•各位独立控制译码/不译码与消隐和闪烁属性-(循环)左移/ (循环)右移指令•具有段寻址指令,方便控制独立的LED•键盘控制器,含去抖动电路3. HD7279A引脚图如图3 — 2所示VDD VDD NC VSSNCCSCLK DATAKEY SG sr EE SD SCJ HD7279ARESET RC CLKO UIGF DICG DIGS DIG4 DIG3 DIG2 UIG1 DIGO DP SA SB图只-,NTlT招孙管脚图4. 引脚说明如表3 — 1所示5. HD7279A的实物如图3 — 3所示图3-3 HD7279A实物图6. 工作原理HD7279A采用串行方式与微处理器进行通讯,串行数据从DATA引脚送入 芯片,并由CLK同步。
当片选信号变为低电平后,DATA引脚上的数据在CLK 引脚的上升沿被写入HD7279A的缓冲寄存器表3-1 引脚说明引脚名称说明1, 2VDD正电源3, 5NC无连接,必须悬空4VSS接地6CS片选输入端,此引脚为低电平时,可向芯片发送指令 与读取键盘数据7CLK同步时钟输入端,向芯片发送数据与读取键盘数据 时,此引脚电平上升沿表示数据有效8DATA串行数据输入/输出端,当芯片接收指令时,此引脚 为输入端;当读取键盘数据时,此引脚在'读'指令 最后一个时钟的下降沿变为输出端9KEY按键输出有效端,平时为高电平,当检测到有效按键 时,此引脚变为低电平10-16SG-SA段甘〜段2驱动输出17DP小数点驱动输出18-25DIG0-DIG7数字0〜数字7驱动输出26CLKO振荡输出端27RCRC振荡器连接端28RESET复位端HD7279A对数码管的显示与键盘操作的控制是通过由单片机向该芯片发 送或接收来自该芯片的串行数据来实现的其中LED的显示采用循环扫描方 式7. 控制指令HD7279A指令系统由6条纯指令、7条带数据指令和1条读键盘指令组成1) 6条纯指令如表3 — 2所示表3 — 2纯指令表纯指令指令代码功 能复位指令A4H清除所有显示,包括字符消隐属性和闪烁属性测试指令BFH将所有的LED点亮并闪烁,主要用于测试左移指令A1H将所有的显示左移1位,移位后,最右位空(无 显示),不改变消隐和闪烁属性右移指令A0H与左移指令相似,但所做移动为自左向右,移 动后,最左边一位为空循环左移指令A3H将所有的显示循环左移1位。
移位元后,最左 位容移至最右位,不改变消隐和闪烁属性循环右移指令A2H与循环左移指令相似,只是方向相反(2) 7条带数据指令为:① 按方式0译码下载指令DD6D5DD3D2DD0170aa1D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 DPXXXd 3 d 2 d 1 d 0 命令由两个字节组成,前半部分为指令,其中a,a, a为位地址,具体分2 1 0配如下:a2a1a0显示位00000011010201131004101511061117d0--d3为数据,收到此指令时,HD7279A按以下规则译码(方式0),如表 3-3所示表3-3 方式0译码规则d --d□ nd 3 d 2 d■1dn7断显示00H“0000001H0001102H0010203H0011304H0100405H0101506H0110607H0111708H1000809H100190AH1010-0BH1011E0CH1100H0DH1101L0EH1110P0FH1111空(无显示)X表示无影响,其中DP为小数点控制位元,DP=1,小数点显示;DP=0,小数点熄灭。
②按方式1译码下载指令DDDDDDDD 7 6 5 4 3 2 1 0 D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 DPXXXd 3 d 2 d 1 d 0 此指令与上一条指令基本一样,所不同的只是译码方式,如表3-4所示③不译码下载指令DD 6 D 5 D 4 D3DDD 0 17a2a1D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 DPABCDEFG表3-4 方式1译码规则d --ddd 2 dd7断显示3 000H30000001H0001102H0010203H0011304H0100405H0101506H0110607H0111708H1000809H100190AH1010A0BH1011B0CH1100C0DH1101D0EH1110E0FH1111F其中a, a , a仍为位地址,第2字节仍为显示容,分别代表小数点和 2 1 0LED显示器的7段,相应位为1时,该段点亮;为0时,该段熄灭11001aaa1 1 0 0 1 a a a 2 1 0-④闪烁控制指令DD 6 D 5 D 4 D3DDD 0 1700D1D4DDAD 3 D 2 D■1Dnd 8 d 7 d 6 d 5 d 4 d 3 d 2 d 1 该指令规定了每个数码管的闪烁属性。
d~d分别对应第1到第8个数码 管,该位为1不闪烁;该位为0闪烁缺省状态为所有数码管均不闪烁⑤ 消隐控制指令DD 6 D 5 D 4 D3D2DD 0 1700D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 d 8 d 7 d 6 d 5 d 4 d 3 d 2 d 1 该指令规定了每个数码管的消隐属性d1~d8分别对应第1到第8个数码管,该位为1显示;该位为0消隐当某一位被赋予了消隐属性后,HD7279A 在扫描时将跳过该位,因此在这种情况下,无论对该位写入何值,均不会被显 示,但写入的值将被保留,在将该位重新设为显示状态的时候,将不用的位设 为消隐属性,可以提高显示的亮度应该注意的是至少要有1位保持显示状态,如果全部消隐则该命令无效该指令的作用是点亮某个LED数码管中的某一段或64个LED发光管中的 某一个,d「d5的围是00H~3FH具体分配为:第一个数码管的6段地址位00H,F段为01H,……入段为06H,小数点DP为07H,第2个数码管的G段为08H, F段为09H, ……,依此类推直至第8 个数码管的小数点DP地址为3FH。
⑦段关闭指令D ——7 D6D 5 D 4 D 3 D 2 D 1 D 0 d 7 d 6 d 5 d 4 d 3 d 2 d 1 d 0 该指令的作用是读取当前的键盘代码与其它带数据的指令不同,它的前 1个字节为微控制器传送到HD7279A的指令,它的第2个字节不是写入HD7279A 的数据,而是从HD7279A读回的按键代码,其围是00H~3FH8. 时序HD7279A的指令结构由三种类型:不带数据的纯指令,带有数据的指令, 读取键盘数据指令1)纯指令时序微处理器发出8个CLK脉冲,向HD7279A传送8位元指令DATA引脚为 高阻状态,如图3-4所示T2 T3DMA图3—4纯指令时序图(2) 带数据指令时序微处理器发出16个CLK脉冲,前8个向HD7279A传送8位元指令;后8 个向HD7279A传送8位资料DATA引脚为高阻状态,如图3-5所示3) 读键盘指令时序微处理器发出16个CLK脉冲,前8个向HD7279A传送8位元指令,DATA 引脚为高阻状态;后8个由HD7279A向微处理器返回8位按键代码,DATA引 脚为输出状态在最后1个CLK脉冲的下降沿DATA引脚恢复高阻状态,如图 3 — 6所示。
dK_n_..........juuul.一.._ru-O••••••••••OQOO--••••••O;——B位指令 A 8位数据一f图3—5带数据指令时序图”顼...…juWt:rXaTAyC OQ-OO Or'——3位指令 1' 按键代码一1图3 — 6读键盘指令时序图9. 键盘键盘部分所要实现的功能是:键入相应的参数,并将键入的参数显示于LED显示器,然后将此资料存储于单片机相应的存储单元,如图3 — 7所示对应于图3 — 7,各键功能介绍如表3—5所示7\设定右移(S5)左移图3-7键盘设置外形图表3-5键盘功能表键盘功能S0(设定)当数码管1处在闪烁状态,等待键入设定值S1(运行)使当前所输入的数值得到单片机的确认S2(加 1)使当前显示位显示的数值加1S3(减 1)使当前显示位显示的数值减1S4(左移)使当前显示位左移一位S5(右移)使当前显示位右移一位3.3可靠性设计3.3.1概述微机测控系统的抗干扰和数据长期可靠保存是设计人员在设计中面临的两个 重要问题根据专家统计,目前在微机测控系统中,电源的接通和关断、瞬时的 电源电压不稳是造成系统死机、数据丢失和误动作的主要原因,占90%以上。
虽然很多设计人员采取了不少措施,但是问题还是没有根本解决单片机系统以集成度高,功能强大,具备完善的自检测、自诊断等性能,从 而在仪表产品中占有日益增加的比重本部分针对广泛采用的MCS-51系列 单片机,运用Xicor公司的X25045芯片,构成功能较完善的控制单元在单片机系统常需要外围看门狗电路以防止程序走飞,大多数单片机系统在上 电和掉电过程中、正常运行以与在切换工作模式过程中,都需要进行监控,诸如 上电和掉电复位、后备电池管理、存储器写保护、低电压早期告警以与看门狗 等,同时,单片机系统通常需要监测电源电压情况,以便在系统掉电时能与时 复位,避免因电源干扰波动时影响系统的正常工作其中,上电和掉电复位是 CPU最基本也是必不可少的硬件功能在单片机应用中需要预先设置一些参数, 比如时钟初值、控制算法参数等需要用户设置,一旦设置完成后这些参数往往 需要掉电保存看门狗(即WATCHDOG)是针对机器语言程序设置的抗干扰措施 这两项基本功能体现在单片机系统的设计中,可以提高智能仪表整机的可靠性 月匕传统的阻容复位电路存在问题,而基于供电电源监视技术研制的复位电路在欠 压状态下,可提供稳定的复位脉冲输出,对智能仪表的可靠性设计提供了强大 的技术支持。
采用专用的看门狗监控电路和非易失存储器EEPROM电路来达到 上述要求,但往往有成本较高、电路板空间较大、接口复杂等不利因素Xicor公司最新研制生产的X25045芯片可以较好地和较简单地解决这个 难题,该芯片将微机测控系统中常用的功能:看门狗定时器、电源电压监控、上 电复位、串行E2PROM集成在一块8只引脚的集成芯片这种组合大大减少了 对电路板的空间要求,简化了硬件设计,提高了系统的可靠性,降低了成本和功 耗X25045与单片机的数据传输采用串行同步方式,占用单片机软件资源少, 不需再外加电路即可与单片机协调工作因此我们在设计中采用此芯片 看门狗定时器对微控制器提供了独立的保护系统当系统故障时,在可选的超 时周朗(timeout interval)之后,X25045看门狗将以RESET信号作出响应用 户可从三个预置的值中选择此周期一旦选定,即使在电源周期变化之后,此周 期也不改变利用X25045低Vcc检测电路,可以保护系统使之免受低电压状况的影响 当Vcc降到最小Vcc转换点以下时,系统复位复位一直确保到Vcc返回且稳 定为止X25045的存贮器部分是CMOS的4096位串行E2PROM,它在部按512X8来 组织。
X25045的特点是具有允许简单的三线总线工作的串行外设接口 (Serial Perpheral Interface,SPI)和软件协议X25045利用了 Xicor公司专有的Diect WriteTM晶片,提供最小为100.000周朋/字节的使用期限(endurance)和最小为100年的数据保存期3.3.2 X25045的结构与特点⑴特点•可编程的看门狗定时器•低Vcc检测•直至Vcc=1V复位信号有效• 1MHz时钟速率•512X8 位串行 E2PROM—4字节页方式•低功耗CMOS—10 ^A备用电流一3mA工作电流• 2.7V至5.5V电源电压•块锁定(B1ockLockTM)一保护1/4,1/2或所有E2PROM阵列•建偶然性的(Inadvertent)写保护一上电/掉电保护电路一写锁存一写保护引脚•高可靠性—使用期限:100, 000周期/字节—数据保存期:100年—ESD保护:所有引脚2000v・8引脚小型DIP封装,8引脚SOIC封装• X25045二RESET 高有效(2)引脚排列图3-8 X25045管脚图(3)引脚说明见表3-6串行输出(SO): SO是推挽串行数据输出引脚。
在读周期,数据在此引脚上 移出,数据由串行时钟的下降沿同步输出串行输入(SI):SI是串行数据输入 引脚所有操作码,字节地址以与写入存贮器的数据在此引脚上输入数据由 串行时钟的上升沿锁存串行时钟(SCK):串行时钟控制用于数据输入和输出的串行总线定时操作 码,地址或出现在SI引脚上的数据在时钟输入的上升沿锁存,而SO引脚上的数 据在时钟输入的下降沿之后发生改变表3-6引脚说明符 号说 明CS芯片选择输入SO串行输出SI串行输入SCK串行时钟输入WP写保护输入V SS 地V CC 电源电压RESET/RESET复位输出芯片选择(CS):当CS为高电平时,X25045不被选择,SO输出引脚处于高阻 状态,除非部写操作正在进行,否则X25045将处于备用电源方式(standby power mode)CS为低电平使X25045能工作,把它置于工作电源方式(active power mode)应当注意,在上电之后,在任何操作开始之前需要CS从高电平至 低电平的跳变写保护(WP):当WP为低电平时向X25045的非易失性写操作被禁止,但是器件 的其它功能仍正常当WP保持高电平时所有的功能,包括非易失性写操作都 正常。
在CS仍为低电平时,WP变为低电平将中断对X25045的写操作如果 部写周期已经开始,WP变为低电平将不影响写操作复位(RESET):X25045的RESET是低电平有效,漏极开路的输出端,只要*,下降CC 至低于最小VCC检测电平,RESET便变为低电平它将保持低电平直至Vcc上升 到最小Vcc检测电平200ms为止如果允许看门狗定时器工作且CS保恃高电 平或低电平的时间长于看门狗超时周期那么RESET也变为低电平CS的下 降沿将复位看门狗定时器X25045的RESET是高电平有效,其工作情况类似4)工作原理X25045是设计成直接与许多常用微控制器系列的同步串行外设接口〔SPI) 相接的 5I2X8E2PROMX25045包括一个8位指令寄存器它可通过SI输入来访问数据在SCK 的上升沿由时钟同步输入在整个工作期,CS必须是低电平且WP输入必须是 高电平X25045监视总线,如果在预置的时间周期没有总线的活动,那么它将 捉供RESET输出表3-7包括指令与其操作码的列表所有的指令,地址与数据都以MSB(最 高有效位)在前的方式传送读和写指令的位3包含了高地址位表3-7指令与操作码列表指令 名指令格式操作WREN00000110设置写使能锁存器(允许写操作)WRDI00000100复位写使能锁存器(禁止写操作)RDSR00000101读状态寄存器WRSR00000001写状态寄存器(块锁定位)READ0000A011 8 从开始于所选地址的寄存器阵列中读出数据WRITE0000A0108把数据写入开始于所选地址的存储器阵列(1至4字 节)* 最左的位置表示指令的最高有效位(MSB)。
以最高有效位在先的方式传送指 令输入的数据在CS变为低电平之后的SCK第一个上升沿被采样°SCK是静态 的,允许用户停止时钟并在其后恢复燥作① 写使能锁存器X25045包含一个“写使能”锁存器,在部完成写操作之前必须先设置此锁存器 (SET)WREN指令设置该锁存器,WRDI指令复位该锁存器上电情况下,在字 节,页,或状态寄存器写周期完成后,该锁存器自动复位WP变为低电平,该锁 存器也被复位② 状态寄存器在任何时间都可以访问状态寄存器,即使在写周期亦如此读指令为RDSR, 写指令为WRSR状态寄存器的格式如下:76543210XXWD1WD0BL1BL0WELWIP当发出WREN,WRDI和RDSR命令时,不必发送字节地址或数据正在写”(Write_In_Process,WIP)位表示X25045是否忙于写操作1”表 示写操作正在进行,“0”表示没有写操作在写期间,所有其它位全置为“1” WIP位是只读的写使能锁存器”(Write Enable Latch,WEL)位表示“写使能”锁存器的状 态1”表示锁存器置位,“0”表示锁存器复位WEL位是只读的,它由WREN 指令置位,由WRDI指令或成功地完成了写周期后复位。
块保护(Block Protect,BL0或BL1)位表示所使用的保护围这些非易失 性的位由发出WRSR指令来设置,允许用户选择四种保护级别之一和对看门狗 定时器编程X25045分为四个1024位的段可以锁定一个,两个或全部四个 段即,在选定的段用户可以读这些段但是不能改变(写)数据用BL0和 BL1位状态可以控制围的划分,且说明如下:表3 — 8 被保护的阵列地址状态寄存器 位被保护的阵列地址BL1BL000无01$180-$1FF10$100-$1FF11$000-$1FF看门狗定时器(Watchdog Time,WD0和WD1)位允许如表3-9所示那样设置 看门狗的超时功能这些非易失性的位由发出WRSR指令来设置③ 时钟和数据定时在SI线上输入的数据在SCK的上升沿被锁存,数据在SCK的下降沿输出到SO线上④ 读时序当从E2PROM存储器阵列读数据时,首先把CS拉至低电平以选择芯片,发送8位READ指令,紧接是8位字节地址读指令的位3包含地址A8此位用于选择器件的上半部或下半部在发送了读操作码和字节地址之后,在表3-9看门狗超时周期状态寄存器位看门狗超时周期(典型 值)WD1WD0001.4秒01600毫秒10200毫秒11禁止所选定地址的存储器中储存的数据被移出到SO线上。
继续提供SCK使它读出 下一地址储存的数据在每一个数据字节移出之后,字节地址自动增量至下一 个较高的地址当字节地址到达最高地址(1FF)时,地址计数器自动翻至 000,CS置高电平终止读操作图3-9为其时序图Vi SH图3-9 读时序为了读状态寄存器,首先把CS置低电平,发送8位RDSR指令,在发出读状 态寄存器操作码之后,状态寄存器的容被移出到SO线上⑤ 写时序首先发出WREN指令使“写使能”锁存器置位如图3-10CS首先被拉至低 电平,然后WREN指令由时钟同步送入X25045,在指令的所有8位被发送 之后,必须接着使CS变为高电平如果用户在发出指令WREN之后不把CS变为 高电平而继续写操作,那么写操作将会被忽略为了把数据写入E2PROM存储器阵列,CPU首先发WRITE指令,后继以地址, 接着是要写的数据写指令的位3包含地址A8此位用于选择器件的上半 部或下半部只是最少为24个时钟的操作在此操作期,CS必须变为低电平 且保持在低电平主机可以继续写多达4个字节的数据至X25045唯一的W —\/1 1 j fi 7sck nTLTLTLJirLrLrLI可 / \ zxxxxxxxxg 1__M 图3-10写使能锁存的时序限制是4个字节必须驻留在同一个页上。
页地址从地址XXXXXXX00开始,至 XXXXXXX11结束如果字节地址计数器达到XXXXXXX11而时钟仍继续,那么计 数器将翻转至页的首址并重写可能写入的任何数据为了结束写操作(写字节或页),只能在第24、32、40和48个时钟之后 将CS变高电平,在其他时间变高都不能结束写操作字节和页的写操作时序 见图3-11、图3-12所示⑥ 复位(RESET)操作无论何时,只要VCC降至低于最小转换电压或看门狗定时器已计到可编程 的超时极限值(Time-out limit),RESET输出(X25045)便变为高电平⑦ 运用注释-X25045上电时进入以下状态:•器件处于低功耗的备用状态•为了进入工作状态并接收指令,需要在CS上有一个高电平至低电平的跳变-SO引脚为高阻状态 V 0 1 5 5 15 7 Ji 1:) n n 13 H W IB J7 ]S N 扣 Zl引 ^WLnrLrLruWLKArLTLmmfuinTLnl T平号 i 地业宇节 i 敌据学斗】 !q」泠 R r\I t i 1Jill.瓦第!)位 _M ?? •外n 快并浦3]整.宅$ W 3 & 3F卷的-0 11 E -ia -11仙《":,jLnrLnjuuumnrLJULrLrLruwuwwL图3T2 写页操作时序•“写使能”锁存器被复位⑧数据保护为了防止偶然的写操作,器件中包含了以下电路:•上电时“写使能”锁存器被复位•为了使“写使能”锁存器置位,必须发出WREN指令•为了启动写周期,必须在时钟计数达到适当数值时使CS变为高电平当WP变为低电平时,“写使能”锁存器复位X25045应用到MCS-51单片机系列中,可大大提高单片机系统的工作可靠 性和稳定性,且体积小、成本较低、功能强等特点可广泛用于MCS-51系列单片 机组成的系统之中。
同时,它的E2PROM阵列也是许多单片机应用场合所需的非 易失RAMX25045代表了新一代串行E2PROM的发展趋势,是可编程看门狗定时器、微 处理器监控电路和非易失性串行E2PROM的完美组合,它的运用极节省了系统的 空间和资源,同时简化了电路设计,缩短产品开发周期,在便携式仪器仪表和低 功耗器件中有很广泛的应用前景4软件设计与编程系统的软件设计包括两部分:一部分是主程序的设计,它是由系统初始化 程序与调用各个功能模块程序的语句组成;另一部分是子程序的设计,包括温 度传感器的读写子程序、超温报警子程序、各种设置子程序、键值以与显示子 程序等等4.1主程序的设计软件主程序主要功能是对各种变量的定义,调用各个子程序并把各个子程 序组合起来,完成整个程序要实现的功能其流程图如图4—1图4—1 主程序设计流程图4.2子程序设计子程序包括由键盘输入与显示、E2PROM存储子程序与超限报警子程序等子 程序组成4.2.1显示子程序此子程序所实现的功能是将键盘键入的温度报警值顺序显示在相应的LED 中显示使用的4个LED中,第4个显示温度传感器的编号,第3个和第2个分别显示温度的十位和个位,第1个显示小数位。
程序框图如图4—2所示图4—2显示子程序4.2.2键盘输入子程序此子程序主要是进行键盘功能和温度报警值的设定并将其存入指定的存 储单元键盘实现的功能包括:设定、运行、左移、右移、加1、减1,此子 程序可改变温度报警值,并且可以控制程序的运行过程程序框图如图4—3所示图4—3键盘输入子程序4.2.3 E2PROM、看门狗子程序单片机初始化后,先从X25045中把设定的温度报警值取出,存于CPU的 部数据存储单元,然后调用键盘输入子程序如果重新输入极限值,输入完后, 把新的报警值存入X25045的E2PROM中程序框图如图4—4所示图4—4 EEPROM读写数据子程序4.2.4超温报警子程序蜂鸣器蜂鸣报警当采集到的温度值超过设定的报警值时,发光二极管亮, 程序流程图如图4—5所示图4—5超温报警子程序程序如下:七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七• 下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下 ,;I/O定义七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七• 下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下 9H7279_DAT BITP0.6 ; HD7279 的 DATA 连接于 P0.4H7279_KEY BIT P0.7 ; HD7279 的 KEY 连接于 P0.5H7279_CS BITP0.4 ; HD7279 的 CS 连接于 P0.6H7279_CLK BITP0.5 ; HD7279 的 CLK 连接于 P0.7X25045_CS BITP1.7 ; X25045 的 CS 连接于 P1.7X25045_SI BITP1.5 ; X25045 的 SI 连接于 P1.5X25045_SCK BITP1.6 ; X25045 的 SCK 连接于 P1.6X25045_SO BITP1.4 ; X25045 的 SO 连接于 P1.4DQ BITP1.0 ; DS18B20 的 DQ 连接于 P1.0DS BIT P2.4 ;报警电路的DS代表温度七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七• 下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下 9;RAM定义七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七七• 下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下 9BIT_COUNT EQU 07FHTIMER EQU 07EHTIMER1 EQU 07DHDATA_IN EQU 020HDATA_OUT EQU 021HFLASH_CTR EQU 073HKEY_NUMBER EQU 074HRUNEQU 022H;RUN=1表示按下运行键WRENEQU 00000110B;设置写使能锁存器WRDIEQU 00000100B;复位写使能锁存器RDSREQU 00000101B;读状态寄存器WRSREQU 00000001B;写状态寄存器READEQU 00000011B;读0~FFH中的容WRITEEQU 00000010;写到000H~0FFH中去ORG0000HAJMPSTARTORG0080HSTART:MOVSP,#2FH;定义堆栈MOV60H,#00HMOV61H,#00HMOV62H,#00HMOV63H,#00HMOVP0,#10011111B;I/O 口初始化MOVTIMER,#50;延时约25msSTART_DELAY:MOVTIMER1,#200START_DELAY1:DJNZTIMER1,START_DELAY1DJNZTIMER,START_DELAYMOVDATA_OUT,#10111111B;发测试指令LCALLSENDLCALLLONG_DELAYLCALLKEY_PARTLCALLGET_TEMLCALLDISPLAY1LCALL X25045_MAINLCALL ALARM+++++++++++++++++++++++++++++++++++++++++++++++++++++++• TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT ,;显示部分:将60H〜63H单元的容显示于LED+++++++++++++++++++++++++++++++++++++++++++++++++++++++• TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT 9DISPLAY1:MOVDATA_OUT,#11001000B;显示个位LCALLSENDMOVDATA_OUT,60HLCALLSENDMOVDATA_OUT,#11001001B;显示十位LCALLSENDMOVDATA_OUT,61HLCALLSENDMOVDATA_OUT,#11001010B;显示百位LCALLSENDMOVDATA_OUT,62HLCALLSENDMOVDATA_OUT,#11001011B;显示千位LCALLSENDMOVDATA_OUT,63HLCALLSENDSETBCS;停止发送AJMPDESPLAY+++++++++++++++++++++++++++++++++++++++++++++++++++++++• 平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平 9;键盘部分: +++++++++++++++++++++++++++++++++++++++++++++++++++++++• TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT 9KEY_PART: MOV KEY_NUMBER, #00H MOV DATA_OUT, #10100100B LCALL SENDSETBCSMOVA, DATA_INCJNEA,#0, KEY_ON;处理设定键LCALLKEY_S0;调设定键子程序SETB CSLCALL KEY_ON5++++++++++++++++++++++++++++++++。