ATmega128(SPI通信)

发布者:BlissfulHiker最新更新时间:2016-09-29 来源: eefocus关键字:ATmega128  SPI通信 手机看文章 扫描二维码
随时随地手机看文章
//atmega128的SPI应用示例程序,采用SPI接口的DAC芯片TLC5615,连续进行电压转换

//DAC为TI公司的10位串行电压型输出的DAC芯片TLC5615,SPI接口连接方式
//驱通过SPI接口,动DAC芯片,使其完成000-FFC(TLC5615后两位的值一直为0)输出的转换
//LED指示灯DS3对应从暗到亮,表示电压逐渐增大
//编译环境 AVR Studio 4.17/AVR GCC
//系统时钟7.3728MHZ,设置熔丝位为外部高频石英晶体振荡,启动时间4.1ms
//***********************************************************************
//   包含文件
//***********************************************************************

#include
#include
#define  F_CPU 7372800  // 单片机主频为7.3728MHz,用于延时子程序
#include
#include
#include
#include      //中断信号头文件
//***********************************************************************
// 定义变量区
//***********************************************************************
#define uchar unsigned char
#define uint  unsigned int

#define delay_us(x)     _delay_us(x)        //AVR GCC延时函数 x(us)
#define delay_ms(x)     _delay_ms(x)        //AVR GCC延时函数 x(ms)

#define cs0   PORTB &= ~(1 << PB0)          //片选信号置低
#define cs1   PORTB |= (1 << PB0)           //片选信号置高

uint da_data;
uchar count=0;
uint da_data2;
//*************************************************************************
//   初始化子程序
//*************************************************************************
void system_init()
{

 PORTB = 0x00;           //电平设置
 DDRB = 0xFF;           //方向输出

}
void SPI_init()
{
  SPCR=(1<   
}


//*************************************************************************
//   主程序
//*************************************************************************

void main()

  system_init();                               //系统IO口初始化
  SPI_init();                                  //SPI初始化
  while(1)
  {
    for(da_data=0x0000;da_data<0x0ffc;da_data++)
    {
      cs0;                                    //使能DAC
      da_data2=(da_data&0xff00);               //提取数据的高8位
      da_data2>>=8;                            //高8位移到低8位,便于赋值
      SPDR=da_data2;                           //写数据的高8位到SPI数据寄存器
      SPDR=da_data&&0x00ff;                    //写数据的低8位到SPI数据寄存器
      delay_ms(1);
      cs1;                                    //关闭使能
    }
  }
}

关键字:ATmega128  SPI通信 引用地址:ATmega128(SPI通信)

上一篇:ATmega128(12864带字库)
下一篇:ATmega128(time 0)

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

