找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5741|回复: 26
打印 上一主题 下一主题
收起左侧

tlc0838 8个通道AD采样程序谁有 51单片机

[复制链接]
跳转到指定楼层
楼主
tlc0838 8个通道AD采样程序谁有  51单片机
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:127798 发表于 2016-6-23 14:22 | 只看该作者
要汇编的  还是C语言的。
回复

使用道具 举报

板凳
ID:127798 发表于 2016-6-23 14:22 | 只看该作者
ORG 0000H
        LJMP SE11
        ORG 0080H
SE11:        MOV SP,#53H
        mov p2,#0ffh
        MOV A,#43H
        MOV DPTR,#0FF20H
        MOVX @DPTR,A
        MOV 7EH,#00H
        MOV 7DH,#08H
        MOV 7CH,#00H
        MOV 7BH,#09H
        MOV 7AH,#10H
        MOV 79H,#10H            ;显示缓冲区初值
LO18:        LCALL SSEE              ;调用显示子程序
        MOV A,#00H
        MOV DPTR,#8000H
        MOVX @DPTR,A            ;0809的0通道采样
        MOV R7,#0FFH            ;延时
LO17:        DJNZ R7,LO17
        MOVX A,@DPTR            ;取出采样值
        MOV R0,#79H
        LCALL PTDS
        SJMP LO18               ;采样值送显示缓冲区
        ORG 05D0H
PTDS:        MOV R1,A
        ACALL PTDS1
        MOV A,R1       
        SWAP A
PTDS1:  ANL A,#0FH
        MOV @R0,A
        INC R0
        RET
回复

使用道具 举报

地板
ID:127798 发表于 2016-6-23 14:24 | 只看该作者
SSEE:        SETB RS1                ;换工作区
        MOV R5,#05H
SSE2:        MOV 30H,#20H
        MOV 31H,#7EH
        MOV R7,#06H
SSE1:        MOV A,30H
        CPL A      
        MOV DPTR,#0FF21H        ;字位送入
        MOVX @DPTR,A
        MOV R0,31H
        MOV A,@R0
        MOV DPTR,#DDFF
        MOVC A,@A+DPTR          ;取字形代码           
        MOV DPTR,#0FF22H        ;字形送入
        MOVX @DPTR,A
        MOV A,30H
        RR A                    ;右移
        MOV 30H,A
        DEC 31H
        MOV A,#0FFH           
        MOV DPTR,#0FF22H        ;关显示
        MOVX @DPTR,A
        DJNZ R7,SSE1            ;六位显示完了吗?
        DJNZ R5,SSE2
        CLR RS1
        RETSSEE:        SETB RS1                ;换工作区
        MOV R5,#05H
SSE2:        MOV 30H,#20H
        MOV 31H,#7EH
        MOV R7,#06H
SSE1:        MOV A,30H
        CPL A      
        MOV DPTR,#0FF21H        ;字位送入
        MOVX @DPTR,A
        MOV R0,31H
        MOV A,@R0
        MOV DPTR,#DDFF
        MOVC A,@A+DPTR          ;取字形代码           
        MOV DPTR,#0FF22H        ;字形送入
        MOVX @DPTR,A
        MOV A,30H
        RR A                    ;右移
        MOV 30H,A
        DEC 31H
        MOV A,#0FFH           
        MOV DPTR,#0FF22H        ;关显示
        MOVX @DPTR,A
        DJNZ R7,SSE1            ;六位显示完了吗?
        DJNZ R5,SSE2
        CLR RS1
        RET
回复

使用道具 举报

5#
ID:127798 发表于 2016-6-23 14:25 | 只看该作者
数表

DDFF:        DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
        DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH
        END
回复

使用道具 举报

6#
ID:127797 发表于 2016-6-23 15:34 | 只看该作者
我想要C语言的吧  先谢谢了
回复

使用道具 举报

7#
ID:127797 发表于 2016-6-23 15:37 | 只看该作者
969 发表于 2016-6-23 14:22
要汇编的  还是C语言的。

能给个C语言的吗
回复

使用道具 举报

8#
ID:127819 发表于 2016-6-23 15:46 | 只看该作者
网上一找一片啊
回复

使用道具 举报

9#
ID:127797 发表于 2016-6-23 15:56 | 只看该作者

找了半天没看到
回复

使用道具 举报

10#
ID:1 发表于 2016-6-23 21:59 | 只看该作者
回复

使用道具 举报

11#
ID:111634 发表于 2016-6-23 22:31 | 只看该作者
本帖最后由 zl2168 于 2016-6-23 22:52 编辑

9.1.2  并行ADC0809及其接口电路


实例81 ADC0808中断方式A-DALE输出CLK
Proteus仿真一下,确认有效。


实例81 ADC0808A-D( ALE输出CLK,中断方式).rar (54.32 KB, 下载次数: 13)



