1.4 单片机和LCM
STC89C516RD+是宏晶科技推出的低功耗、强抗干扰单片机,指令代码完全兼容传统8051单片机,正常工作时功耗为4 mA,掉电模式为2 μA;工作电压为3.6~2.0 V。具有64 KB Flash程序存储器和1 280 B RAM,35个I/O引脚,共3个16 bit定时器,内置看门狗和MAX810专用复位电路,4路外部中断和1个通用异步串行口,LQFP封装。
LCM选用128×64点阵的液晶显示模块,自带GB2312汉字字库和字母、数字字库,低功耗,工作电压范围在3.6~2.4 V之间。
2 设计实现
2.1 信息收发协议
物理层芯片nRF2401的ShockBurst收发模式具有独立的通信协议,为不同的接收端配置唯一的接收地址以提高通信抗干扰能力,其通信协议格式为:字头、地址、信息数据包、CRC。ShockBurst发送和接收模式如图3和4所示[1]。
2.2 信息编辑
2.2.1 键盘设计
信息编辑由键盘、单片机和LCM模块实现,按键描述如表1。单片机根据按键输入的数字字符串查表得到对应拼音和汉字码。选用常用的6 763个汉字的GB2312码作为汉字信息载体,用ASCII码作为数字和英文字母的单片机处理、保存和传输值。由于英文单词数量很大,数字和字母键的复用在输入字母字符串时显得很不方便,且没有实用的汉字查表输入法,因此这里将字母键盘在LCM显示屏上显示,根据方向键和确认键选择需要的字母,返回并保存字母、数字的ASCII值。
2.2.2 输入法的设计 由于数字键和字母键复用,键盘输入的是0~9的数字串,采用二级数字索引确定对应拼音和汉字码。如输入数字“7315”对应拼音“shao”,先在首字母索引表Unsigned char(*PY_index_pointer[27])[8]中确定数字7对应的第一个拼音数组PY_index_s的首地址,然后在数组PY_index_s、PY_index_t、PY_index_u中找到“7315”对应所有可能的拼音,如“shao”、“tian”,保存并返回这两个拼音首字母对应的地址;根据此地址可得到在GB2312汉字码中对应的第一个拼音为“shao”的汉字码C9D2(即汉字“梢”的GB2312码);在LCM屏上显示从C9D2开始以“shao”发音的汉字,如果希望显示汉字“少”,则输入偏移量7,根据C9D2+7可得到“少”的汉字码C9D9;单片机存储、处理,通信中就用C9D9表示“少”[2]。 (责任编辑:admin) |