|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
这段汇编怎么用C实现呀?谢谢各位兄弟们了 |
作者:sukejia 栏目:单片机 |
例如下面的程序 DATA_H EQU 30H START: CLR CS MOV R6,#08H LOOPH: MOV A,DATA_H ;比如DATA_H的内容是07H RLC A MOV DIN,C SETB SCLK MOV DATA_H,A CLR SCLK DJNZ R6,LOOPH RET END 本人是菜鸟变成C我是下面那么写的,但是在进行KEIL仿真的时候如下 R6=0x80 0x70 0x60 0x50 0x40 0x30 0x20 0x01 0x00 汇编程序 ACC=0x0e 0x1c 0x38 0x70 0xe0 0xc0 0x81 0x03 0x00 ********************************************************************* 0x20 0x01 0x00 C语言 0x80 0x00 0x00 谢谢各位怎么用C能写成和汇编一样的循环呀? void write(uint addr) //addr的内容是0x07 { uchar i; for(i=8;i>0;i--) { din=addr&1; addr=addr<<1; sclk=1; if(addr!=0) ACC=addr; sclk=0; } } |
2楼: | >>参与讨论 |
作者: zemezemed 于 2006/5/29 19:51:00 发布:
1 void write(uint addr) //addr的内容是0x07 { uchar i; for(i=8;i>0;i--) { if(add&0x80) din=1; else din=0; addr<<=1; sclk=1; _nop_(); sclk=0; } } |
3楼: | >>参与讨论 |
作者: sukejia 于 2006/5/30 13:03:00 发布:
谢谢 感谢您了呵呵 |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |