电工吧
◎ 电工吧 >> 设为首页 >> 加入收藏>> 联系方式 >> 投稿 >>留言 
网站首页 · 电工新闻 · 电工基础 · 电力技术 · 电子技术 · 电工图片 · 电工法规 · 电工图书 · 电工搜索 · 论坛交流
 
      最新电子论文
 · 开关电源设计知识介绍(中 
 · 印制电路板设计原则和抗干 
 · 电路设计常用软件介绍 
 · 各种滤波电路的比较 
 · 激光头维修的简便方法 
 · 回扫线现象全面剖析 
 · 线性NTC温度传感器使用指南 
 · 变压器的基本知识 
      推荐电子论文

 · 单片机初学者编程最简练的指导
 · 电力行业蓄电池容量测试方案
 · 定点dsp与浮点dsp的比较
 · 永不消逝的电波
 · 分时操作系统思想在单片机编程
 · PC机打印口与便携式数据采集系
 · 单线数字温度传感器的原理与应
 · 一个单片机串行数据采集,传输
 · PLD应用的方方面面
 · 一种纸币识别系统的设计

  ■ 所在位置:首页>>电子技术>>电子应用>>正文
 

一个单片机串行数据采集,传输模块的设计

数据采集程序如下:

DATA_SAM:  
  MOV   R0,#30H

;数据缓冲区首地址30H→R0

  MOV   R1,#00000000B ;0通道方式/通道数据
  ACALL RD_AD ;第一次读取的转换结果可能不准确,丢弃。
  MOV   R1,#00010000B ;1通道方式/通道数据
  ACALL RD_AD ;送1通道方式/通道数据并读第0通道转换结果
  MOV   @R0,R2 ;转换结果存放到数据缓冲区,下同
  INC   R0  
  MOV   @R0,R3  
  INC   R0  
  MOV   R1,#00100000B ;2通道方式/通道数据
  ACALL RD_AD ;送2通道方式/通道数据并读第1通道转换结果
  MOV   @R0,R2  
  INC   R0  
  MOV   @RO,R3  
  INC   R0  
  ………… ;其它通道操作方式类推
  RET  

   单片机通过编程产生串行时钟,并按时序发送与接收数据位,完成通道方式/通道数据的写入和转换结果的读出,程序如下,供数据采集模块“DATA_SAM”调用。

  CLK   EQU    P3.3  
  DIN   EQU    P3.4  
  DOUT  EQU    P3.5  
  CS    EQU    P3.7  
RD_AD:  
  CLR   CLK ;清I/O时钟
  SETB  CS ;设置片选为高
  CLR   CS ;设置片选为低
  MOV   R4,#08 ;先读高8位
  MOV   A,R1 ;把方式/通道控制字放到A
LOP1:  
    MOV   C,DOUT ;读转换结果
  RLC   A ;A寄存器左移,移入结果数据位,移出方式/通道控制位
  MOV   DIN,C ;输出方式/通道位
  SETB  CLK ;设置I/O时钟为高
  CLR   CLK ;清I/O时钟
  DJNZ  R4,LOP1 ;R4不为0,则返回LOP1
  MOV   R2,A ;转换结果的高8位放到R2中
  MOV   A,#00H ;复位A寄存器
  MOV   R4,#04 ;再读低4位
LOP2:  
  MOV   C,DOUT ;读转换结果
  RLC   A ;A寄存器左移,移入结果数据位
  SETB  CLK ;设置I/O时钟为高
  CLR   CLK ;清I/O时钟
  DJNZ  R4,LOP2 ;R4不为0,则返回LOP2
  MOV   R3,A ;转换结果的低4位放到R3中
  SETB  CS ;设置片选为高
  RET  

   串行数据传输模块包括串行口初始化子程序和数据传输子程序,各子程序分别如下。其中数据传输采用查询方式,也可以方便地改为中断方式。

本新闻共4页,当前在第2页  [1]  [2]  [3]  [4]  

 
         相关文章

·

 
 
  关于本站 | 友情站点 | 联系方式 | 版权声明 | 电工技术服务与支持中心
Copyright© 2005-2006 Dg8.Com.CN ,All Rights Reserved
电工网 电工吧 电子吧