以上摘自张志良编著《单片机实验实训100例》 ISBN 978-7-5124-1603-1,北航社出版



《单片机原理与控制技术——双解汇编和C51》第3ISBN 978-7-111-42393-5机械工业出版社

80C51单片机实用教程——基于Keil CProteus》高等教育出版社ISBN 978-7-04-044532-9





书中电路和程序设计有详细说明,程序语句条条有注解。



实例82 ADC0808A-D( ALE输出CLK,查询方式).rar

54.04 KB, 下载次数: 11

实例83 ADC0808A-D( ALE输出CLK,延时等待方式).rar

54.13 KB, 下载次数: 7

实例84 ADC0808A-D(虚拟CLK).rar

35.75 KB, 下载次数: 10

回复

使用道具 举报

12#
ID:127911 发表于 2016-6-23 22:33 | 只看该作者
看看啊
回复

使用道具 举报

13#
ID:111634 发表于 2016-6-23 22:52 | 只看该作者
本帖最后由 zl2168 于 2016-6-23 22:54 编辑

实例82  ADC0808查询方式A-D(ALE输出CLK)


Proteus仿真一下,确认有效。

实例82 ADC0808A-D( ALE输出CLK,查询方式).rar (54.04 KB, 下载次数: 3)


以上摘自张志良编著《单片机实验实训100例》 ISBN 978-7-5124-1603-1,北航社出版

《单片机原理与控制技术——双解汇编和C51》第3ISBN 978-7-111-42393-5机械工业出版社

80C51单片机实用教程——基于Keil CProteus》高等教育出版社ISBN 978-7-04-044532-9

书中电路和程序设计有详细说明,程序语句条条有注解。





回复

使用道具 举报

14#
ID:111634 发表于 2016-6-23 22:55 | 只看该作者
本帖最后由 zl2168 于 2016-6-23 22:56 编辑

实例83  ADC0808延时方式A-D(ALE输出CLK)


Proteus仿真一下,确认有效。
实例83 ADC0808A-D( ALE输出CLK,延时等待方式).rar (54.13 KB, 下载次数: 3)


以上摘自张志良编著《单片机实验实训100例》 ISBN 978-7-5124-1603-1,北航社出版

《单片机原理与控制技术——双解汇编和C51》第3ISBN 978-7-111-42393-5机械工业出版社

80C51单片机实用教程——基于Keil CProteus》高等教育出版社ISBN 978-7-04-044532-9

书中电路和程序设计有详细说明,程序语句条条有注解。





回复

使用道具 举报

15#
ID:111634 发表于 2016-6-23 22:56 | 只看该作者
本帖最后由 zl2168 于 2016-6-23 22:58 编辑

实例84  ADC0808并行A-D(虚拟CLK)


Proteus仿真一下,确认有效。
实例84 ADC0808A-D(虚拟CLK).rar (35.75 KB, 下载次数: 6)


以上摘自张志良编著《单片机实验实训100例》 ISBN 978-7-5124-1603-1,北航社出版

《单片机原理与控制技术——双解汇编和C51》第3ISBN 978-7-111-42393-5机械工业出版社

80C51单片机实用教程——基于Keil CProteus》高等教育出版社ISBN 978-7-04-044532-9

书中电路和程序设计有详细说明,程序语句条条有注解。





回复

使用道具 举报

16#
ID:111634 发表于 2016-6-23 22:59 | 只看该作者
以上都是8路AD,汇编和C51双解。
回复

使用道具 举报

17#
ID:127797 发表于 2016-6-24 10:31 | 只看该作者
太感谢了   谢谢大家帮忙
回复

使用道具 举报

18#
ID:127797 发表于 2016-6-24 10:31 | 只看该作者
感谢大家的帮忙
回复

使用道具 举报

19#
ID:127797 发表于 2016-6-25 10:31 | 只看该作者
这个程序检查不过,那位大师看下

#include<reg51.h>
#include <intrins.h>
sbit  ADCS1=P1^3 ;
sbit  ADCS2=P1^0 ;
sbit  ADCLK=P1^1 ;
sbit  ADIO=P1^4        ;


Byte AD_0838(Byte TDZ,Byte Number);
void AD_0838_Pulse(void)  ;


void main(void)
{
Byte data1;
data1=AD_0838(0,2);
while(1);
{
P0=AD_0838        ;
}


}

