的全部功能。每个功能单元的程序实现方法可以分以下几部分说明与单片机的数据交换实现方法芯片内部包括个位寄存器配置寄存器直流电流偏移寄存器交流电压寄存器电流增益寄存器电压增益寄存器周期计数寄存器脉冲速率寄存器有符号寄存器无符号寄存器时基校准寄存器功率偏移寄存器交流电流偏移寄存器交流电压偏移寄存器状态寄存器屏蔽寄存器控制寄存器。这些寄存器用来完成对的设置采集数据的存储以及串行输入输出的控制。更多相关精品文档资源请访问,欢迎联系索要的串行口有个包括接收缓冲区发送缓冲区的命令解释状态机。状态机在串行时钟的上升沿解释位的命令字,状态机在解释完命令字之后立即执行外部微控制器请求的命令,或者为寄存器的数据传输做准备。当个写操作到执行个发送之前的个串行时钟完成时,需要个内部寄存器把读数据请求传送到发送缓冲区。更多相关精品文档资源请访问,欢迎联系索要电能表主程序流程图系统旦上电,就被初始化并处于有效操作状态。系统上电之后,设备就等待接收有效的命令。状态机接收并解码个有效命令更多相关精品文档资源请访问,欢迎联系索要字之后就立即命令转换器执行个系统操作或与内部寄存器之间传送数据。的所有命令字都是个字节。写到寄存器的命令必须紧跟或字节的数据。其主要包括起动转换命令,命令,命令,上电命令掉电命令校准命令,寄存器读写命令。对的寄存器的访问都是通过串行口进行的。可以看出,数据传送的初始化是通过在数据传输之间向串行口引脚按高位在先的方式发送个位的命令字实现的。当命令字包括了个写操作时,串行口将在引脚继续为紧接的个串行时钟周期记录数据位,其顺序也是高位在先。通知个寄存器写操作的命令字必须紧跟位数据。当以读命令字初始化数据传输时,串行口将在引脚为紧接的或个串行时钟周期按高位在先的原则传送寄存器的各位数字。通知寄存器写的命令字必须紧跟或位数据。在读寄存器的数据时可以发送个新的命令。串行口旦接收到新的命令,它就立即执行并可能结束前个寄存器读。根据串行口数据传送的时序写出的的命令字写入子程序读寄存器子程序写寄存器子程序如下命令字写入程序,在主程序中将命令字送到中,将命令字传送的位数送,在此形成个脉冲下降沿,数据写入,判断个数据位是否传送完数据写入子程序,将写入数据的高中低字节存放到中调用命令字写入更多相关精品文档资源请访问,欢迎联系索要子程序,数据读取子程序,将读出的数据的高中低字节存放到中更多相关精品文档资源请访问,欢迎联系索要,在电能表中当单片机需要读取的寄存器获取瞬时电流瞬时电压瞬时功率,设置的寄存器的值时,都是通过调用这两个程序来实现的。对日历时钟的读写操作的软件实现在电能表中与时间有关的判断和时间读取都是通过与的接口完成的。在电能表接到时钟校正信号时,电能表的就会向写命令字在判断时段时,需要读取的时间寄存器以及片内数据存储器完成时间段的比较用户进行时段设置查询时,需要读取片内的数据存储器。所有数据的读写都是通过向写入命令字的方式告诉其读写地址单元以及将进行的是读操作还是写操作。每数据传送由命令字节初始化。最高有效位位必须为逻辑,如果它是,禁止写。位为逻辑指定时钟日历数据逻辑指定数据。位至指定进行输入或输出的特定寄存器。最低有效位位为逻辑指定进行写操作输入逻辑指定读操作输出。的命令字格式在电能表中对串行的读写片内包括个指令寄存器写使能寄存器状态寄存器。送往指令寄存器的命令集如表所示。对指令寄存器的访问是通过串行输入线进行的。在片选信号为低电平并且写保护信号为高电平时,数据在串行时钟信号的上升沿由时钟同更多相关精品文档资源请访问,欢迎联系索要步输入。所有数据的传输都是以高位在前的方式进行传送。在用指令置位写使能锁存器之后进行写操作再用指令复位锁存器。状态寄存器中可以设置看门狗定时器的定时时间,在电能表的程序设计中,选择了看门狗定时周期位。表命令集指令名指令格式操作设置写使能锁存器允许写操作复位写使能锁存器禁止写操作读状态寄存器写状态寄存器块锁定位从所选地址的存储器阵列开始读出数据把数据写入所选的存储器阵列字节串行输入线上输入的数据在的上升沿被锁存,数据在的下降沿输出到串行输出线上。与的接口软件包括设置写使能锁存器子程序,读状态寄存器子程序,字节读子程序,字节写子程序,复位看门狗子程序。对设置写使能锁存器子程序复位写使能锁存器子程序写状态寄存器子程序来说,可以通过给数据缓冲区写入不同的命令字调用同子程序,根据的读写操作时序编写的在电能表主程序中调用的子程序。接的串行时钟引脚接的片选引脚,用于存放命令字接的串行时钟引脚接的片选引脚,用于存放命令字更多相关精品文档资源请访问,欢迎联系索要发送写指令,用于存放地址的低位字节发送地址,接的串行时钟引脚接的片选引脚,用于存放命令字,用于存放地址的高位字节更多相关精品文档资源请访问,欢迎联系索要接的串行输入引脚,接的串行输出引脚,矩阵键盘键功能处理程序电能表的键盘处理程序采用编程扫描工作方式进行处理。在主程序中每循环次主程序就判断次是否有按键按下的事件。当查询有键被按下时,程序按以下方法进行处理软件延时段时间再判断键盘状态,如果仍为有键按下状态,则认为有个确认的键按下,否则按键抖动处理在确认有键按下的条件下,通过扫描的方式求取键值键闭合次仅进行次键功能操作。对于需要多个组合键才能完成的功能来说,把多次所得的键值相加后送寄存器,然后完成相应功能。键扫描程序流程图如图。键扫描程序流程图中的软件延时用来消除键抖动现象的。当有多个键被依次按下时,把每次按下的键值存于缓冲区中,当没有键按下时再把键值总和送寄存器中,根据更多相关精品文档资源请访问,欢迎联系索要中的键值和执行相应功能。图扫描程序流程图液晶显示器在电能表中显示功能实现液晶显示器的程序由生产公司随带产品提供,只需用户根据需要填写用户程序。在电能表部分需要显示的内容包括时间电量单位为伏特的电压单位为安培的电流。在程序设计过程中在主程序中根据需要显示进制数字查表得到相应的十进制数字的显示代码,然后把相应的显示代码送显示器缓冲区,最后调用显示程序显示电量或时更多相关精品文档资源请访问,欢迎联系索要间。在程序设计中显示器缓冲区被定义在从单片机片内的数据存储器空间的单元。对于两个时间间隔符的显示,在主程序中只需给单元送数或即可实现。给出显示码的查表子程序入口条件待查找的内容在中,表格的首地址在中,两者的值根据主程序确定,第个的代码以及第个在作为时间显示是的代码表第个在用作电量显示是的代码表打印机驱动程序打印机接口的时序图表明了位并行数据在数据选通信号的上升沿被打印机读入机内锁存,数据选通信号的宽度必须大于。打印机忙状态信号高电平有效,高电平状态表明打印机正忙于处理数据,此时,单片机不得使用数据选通信号向打印机送入新的数据。当打印机的应答信号低电平有效时,表明打印机己取走数据线上的数据。在打印程序中的常数符号标记参数等不变的字符存放在单片机的片内程序存储器中,需要打印的数据从电量存储单元取出,打印数据从日历时钟芯片中取出。在打印机的打印控制程序中,数据的打印顺序是按照从上到下从左到右的顺序打印字符数据。在主程序中主要是给需要调用的子程序的缓冲空间赋值,判断打印条件是否满足,从电量存储空间读取电量值和其他数据。主程序需要调用的子更多相关精品文档资源请访问,欢迎联系索要程序包括打印机查询送数子程序,打印字符串子程序。这两个子程序的编制如下,查询打印机是否处于忙状态在主程序中被赋予打印指令代码,送打印机命令数据后启动,片外读取,产生信号,查询打印机是否处于忙状态,存放字符串的表首偏移量,查表取打印数据数据送打印机,查询数据是否打印完打完,指向下数据,存放字符串表尾偏移量加的数据更多相关精品文档资源请访问,欢迎联