51/AVR单片机技术驿站!  <在线翻译>     便利工具    特色网址   无弹窗、无插件的绿色站点...  英才招聘   学历查询  喜欢>>收藏我站 

当前位置:首页 > 单片机源码 > 详细内容
24C02存储流水灯的实时状态
作者:佚名  发布时间:2009/10/16  阅读次数:993  字体大小: 【】 【】【
;///////////////////////////////////////////
;本程序源代码由微电子单片机工作室提供
;网址: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


 
我要评论
  • 匿名发表
  • [添加到收藏夹]
  • 发表评论:(匿名发表无需登录,已登录用户可直接发表。) 登录状态:未登录
最新评论
所有评论[0]
    暂无已审核评论!

网站导航 管理登陆 ┊ 免责声明 问题反馈  友链说明
本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正!
不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作!

    我要报警 Alexa
 mcusy_cn#126.com (请把#改成@) 交流:522422171
本站学习交流群:138..158(高级群1-)、77930286(高级群2)、61804809(群3)
Copyright© MCUSY All Rights Reserved
本站网警备案号: WZ36040002485
  ICP备案证书号:粤ICP备09034963号