/**********************************************************
目的:运用TLC0838,输入通道值,读取AD转换值
输入参数:1、通道值TDZ
输出参数:1、AD转换结果AD_JG
相关管脚:1、ADCS1=P1^3  第一个0838-AD片选   2、ADCS2=P1^0    第二个0838-AD片选
          3、ADCLK=P1^1  0832-AD时钟         4 、ADIO=P1^4    0832-AD数据
*/
Byte AD_0838(Byte TDZ,Byte Number)
{
        Byte Bit[8];
        Byte TDZ_MID;
        Byte i;
        Byte AD_JG=0x00;
        Bit[0]=0x01;
        Bit[1]=0x02;
        Bit[2]=0x04;
        Bit[3]=0x08;
        Bit[4]=0x10;
        Bit[5]=0x20;
        Bit[6]=0x40;
        Bit[7]=0x80;
        switch(TDZ)
        {
                case 0   :TDZ_MID=0x18;break;
                        case 1   :TDZ_MID=0x1c;break;
                                case 2   :TDZ_MID=0x19;break;
                                        case 3   :TDZ_MID=0x1d;break;
                                                case 4   :TDZ_MID=0x1a;break;
                                                        case 5   :TDZ_MID=0x1e;break;
                                                                case 6   :TDZ_MID=0x1b;break;
                                                                        case 7   :TDZ_MID=0x1f;break;
        }
        switch(Number)
        {
        case 1:ADCS1=1;break;
        case 2:ADCS2=1;break;
        }
        RS_ADIO=0;
        CM8880CLK_ADCLK=0;
        switch(Number)
        {
        case 1:ADCS1=0;break;
        case 2:ADCS2=0;break;
        }
        for(i=5;i>0;i--)
        {
                RS_ADIO=TDZ_MID&Bit[i-1];
                AD_0838_Pulse();
        }
        CM8880CLK_ADCLK=1;
        for(i=8;i>0;i--)
        {
                AD_0838_Pulse();
                if(RS_ADIO)AD_JG|=Bit[i-1];
        }
        switch(Number)
        {
        case 1:ADCS1=1;break;
        case 2:ADCS2=1;break;
        }
        return AD_JG;
}

void AD_0838_Pulse(void)
{
        Byte i;
        CM8880CLK_ADCLK=1;       //get a pulse about 52 us
        for(i=0;i<4;i++)
        {
        _nop_();
        }
        CM8880CLK_ADCLK=0;
        for(i=0;i<4;i++)
        {
        _nop_();
        }
}

回复

使用道具 举报

20#
ID:127797 发表于 2016-6-25 10:46 | 只看该作者
C:\Users\Administrator\Desktop
回复

使用道具 举报

21#
ID:127797 发表于 2016-6-25 12:44 | 只看该作者
故障c129
回复

使用道具 举报

22#
ID:111634 发表于 2016-6-25 17:58 | 只看该作者
本帖最后由 zl2168 于 2016-6-25 18:05 编辑

实例85  ADC0832串行A-D(TXD输出CLK)

ADC0832与0838串行A-D时序只差一位,0832是2路ad,4种方式,需2位选通;0838是8路ad,需3位选通。选通方式相同,读A-D值方式也相同,完全可做参考。
Proteus仿真一下,确认有效。
实例85 ADC0832串行A-D( TXD输出CLK).rar (36.86 KB, 下载次数: 9)


以上摘自张志良编著《单片机实验实训100例》 ISBN 978-7-5124-1603-1,北航社出版

书中电路和程序设计有详细说明,程序语句条条有注解。




回复

使用道具 举报

23#
ID:111634 发表于 2016-6-25 18:06 | 只看该作者
本帖最后由 zl2168 于 2016-6-25 18:08 编辑

实例86  ADC0832串行A-D(虚拟CLK)


ADC08320838串行A-D时序只差一位,08322ad,4种方式,需2位选通;08388ad,3位选通。选通方式相同,读A-D值方式也相同,完全可做参考。


ADC 0832串行A-D既可80C51串行口TXDRXD控制操作,也可用P0P3口中任一端线虚拟CLK时钟脉冲,实现串行A-D转换


Proteus仿真一下,确认有效。
实例86 ADC0832串行A-D(虚拟CLK).rar (35.29 KB, 下载次数: 6)


以上摘自张志良编著《单片机实验实训100例》 ISBN 978-7-5124-1603-1,北航社出版

书中电路和程序设计有详细说明,程序语句条条有注解。





回复

使用道具 举报

24#
ID:111634 发表于 2016-6-25 18:10 | 只看该作者
本帖最后由 zl2168 于 2016-6-25 18:17 编辑

网上下载的程序你看得懂吗?还有错呢!还是看张志良编著《单片机实验实训100例》吧!书中电路和程序设计有详细说明,程序语句条条有注解。有Proteus仿真确认有效,编者还负责答疑。
回复

使用道具 举报

25#
ID:111634 发表于 2016-6-25 18:15 | 只看该作者
网上下载的那个程序是人家写的论文,写论文就是要让人看了半懂不懂,才显得有水平,大家都看懂了,这个论文还值钱吗?再加上原文几经转载,生成了许多错误误,你就更看不懂了。
回复

使用道具 举报

26#
ID:111634 发表于 2016-6-25 18:19 | 只看该作者
apc123456 发表于 2016-6-25 10:31
这个程序检查不过,那位大师看下

#include

假大师看不懂,真大师没空看。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表