atmega128 AD转换程序
/*********************************包含头文件********************************/ #include iom128v.h #include macros.h /********************************数码管段码表*******************************/ extern const unsigned char tab ={0x3f,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07, 0x7F,0x6F}; /*******************
[单片机]
PIC读书笔记5:串行通信接口SPI、I2C、UART
1:同步串行接口I2C与SPI接线方式: 1.1: SPI的一些注意事项 2:同步串行接口I2C与SPI连接多个设备及其区别: 3:异步串行接口UART 当与windows终端通信时,硬件握手尤其必要,因为windows是一个多任务操作系统,应用程序有事会遇到导致数据丢失的长延时。 4:异步通信与同步串行通信外设比较
[单片机]
PIC读书笔记5:串行<font color='red'>通信</font>接口<font color='red'>SPI</font>、I2C、UART
通过SPI接口协议实现DSP与其它设备的通信
摘要:介绍了SPI通信协议,给出了将TI公司生产的TMS320C5402 DSP用于SPI协议通信的串口配置方法和接口电路设计,同时给出了串口McBSP的配置程序。 关键词:多通道缓冲串行口 McBSP TMS320C5402 μPD780308 SPI DSP 1 引言 随着信息技术革命的深入和计算机技术的飞速发展,DSP技术也正以极快的速度被应用到科技和国民经济的各信领域。在很多工程开发设计中,由于要求实现单片DSP与单片DSP、多片DSP芯片以及及其它处理芯片之间的通信,因此,怎样更高效、 更便捷的实现这些通信,已成为广大DSP应用者首先要解决的一个问题。 本文根据笔者在工程应用和调试方面用TI的DSP TMS3
[应用]
PC和ATMEGA128串口通信
/*PC和ATMEGA128通信,ATMEGA以轮循方式发送,中断方式接受*/ #include mega128.h #define RXEN0 4 #define TXEN0 3 #define RXCIE0 7 #define UDRE0 5 #define UCSZ00 1 #define UCSZ01 2 #define UCSZ02 2 #define RXC0 7 char str ; unsigned char in; void Uar_init(void); void COM_send(void); interrupt void uart0(void) { bit flag=1; s
[单片机]
STM32 | 硬件SPI主从通信
例子说明及框图 本例子基于STM32F103ZET6芯片,实现SPI1与SPI2的主从通信。其中SPI1配置为主机,SPI2配置为从机,均配置为全双工模式。硬件连接图: 其中,我们需要注意的是,SPI的从机不能主动发送数据,只能应答数据。本例子的数据交互过程: 主机使用查询方式发送数据给从机。 从机使用中断接收方式接收数据,把接收到的数据加上0x05再发送给主机。 从机总是在收到主机的数据时,才会发送数据给从机。即从机被动发送数据,也即主机主动申请数据。 代码细节 主函数: int main(void) { uint8_t i = 0; //---------------------------
[单片机]
STM32 | 硬件<font color='red'>SPI</font>主从<font color='red'>通信</font>
基于AVR单片机与FPGA的低频数字式相位测量仪
摘要:提出了以AVR ATmega128单片机和Altera公司的Cyclone系列EP1C3T100为核心的系统设计方案。分析了数字式低频相位测量仪的测量原理和测量误差及其消除的方法。利用单片机强劲的运算、控制功能和FPGA运算速度快、资源丰富的特点。主要介绍了系统的软硬件设计。实践表明,此方案设计的相位仪对低频正弦波信号实现精确测频和测相位差,具有处理速度快、稳定可靠、精度高等优点。 关键词:数字相位仪;单片机;FPGA;误差;频率;相位差 在工业领域中经常要用到低频数字式相位仪来精确测量两信号之问的相位差,比如在电力系统、频率特性的研究、激光测距等领域均有广泛的应用,相位检测的精度直接决定系统的整体性能。这就要求测量仪
[嵌入式]
基于AVR单片机与FPGA的低频数字式相位测量仪
S3C2410与指纹传感器MBF200的SPI通信
  引 言   随着网络技术和通信技术的发展,传统的身份认证技术对于信息安全表现得越来越有些力不从心了。由于人的身体特征具有唯一性和稳定性,人们开始把目光转向了生物识别技术,如指纹、虹膜、DNA、掌形识别等。在众多的特征识别中,指纹采集设备由于具有体积小、功耗低、稳定性好、误判概率低等优点,而受到人们的青睐。指纹传感器是指纹采集设备中的核心器件,在此选用富士通公司的MBF200。它是一款先进的固态指纹传感器芯片,具有性能高、功耗低、成本低、接口方便等特点。这使得在嵌入式系统中实现数据的传输更加方便。S3C2410是三星公司推出的ARM920T核微处理器,主要面向手持设备以及高性价比、低功耗的应用,且在片上集成了丰富的组件,有利于其扩
[单片机]
S3C2410与指纹传感器MBF200的<font color='red'>SPI</font><font color='red'>通信</font>
基于AVR单片机设计的手机自动售货机
   引 言   移动增值业务产品的核心特点是移动性、即时性和个人性。移动增值服务是在通信技术、计算机技术和互联网技术不断发展融合的基础上,在人们以信息为基础的各种应用需求快速增长的激励下,在社会信息化水平日益提高的前提下,迅速发展的一种全新的服务方式。由于移动通信自身所具有的可移动性、无时空限制性、专属性、安全性和时尚性的特点,加上基于这些特点之上的短信息、游戏、支付、定位、办公等丰富多彩的应用服务,使得我国的移动增值业务在短短数年里从无到有,迅速发展为欣欣向荣的产业。本系统采用的是以ATmegal28单片机为核心的自动售货机,通过BENQ的13SM/GPRS M22模块与服务器通信来实现以手机支付形式的移动增值服务系统。在
[单片机]
基于AVR单片机设计的手机自动售货机
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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