SPI Protocol Problem in AT89C51ED2

发布者:温馨时光最新更新时间:2016-10-29 来源: eefocus关键字:SPI  AT89C51ED2 手机看文章 扫描二维码
随时随地手机看文章
working on a SPI based ADC MCP3202, using Atmel 89C51ED2 micro controller

#include
#include
#include
#include"display.h"

sbit  CS    = P1^0;


unsigned int call_adc(unsigned char Channel);


         unsigned int call_adc(unsigned char Ch)
         {

                  unsigned int Data1,Data2;
                  unsigned char Channel;

                  CS=0;                                                 /* Chip Select for ADC Active State     */

                  if(Ch==0)                                             /* Channel Select                                               */
                  Channel=0x0D;                                 /* Channel -1                                                   */
                  else
                  Channel=0x0F;                                 /* Channel -2                                                   */

                  SPDAT=Channel;                                /* Channel i/p for SPI                                  */
                  while(!(SPSTA&0x80));
                  Data1=SPDAT;                                  /* Higher 8bit of ADC  value                    */
                  SPSTA|=0x7F;                                  /* Clear Trasmit Flag            */
                  Data1=Data1<<8;
                  SPDAT=0x00;
                  while(!(SPSTA&0x80));
                  SPSTA|=0x7F;                                   /* Clear Trasmit Flag      */
                  Data2=SPDAT;                                   /* Lower 8bit of ADC value */
                  Data1|=Data2;                                  /* 12 Bit ADC Value        */

                  CS=1;                                                  /* Chip Select for ADC off State*/

                  return (Data1>>4);                       /* 12 Bit ADC Data              */

         }



        void main()
        {
                unsigned int Adc_Data=0;
                static unsigned char Buffer[10];

                SPCON |=  0x10;                /* Master mode                                   */
                SPCON |=  0x82;                /* Fclk Periph/128                               */
                SPCON &= ~0x08;                /* CPOL=0; transmit mode example */
                SPCON |=  0x04;                /* CPHA=1; transmit mode example */
                SPCON |=  0x40;                /* run spi                                               */
                SPSTA |=  0x7F;                            /* Clear Trasmit Flag            */


                Initlcd();

                while(1)
                {
                 Adc_Data=call_adc(0);
                 sprintf(Buffer,"%d",(unsigned int)Adc_Data);
                 display(Buffer,0x80);
                }


        }

关键字:SPI  AT89C51ED2 引用地址:SPI Protocol Problem in AT89C51ED2

上一篇:lcd液晶12232F的串口C51程序
下一篇:5线四相八拍步进电机的C51演示程序

推荐阅读最新更新时间:2024-03-16 15:18

