用I2C通信实现点亮一盏小灯(包含应答)---汇编语言
来源:互联网 发布:log4j 关闭sql日志 编辑:程序博客网 时间:2024/06/06 17:19
下载请于:http://download.csdn.net/detail/chenqiai0/4483389(完全代码以及详解)-------有疑问可以留言,希望多多交流
org 0x00ljmp startorg 30Hstart: lcall init_I2Clcall init_ledmain: mov R3,#0x23 mov R5,#0x05 lcall write_add //这一句和 lcall read_add需要从stop-》start,所以有一个延时,这个延时时间经过自己计算至少1.5ms mov 0x72,#77 //小于77会发生错误 j: lcall delay //14周期 djnz 0x72,j //3个周期 lcall read_add mov A,R4 xrl A,#0xFF mov P0,Ah: ljmp hdelay: mov R0,#5 //2个周期 here: djnz R0,here //djnz 寄存器减1,不为零就转移3个周期retI2C_start: clr P3.7//scl lcall delay setb P3.6 lcall delay setb P3.7 lcall delay clr P3.6 lcall delayretI2C_stop: clr P3.7//scl lcall delay clr P3.6 lcall delay setb P3.7 lcall delay setb P3.6 lcall delayretI2C_respons: mov R0,#0x00 setb P3.7 lcall delay there: jnb P3.6,q inc R0 cjne R0,#250,there q: clr P3.7 lcall delayretwrite_byte: //void write_byte(uchar date),从C语言看,这个函数需要一个参数 //我们不妨令R5=date (R6=i,A=temp) mov A,R5 mov R6,#0x09 w_circle: djnz R6,next ljmp q1 next:rlc Aclr P3.7lcall delaymov P3.6,Clcall delaysetb P3.7lcall delayljmp w_circle q1: clr P3.7lcall delaysetb P3.6lcall delayretread_byte: //A=k,R6=i clr P3.7 lcall delay setb P3.6 lcall delay mov R6,#0x09 mov A,#0x00 r_circle: djnz R6,next2 ljmp q2 next2: setb P3.7 lcall delay rl A jb P3.6,orl1 orl A,#0 ljmp orl2 orl1: orl A,#1 orl2: mov R4,Aclr P3.7lcall delayljmp r_circle q2: clr P3.7lcall delaysetb P3.6lcall delaysetb P3.7lcall delayretwrite_add: mov 0x70,R5//把原数据保存起来 lcall I2C_start mov R5,#0xa0 lcall write_byte lcall I2C_respons mov 0x71,R3 mov R5,0x71 lcall write_byte lcall I2C_respons mov R5,0x70 lcall write_byte lcall I2C_respons lcall I2C_stopretread_add: lcall I2C_start mov R5,#0xa0 lcall write_byte lcall I2C_respons mov 0x71,R3 mov R5,0x71 lcall write_byte lcall I2C_respons lcall I2C_start mov R5,#0xa1 lcall write_byte lcall I2C_respons lcall read_byteretinit_I2C: setb P3.6 lcall delay setb P3.7 lcall delayret//选中小灯init_led: clr P1.0 setb P1.1 setb P1.2 clr P1.4 setb P1.3retend
- 用I2C通信实现点亮一盏小灯(包含应答)---汇编语言
- 用I2C通信实现点亮一盏小灯(包含应答)---c语言
- MCU实现I2C通信
- 模拟IIC通信(没有用应答)
- micropython之动手搭建自己的MQTT服务器并实现通信(点亮led)
- HTTP的应答码(错误码,通信码)
- 树莓派(pi3)和Arduino之间用I2C总线通信
- I2C 通信
- i2c通信
- I2C 调试记录之——无应答 (ACK) 信号
- i2c中应答信号信号总结
- 第二个试验:用单片机点亮一个闪烁的发光管-----51单片机汇编语言试验教程
- STM32F103C8开发I2C通信(六)
- I2C模拟程序----汇编语言格式
- 普通IO口模拟实现I2C通信及应用解析
- 在FPGA中使用Verilog实现I2C通信
- 汇编语言学习笔记(六)包含多个段的程序
- 王爽《汇编语言》课程设计二续(包含软盘操作)
- quartz 对于有状态的任务处理
- Linux视频转码工具与使用
- JAVA UDP 编程小案例(包含中文发送解决方案)
- 清秀的学习之路1
- C++自定义定时器实现(多对象多定时器)
- 用I2C通信实现点亮一盏小灯(包含应答)---汇编语言
- 打印系统消息的命令
- 20120807八月是最糟糕的
- 鸟哥的 selinux 之 vsftp
- FlexPaper插件实现的在线文档如何下载?
- java的锁机制
- Linux ffmpeg的安装编译过程
- Dijkstra算法的C++实现
- Android 搜索关键字飞入飞出效果