编辑: JZS133 | 2019-07-05 |
1 中断入口 RETI ORG 02CH ;
LVDorEEPROMwrite/read 中断入口 RETI ORG 30H MAIN: CLR PAC ;
PA 输出 CLR PCC ;
PC 输出 SET PAPU SET PCPU CLR INTC0 ;
关闭中断 MOV A,01H MOV SMOD,A ;
选择系统频率为FH HT66Fxx HT66Fxx HT66Fxx HT66Fxx 使用 使用 使用 使用 Data EEPROM Data EEPROM Data EEPROM Data EEPROM 的用法与注意事项 的用法与注意事项 的用法与注意事项 的用法与注意事项
3 MOV A,0AH MOV WDTC,A ;
关闭WDT MOV A,00H MOV CP0C,A MOV CP1C,A ;
设定为I/O 模式 MOV ACERL,A ;
设定为I/O 模式 MOV SCOMC,A ;
设定为I/O 模式 WRITE_EEPROM: ;
写入模式 MOV A,00H MOV ADDR_TEMP,A ;
设定写入数据的地址 MOV A,055H MOV DATA_TEMP,A ;
设定写入数据值 ;
EEPROM 写动作模块 WRITE_EEPROM_LOOP: MOV A,ADDR_TEMP MOV EEA,A MOV A,DATA_TEMP MOV EED,A SET BP.0 ;
设置BP.0=1 MOV A,40H MOV MP1,A ;
设定MP1 指向BANK1 中的40H 地址 SET IAR1.3 ;
允许写入操作模式 SET IAR1.2 ;
开始写入操作 WRITE_WAIT: SZ IAR1.2 ;
等待写操作完成,写完后 WT 自动清除为零. JMP WRITE_WAIT NOP ;
写入操作完成 NOP NOP CLR BP.0 CLR EEA CLR EED READ_EEPROM: ;
读取模式 MOV A,00H MOV ADDR_TEMP,A ;
设定需要读取数据的地址 ;
FEEPROM 读取动作模块 READ_EEPROM_LOOP: MOV A,ADDR_TEMP MOV EEA,A SET BP.0 ;
设置BP.0=1 MOV A,40H MOV MP1,A ;
设定MP1 指向BANK1 中的40H 地址 SET IAR1.1 ;
允许读取操作模式 SET IAR1.0 ;
开始读取操作 READ_WAIT: SZ IAR1.0 ;
等待读取操作完成,读取完后 RD 自动清除为零. JMP READ_WAIT MOV A,EED ;
读取完成,读取到的内容存在EED 寄存器里 XOR A,DATA_TEMP ;
读出的值与写入的值相比较,是否正确 SZ ACC JMP FAIL ;
错误,即PC 输出波形 CPL PA ;
正确,即PA 输出波形 JMP WRITE_EEPROM HT66Fxx HT66Fxx HT66Fxx HT66Fxx 使用 使用 使用 使用 Data EEPROM Data EEPROM Data EEPROM Data EEPROM 的用法与注意事项 的用法与注意事项 的用法与注意事项 的用法与注意事项
4 FAIL: INC PC CLR PCC JMP FAIL 程序说明 程序说明 程序说明 程序说明 本范例程序主要介绍如何实现对 EEPROM 的写数据和读取数据的操作, 在范例上只是简单 的对 EEPROM 的其中一个地址和一笔数据的读写操作, 运行的结果是对 EEPROM 的[00H] 写入 055H 后,再从 EEPROM 读取出来与写入的值相比较,如果正确即 PA 输出波形,反之PC 输出波形. 用户使用时,只要调用下面写入操作或读取操作的模块来使用,只要修改其地址变量 ADDR_TEMP 值和数据变量 DATA_TEMP 值即可;
如需要写入更多的数据和读取更多的数 据时,只要将操作模块作为子程序来调用,同时修改所需要写入和读取时的地址变量和数 据变量就可以了.写入操作或读取操作的模块如下: 写入操作模块: write_eeprom_loop: mov a,addr_temp mov eea,a ;
设定写入数据的地址 mov a,data_temp mov eed,a ;
设定写入数据值 set bp.0 ;
设置BP.0=1 mov a,40h mov mp1,a ;
设定MP1 指向BANK1 中的40H 地址 set IAr1.3 ;
允许写入操作模式 set IAr1.2 ;
开始写入操作 WRITE_WAIT: sz IAr1.2 ;
等待写入操作完成,写完后 WT 自动清除为零. jmp WRITE_WAIT ret 读操作模块: read_eeprom_loop: mov a,addr_temp mov eea,a ;
设定写入数据的地址 set bp.0 ;
设置BP.0=1 mov a,40h mov mp1,a ;
设定MP1 指向BANK1 中的40H 地址 set IAr1.1 ;
允许读取操作模式 set IAr1.0 ;
开始读取操作 READ_WAIT: sz IAr1.0 ;