51单片机 SPI nRF24L01 无线简单程序 1
main.c 1 #include reg51.h 2 #include api.h 3 4 #define uchar unsigned char 5 6 /***************************************************/ 7 #define TX_ADR_WIDTH 5 // 5字节宽度的发送/接收地址 8 #define TX_PLOAD_WIDTH 4 // 数据通道有效数据宽度 9 #define LED P2 10 11 uchar code TX_ADDRESS = {0x34,0x43,0x10,0x10,0x01}; // 定义一个静态发送地址 12
[单片机]
51单片机 <font color='red'>SPI</font> nRF24L01 无线简单程序 1
MSP430F5438A单片机基于SPI的FatFs移植笔记
不管移植什么程序,最重要的就是, 不要自以为是 一定要先查资料,花一周查资料,查到查不到为止,否则你编了一半的程序再参考别人的,直接后果是你下不了决心推翻重来 1. FatFs移植要点: 相信能看到这个博客的都知道FatFs是什么了,目前应该是0.11版本,我就不多废话了,一个开源的文件系统,不全面的说,作用就是让你编程序操作写SD卡的内容能够被PC机读出来(有不对的话懂的大神请指正) 它的好处就是只要写底层的几个硬件驱动函数就OK了,上层的函数都已经写好了,清楚格式直接调用就可以了。 所谓“硬件驱动”函数,就是告诉单片机,完成一个动作(比如初始化)具体需要哪个IO口怎样变化,哪个IO口该高,哪个IO口该低,通信端口选哪个
[单片机]
基于LPC2103的SPI总线技术的应用
摘 要:介绍了一种基于SPI总线技术的LPC2103对LED数码管显示实现控制的方法。采用8位74HC595串并转换芯片驱动LED数码管。结合74HC595芯片的特点给出了SPI控制的驱动电路,描述了基于SPI总线主模式的74HC595芯片的数据传输过程,给出了相关应用程序流程图及软件实现。 关键词: SPI总线;主模式;LPC2103;74HC595 SPI( Serial Peripheral Interface) 总线是Motorola公司提出的一个同步串行外设接口, 允许MCU与各种外围器件以串行方式进行通信、数据交换。SPI可以同时发出和接收串行数据, 它只需4条线就可以完成MCU与各种外围器件的通信。一
[工业控制]
基于LPC2103的<font color='red'>SPI</font>总线技术的应用
STM32的SPI使用注意
今天写OLED屏SSD1309的驱动,用的是SPI2。屏只接收数据,不给单片机单片机发送数据,所以在硬件上连接的只有CS、SCK、MOSI,没有用到单片机的MISO引脚,片选引脚设置为软件管理模式,SPI的方向设置为双向全双工。 对IO的时钟、SPI2等初始化完成后将程序下载到片子上发现屏没有任何反应,如果在调用发送函数之前判断发送的标志,第一次发送可以成功,第二个数据就会死在这里,debug发现数据第一次发送之后,TXE标志不会置1,即发送缓冲区一直没有清空,这是什么情况???感觉很奇怪,仔细看状态寄存器发现,RXE标志置1了,即接收到数据了。 数据手册上对错误标志位部分的说明:上溢标志位,如果还没有读出前一个接收到的数
[单片机]
STM8 SPI简介 主要特征
SPI简介 串行外设接口(SPI)允许芯片与其他设备以半/全双工、同步、串行方式通信。此接口可以被配置成主模式,并为从设备提供通信时钟(SCK)。接口还能以多主配置方式工作。 STM8的SPI可用于多种用途,包括带或不带第三根双向数据线的双线单工同步传输,还可使用CRC校验来进行可靠通信。 SPI主要特征 3线全双工同步传输 带或不带第三根双向数据线的双线单工同步传输 8或16位传输帧格式选择 主或从操作 8个主模式频率(最大为fMASTER/2) 从模式频率(最大为fPCLK/2) 快速通信:最大SPI速度达到10MHz 主模式和从模式下均可以由软件或硬件进行NSS管理 可编程的时钟极性和相位 可编程的数
[单片机]
STM8S学习01——SPI&IIC
1、温习IIC总线协议 1)I2C 总线的一些特征 1 只要求两条总线线路 一条串行数据线 SDA 一条串行时钟线 SCL 2 每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机 从机关系软件设定地址 主机可以作为主机发送器或主机接收器 3 它是一个真正的多主机总线 如果两个或更多主机同时初始化数据传输可以通过冲突检测和仲裁,防止数据被破坏 4 串行的 8 位双向数据传输位速率在标准模式下可达 100kbit/s 快速模式下可达 400kbit/s 高速模式下可达 3.4Mbit/s 5 片上的滤波器可以滤去总线数据线上的毛刺波 保证数据完整 6 连接到相同总线的 IC 数量只受到总线的最大电容 400pF 限制
[单片机]
基于PIC16F73单片机和ADS8341的SPI通信软硬件实现方法
PIC单片机为美国微芯公司(Ml-CROChip)公司生产研发,品种极其丰富,各系列片内功能资源各不相同,可以满足用户不同层次的开发要求。它采用哈佛总线结构和精简指令集(RISC)技术,其寻址方式简单、运行速度快、功耗低、驱动能力强等。在MICROCHIP公司PIC系列产品里,有低档、中挡、高挡单片机,且大部分都带有USART、SPI、IIC等总线接口,有的甚至还带有USB和CAN模块。这些特点给开发者带来了很大的方便。 1.ADS8341的特性 ADS8341是一种比较新的逐次逼近式的16位的A/D转换器件,其需要2.7~5V单电压供电,具有4通道单独输入或2通道差动输入,可以通过一个8位的控制字来选择其输入通道,
[单片机]
基于PIC16F73单片机和ADS8341的<font color='red'>SPI</font>通信软硬件实现方法
C8051F SPI程序
摘要: /********************************************************************************************************** File : ws_spi_port.h* Hardware Environment:* Build Environment : Silicon LABs 3.42.00 / uVis ... /******************************************************************************************************** * *
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved