导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→大家好,帮我看段程序~!

* 79215: 大家好,帮我看段程序~!

   tianxia1123 
tianxia1123发表的帖子 

 大家好,帮我看段程序~!
数据采集程序:
ORG 0OOOH
LJMP DATA_SAM
CLK EQU P3.3
DIN EQU P3.4
DOUT EQU P3.5
CS EQU P3.7  
DATA_SAM :   
MOV   R0,30H                  ;数据缓冲区首地址30H→R0
MOV   R1,#00000000B            ;0通道方式/通道数据
ACALL  RD_AD                  ;第一次读取的转换结果可能不准弃。
MOV    R1,#00000000B              ;0通道有效转换开始
ACALL RD-AD
MOV @R0, R2                        ;保存转换结果
INC R0
MOV @R0, R3                        
RET
单片机通过编程产生串行时钟,并按时序发送与接收数据位,完成通道方式/通道数据的写入和转换结果的读出,程序如下,供数据采集模块“DATA_SAM” 调用。
RD-AD:                                    ;TLC2543AD转换子程序,R1内容为控;制字,结果的高;;8位保存在R2,低4位保存;在R3。
CLR CLK                               ; 置CLK为低
SETB CS                               ; 置CS为高
NOP
NOP
CLR CS                                ; 置CS为低,转换开始
MOV  R4,#08                           ; 8位控制字移入TLC2543,高8位;结果移出TLC2543
MOV  A,R1                             ; 控制字装入A中
LOOP1:
MOV C,DOUT                            ; 读转换结果
RLC A                                 ; A寄存器左移,移入结果数据,移出方式/通道控制位
MOV DIN,C                             ; 1位控制字移入TLC2543
SETB CLK                              ; 设置I/O时钟为高
NOP
NOP
NOP
CLR CLK                                ;清I/O时钟口
DJNZ R4, LOOP1                         ; R4不为0。则返回LOOP1
MOV R2, A                              ; 结果的高8位装入R2
MOV A, #00H                            ; 复位A寄存器
MOV R4, #04                            ; 读取低4位转换结果
LOOP2:
MOV C, DOUT                            ;读转换结构
RLC A                                  ;A寄存器左移,移入结果数据位
SETB CLK
NOP
NOP
NOP
CLR CLK                                ;清I/O时钟口
DJNZ R4, LOOP2                         ;R4不为0则返回LOOP2
MOV R3, A                              ;低4位转换结果装入R3
SETB CS                                ;设置片选为高
RET
错误的是DATA_SAM块中的那2条
MOV @R0,R2   331错误
INC R0
MOV @R0,R3   331错误
我查了TLC2543和单片机AT89C2051的编程,人家都是这样遍的,为什么我用软件仿真的时候会出错~!




发表时间:2005年6月7日21:57:05

  
回复该帖

本主题共有 3 帖,分页:>>>>>该主题的所有内容[3]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  79386.[详细]程序不能这样写的,请仔细看看汇编语言指令这一章.
摘要:MOV @R0,R2   331错误 INC R0 MOV @R0,R3   331错误  可以改为:&nbs......(90字)
- [edawn][1503次] 2005年6月9日

  79433.[详细]标准51的汇编代码一定要通过累加器倒换数据.另外,不知是否有笔误,RD_AD有时为下划线,但有时又..
摘要:标准51的汇编代码一定要通过累加器倒换数据.另外,不知是否有笔误,RD_AD有时为下划线,但有时又是减号.......(94字)
- [cshnaclt][1034次] 2005年6月10日

[上一篇帖子]:[原创]数组的调用问题下面这个程序到底哪里错了,哪位高手给点拨一下,type rom_ty
[下一篇帖子]:一款朴实实用的CPLD开发板(支持ISPLSI1016芯片,可以下载上万次,价格只有128元/套)产