全球旧事资料 分类
80HMOVDPTRTABLE1MOVA0C0HMOVDPTRTABLE2
;写命令时序
fACALLDELAYSETBERETWRITE1MOVR100HA1:MOVAR1MOVCAADRTRCALLINCCJNERETWRITE2:MOVSETBCLRCLRCALLSETBRETSSARSRWEDELAYE;写单个字符WRITE2R1R1,10H,AL;取将显示的数据;调用写程序写入单个字节;写字符串
442
键盘程序设计
键盘程序包括按键识别及识别按键后系统的相应动作。按键识别分两步进行:第一步,识别键盘有无键被按下;第二步如果有键被按下,识别出具体的按键。分述如下:第一步,识别键盘有无键被按下的方法是:让所有列均置为0电平,检查各行线电平是否有变化,如果有变化,则说明有键被按下。第二步,识别具体的按键的方法有扫描法和线反转法,这里采用扫描法:逐列置0电平,其余各列置为高电平,检查各行线电平的变化,如果某行电平由高电平变为0电平,则可确定此行此列交叉点处的按键被按下。本方案中用延时l0ms进行软件消抖,通过设置处理标志位来区分闭合键是否己处理过,用计算方法得到键码。键盘扫描子程序中完成如下几个功能:1断键盘上有无键按下。其方法为P1口低3位输出全0,读P1口状态,若P13、P14为全1,则说明键盘无键按下;若不全为1,则说明键盘有键按下;2除按键抖动的影响。其方法为,在判断有键按下后,用软件延时的方法延时10ms,再判断键盘状态,如果仍为有键按下状态,则认为有一个确定的键按下,否则当作按键抖动处理;3按键位置。根据前面的扫描法,进行逐位置0扫描,最后定位按键位置;4闭合一次仅进行一次按键的处理。方法是等待按键释放之后,再进行按键功能的处理操作。编程扫描程序流程图如图44所示。
22
f图44
扫描程序流程图
443E2PROM程序的编写
AT24C64存储器可以解决单片机片内E2PROM不足的问题,用以保存诸如用户设置参数、卡片信息等资料。由于本系统中采用到的AT89S52单片机不具备I2C总线接口,因此采用软件法加以解决。在软件编写时遵循I2C总线规则:初始状态时,SCL、SDA两线都为高,当SCL为高电平时,如果SDA线跌落,认为是“起始位”;当SCL为高电平时,如果SDA线上升,认为是“停止位”;除此之外,在发送数据的过程中当SCL为高电平时,SDA应保持稳定。ACK应答位指在此时钟周期内由从器件E2PROM把SDA拉低,表示回应。这时主器件AT89S52的SDA口属性应该变为输入以便检测。E2PROM主要读写程序如下:
void12c_Se
d_Byteu
sig
edcharSe
d_Data写一个字节到E2PROM中u
sig
edcharifori8i0iSCL_DIR0ifSe
d_Data0x80SDA_DIR1接收r
好听全球资料 返回顶部