┊ 网站导航 ┊ 管理登陆 ┊ 免责声明 ┊ 问题反馈 ┊ 友链说明┊本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正! 不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作! ![]() ![]() ![]() ![]() ![]() ![]() 本站学习交流群:138..158(高级群1-满)、77930286(高级群2)、61804809(群3) Copyright© MCUSY All Rights Reserved 本站网警备案号: WZ36040002485 ICP备案证书号:粤ICP备09034963号 |
;/////////////////////////////////////////// ;本程序源代码由微电子单片机工作室提供 ;网址:www.elemcu.com ;Email:sanplug@126.com ;本程序使用24C02存储流水灯的实时状态 ;/////////////////////////////////////////// i2c_clk bit p3.4 ;时钟信号 i2c_data bit p3.5 ;数据信号 org 0000h ; ajmp main org 0030h main: mov dptr,#tab ;表头 mov r0,#30h ;r0为指针 mov 2bh,#00h ;2bh为地址L lcall r_d ;调用读EEPROM子程序 lcall delay10ms ;延时10ms mov a,30h ; cjne a,#16,com1 ;将读回的内容与16相比较, com1: jc loop ;如果超过16,则清零,否则跳到LOOP显示. mov 30h,#00h mov a,30h loop: movc a,@a+dptr ;查表显示到P1口 mov p1,a mov r4,#10 tt3: lcall delay10ms ;延时一秒钟 djnz r4,tt3 inc 30h mov r0,#30h mov 2bh,#00h lcall w_t ;将当前的30H写入到EEPROM. lcall delay10ms mov a,30h cjne a,#16,loop ;再做一次比较,此步也可省去. mov 30h,#00h mov a,30h ajmp loop ;重复循环. delay10ms: mov r6,#100 tt2: mov r5,#50 djnz r5,$ djnz r6,tt2 ret tab: db 0feh,0fdh,0fbh,0f7h db 0efh,0dfh,0bfh,07fh db 07fh,0bfh,0dfh,0efh db 0f7h,0fbh,0fdh,0feh ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; 2bh为地址L r0为指针 w_t: a067EH: SETB i2c_data ;;;;写 SETB i2c_clk ;;;clk CLR i2c_data ;;;sda//start LCALL a0799H CLR i2c_clk LCALL a0799H MOV A, #0A0H LCALL a06EEH SETB i2c_data LCALL a0799H SETB i2c_clk LCALL a0799H lcall ledb;;; JB i2c_data, $ CLR i2c_clk LCALL a0799H MOV A, 2bh ;;;;;写地址L LCALL a06EEH SETB i2c_data LCALL a0799H SETB i2c_clk LCALL a0799H lcall ledb;;; JB i2c_data, $ CLR i2c_clk LCALL a0799H a06BDH: MOV A, @R0 ;;;;写数据 LCALL a06EEH SETB i2c_data LCALL a0799H SETB i2c_clk LCALL a0799H lcall ledb;;; JB i2c_data, $ CLR i2c_clk LCALL a0799H CLR i2c_data LCALL a0799H SETB i2c_clk LCALL a0799H SETB i2c_data RET ;;;;;;;;;;;;;;;;;;;;;;;;;;;; a06EEH: MOV R6, #08H a06F0H: RLC A ;;; MOV i2c_data, C lcall a0799h SETB i2c_clk lcall a0799h CLR i2c_clk lcall a0799h DJNZ R6, a06F0H RET ;;;;;;;;;;;;;;;;;;;;;;;;;;; ae6EEH: MOV R6, #08H ae6F0H: RLC A ;;; MOV i2c_data, C lcall a0799h SETB i2c_clk lcall a0799h CLR i2c_clk lcall a0799h DJNZ R6, ae6F0H RET ;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; r_d: a0718H: SETB i2c_data ;;;;写 SETB i2c_clk CLR i2c_data LCALL a0799H CLR i2c_clk LCALL a0799H MOV A, #0A0H LCALL ae6EEH SETB i2c_data LCALL a0799H SETB i2c_clk LCALL a0799H lcall leda;; JB i2c_data, $ CLR i2c_clk LCALL a0799H MOV A, 2bh ;;;;;写地址L LCALL ae6EEH SETB i2c_data LCALL a0799H SETB i2c_clk LCALL a0799H lcall leda;; JB i2c_data, $ SETB i2c_data LCALL a0799H SETB i2c_clk LCALL a0799H CLR i2c_clk LCALL a0799H CLR i2c_data LCALL a0799H SETB i2c_clk LCALL a0799H SETB i2c_data lcall delay10ms SETB i2c_data ;;;;;;;读 SETB i2c_clk CLR i2c_data LCALL a0799H CLR i2c_clk LCALL a0799H MOV A, #0A1H LCALL ae6EEH LCALL a0799H SETB i2c_data LCALL a0799H SETB i2c_clk LCALL a0799H lcall leda;; JB i2c_data, $ CLR i2c_clk LCALL a0799H NOP NOP a0747H: MOV R6, #08H ;;; CLR A CLR C SETB i2c_data LCALL a0799H a0750H: SETB i2c_clk ;;; LCALL a0799H MOV C, i2c_data RLC A CLR i2c_clk LCALL a0799H DJNZ R6, a0750H MOV @R0, A INC R1 SETB i2c_data LCALL a0799H SETB i2c_clk LCALL a0799H CLR i2c_clk LCALL a0799H CLR i2c_data LCALL a0799H SETB i2c_clk LCALL a0799H SETB i2c_data RET a0784H: CLR i2c_data ;;; LCALL a0799H SETB i2c_clk LCALL a0799H CLR i2c_clk LJMP a0747H ;;;;;; a0799H: NOP NOP NOP nop NOP NOP NOP nop NOP NOP NOP nop NOP NOP NOP nop RET ;;;;;;;;;;;;;;;;;;;;;;;;;;;; leda: mov b, #50h led1: jnb i2c_data, led0 lcall a0799h djnz b, led1 ;mov 4ch, #0ddh nop led0: ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;; ledb: mov b, #50h led0b: jnb i2c_data, led0a lcall a0799h djnz b, led0b nop led0a: ret end
┊ 网站导航 ┊ 管理登陆 ┊ 免责声明 ┊ 问题反馈 ┊ 友链说明┊本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正! 不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作! ![]() ![]() ![]() ![]() ![]() ![]() 本站学习交流群:138..158(高级群1-满)、77930286(高级群2)、61804809(群3) Copyright© MCUSY All Rights Reserved 本站网警备案号: WZ36040002485 ICP备案证书号:粤ICP备09034963号 |