x5045程序修改

[复制链接]
3382|1
 楼主| 夏之剑客 发表于 2007-4-7 21:38 | 显示全部楼层 |阅读模式
X5045, ov, TE, RS, se
&nbsp;&nbsp;&nbsp;哪位大虾能够告诉我这个程序为什么读入的时候是D,但是读出来却是@&nbsp;,感谢阿!!!!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /><br />&nbsp;&nbsp;RS&nbsp;BIT&nbsp;P3.3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;寄存器选择,1表示数据寄存器,0表示指令寄存器<br />&nbsp;&nbsp;RW&nbsp;BIT&nbsp;P3.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;读写信号线,高电平为读,低电平为写,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;RS&nbsp;RW同时为低表示写指令,RS低RW高则是读忙信号,反之写入数据<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;E&nbsp;&nbsp;BIT&nbsp;P3.4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;液晶显示使能,高到低时执行命令<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key_bit&nbsp;bit&nbsp;01h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;键盘标志位<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;keyboard&nbsp;bit&nbsp;P2.6<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcd_bg&nbsp;bit&nbsp;P1.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;背光&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;output&nbsp;equ&nbsp;p0&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cs&nbsp;bit&nbsp;p2.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;x5045电路选择端<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;so&nbsp;bit&nbsp;p3.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;x5045串行数据输入端<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;si&nbsp;bit&nbsp;p3.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;x5045串行数据输出端<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sclk&nbsp;bit&nbsp;p3.6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;x5045串行时钟信号<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xadd&nbsp;equ&nbsp;0d0h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;x5045写入的地址<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org&nbsp;0000h<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ajmp&nbsp;init<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org&nbsp;0003h<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ajmp&nbsp;ankey<br />init:&nbsp;mov&nbsp;sp,#0f0h<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clr&nbsp;lcd_bg<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;b,#01h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;清屏<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcall&nbsp;enable&nbsp;&nbsp;&nbsp;&nbsp;;每次操作都要保存<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;b,#38h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;功能选择<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcall&nbsp;enable&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;b,#0fh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;开显示幕<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcall&nbsp;enable<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;b,#06h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;表示光标向右移,屏幕上文字不移动<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcall&nbsp;enable&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setb&nbsp;ea&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;中断开放<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setb&nbsp;ex0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;允许INT0<br />welcome:&nbsp;mov&nbsp;b,#80h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;设定第一行起始地址<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcall&nbsp;enable<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;a,#41h<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcall&nbsp;display<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;b,#0c0h<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcall&nbsp;enable<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;a,#42h<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcall&nbsp;display<br />main:&nbsp;jnb&nbsp;key_bit,next<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clr&nbsp;key_bit<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ajmp&nbsp;key<br />next:&nbsp;nop<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ajmp&nbsp;main<br />;-----------------写入程序寄存器--------------------------<br />enable:clr&nbsp;rs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;写指令到寄存器<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clr&nbsp;rw<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clr&nbsp;e&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;先禁止,在第二次进入的时候就有效了<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcall&nbsp;delay<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;output,b<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setb&nbsp;e<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clr&nbsp;e<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret<br />;----------------显示-------------------------------------<br />display:&nbsp;clr&nbsp;rw&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setb&nbsp;rs&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;output,a<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setb&nbsp;e<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcall&nbsp;delay<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clr&nbsp;e<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret<br />;****************x5045************************************<br />;----------------单字节写---------------------------------<br />;作用:这段程序送出命令,读EEPROM存储器中的一个字节数据<br />byte_write:&nbsp;&nbsp;&nbsp;mov&nbsp;DPTR,&nbsp;#xadd&nbsp;&nbsp;;&nbsp;设置字节写地址<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcall&nbsp;startx<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcall&nbsp;wren<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;a,#02h<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;b,dph<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;c,b.0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;acc.3,c<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcall&nbsp;byte_out<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;a,&nbsp;DPL<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcall&nbsp;byte_out&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;送出8位地址<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;a,&nbsp;output&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;数据<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcall&nbsp;byte_out&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;送出数据<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc&nbsp;xadd<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcall&nbsp;endx<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcall&nbsp;check_wip&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;查写周期是否完成(等待写完)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret<br />;---------------单字节读-----------------------------------<br />;作用:这段程序送出命令,读EEPROM存储器中的一个字节数据<br />byte_read:&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;b,#82h<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcall&nbsp;enable<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;DPTR,&nbsp;#xadd&nbsp;&nbsp;;&nbsp;设置读取数据的地址<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcall&nbsp;startx<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;a,#03h<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;b,dph<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;c,b.0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;acc.3,c<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcall&nbsp;byte_out<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;A,&nbsp;DPL<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcall&nbsp;byte_out&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;送出地址(8位)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcall&nbsp;byte_in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;读取数据<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc&nbsp;xadd<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcall&nbsp;endx<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret<br />;---------------启动x5045--------------------------------<br />startx:clr&nbsp;cs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;让cs在整个工作周期为低,有效<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nop<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clr&nbsp;sclk<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nop<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret<br />;-------------写使能所存(使能写操作)---------------------<br />wren:&nbsp;&nbsp;lcall&nbsp;startx<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;a,#06h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;对应设置写使能锁存器<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcall&nbsp;byte_out<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcall&nbsp;endx<br />;-----------读状态寄存器-----------------------------------<br />rdrs:&nbsp;lcall&nbsp;startx<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;a,#05h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;对应设置读状态寄存器<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcall&nbsp;byte_out<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcall&nbsp;byte_in<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcall&nbsp;endx<br />;-----------用wip位判是否完成内部操作----------------------<br />check_wip:;lcall&nbsp;rdrs&nbsp;&nbsp;;通过读状态寄存器来说明内部写周期结束否<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jb&nbsp;acc.0,check_wip&nbsp;&nbsp;&nbsp;&nbsp;;因为wip是状态寄存器的第0位<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret<br />;------------写字节到EEPROM------------------------------<br />byte_out:&nbsp;mov&nbsp;r5,#8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;写入一个字节(8位)数据<br />&nbsp;&nbsp;&nbsp;bout1:&nbsp;clr&nbsp;sclk<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rlc&nbsp;a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;带进位的左移,进位给c<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;si,c<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setb&nbsp;sclk<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cjne&nbsp;r5,#8,bout1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret<br />;-----------从EEPROM中读字节------------------------------<br />byte_in:&nbsp;&nbsp;mov&nbsp;r5,#8<br />&nbsp;&nbsp;&nbsp;bin1:&nbsp;&nbsp;setb&nbsp;sclk<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;c,so<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rlc&nbsp;a<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clr&nbsp;sclk<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cjne&nbsp;r5,#8,bin1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret<br />;------------关闭x5045------------------------------------<br />endx:&nbsp;clr&nbsp;sclk<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nop<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setb&nbsp;cs<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nop&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret<br />;**********************************************************<br />;----------------键盘中断---------------------------------<br />ankey:push&nbsp;acc<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;psw<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setb&nbsp;key_bit<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pop&nbsp;psw<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pop&nbsp;acc<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reti<br />;----------------按键判断---------------------------------<br />key:&nbsp;&nbsp;mov&nbsp;output,#0ffh<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clr&nbsp;keyboard<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;a,output<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setb&nbsp;keyboard<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jnb&nbsp;acc.4,menu<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jnb&nbsp;acc.5,enter<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ljmp&nbsp;main<br />;--------------按键处理----------------------------------<br />menu:&nbsp;mov&nbsp;b,#82h<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcall&nbsp;enable<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;a,#44h<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcall&nbsp;display<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcall&nbsp;byte_write<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ajmp&nbsp;main<br />enter:lcall&nbsp;byte_read<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcall&nbsp;display<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ajmp&nbsp;main<br />;----------------延时程序---------------------------------<br />delay:mov&nbsp;r7,#124&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;5ms延时<br />loop2:mov&nbsp;r6,#20<br />loop3:djnz&nbsp;r6,loop3<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;djnz&nbsp;r7,loop2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
piao520 发表于 2009-4-11 11:52 | 显示全部楼层

学习中

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

11

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部