0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

AVR单片机读写CPLD程序实例(ATmega128程序案例)

算法&编程学院 2018-04-19 12:40 次阅读

项目中需要使用CPLD完成一部分算法设计,参数由AVR给出,因此需要完成AVR和CPLD的通信。因此写了一个测试程序。CPLD挂在AVR的数据和地址总线上,AVR使用ATmega128,在CPLD中设置几个寄存器,通过AVR读写寄存器来实现两者之间的通信。

Mega128的外部存储空间从0X1100开始,因此只需要配置相应的寄存器后读取或者写入相应的地址就可以,程序比较简单,注释中都有说明,仅供参考。

/*******************************************************************

名称:mian.c

功能:测试AVR与CPLD的通信,将数据写入CPLD中配置的寄存器,然后读出,

通过串口输出做比较

作者:emouse

时间:2011.1.4

版本:1.0

注意:无

********************************************************************/#include"avr/io.h"

#include"avr/interrupt.h"

#include"util/delay.h"

#defineSetBit(Port,N)(Port|=(1<

#defineClrBit(Port,N)(Port&=~(1<

#defineReverBit(Port,N)(Port^=(1<

#defineGetBit(Pin,N)((Pin>>N)&0x01)//读取IO某一位

unsignedchardata;

voidXRAM_example(void)

{

unsignedchar*q=0x1100;//寄存器1

unsignedchar*m=0x1101;//寄存器2

unsignedchar*p=0x1102;//寄存器3

PORTD=0XFF;

DDRD=0XFF;

DDRC=0xFF;//默认情况下端口C用做高地址,可以每只寄存器把端口C释放

PORTC=0x00;

*q=0xCC;//向寄存器1中写入数据,CPLD中自动将寄存器1的值付给寄存器3

data=*p;//独处寄存器3中的值,在循环中用串口输出

}

voidUSART0_Init(void)

{

UCSR0A=0x20;//波特率不加倍,单机通信模式

UCSR0B=0x18;//中断不使能,允许发送和接收

UCSR0C=0x06;//异步模式,无校验,8位数据,1位停止位

UBRR0H=0x00;

UBRR0L=51;//9600波特率晶振8M

}

voidUSART0_SendByte(unsignedchardata)

{

while(!(UCSR0A&(1<

UDR0=data;//发送数据

}

intmain(void)

{

unsignedchari=0;

USART0_Init();//初始化USART0接口

MCUCR=0xC0;//使能外部SRAM

XMCRA=0x00;

DDRA=0XFF;

PORTA=0XFF;

DDRE=0xff;

DDRD=0xff;

PORTD=0x00;//使能CSA16A17=11

USART0_SendByte(0x88);

while(1)

{

ReverBit(PORTA,0);

XRAM_example();

_delay_ms(500);

USART0_SendByte(data);

}

}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpld
    +关注

    关注

    32

    文章

    1257

    浏览量

    169594
  • AVR单片机
    +关注

    关注

    22

    文章

    608

    浏览量

    55600
  • ATmega128
    +关注

    关注

    3

    文章

    76

    浏览量

    26665
收藏 人收藏

    评论

    相关推荐

    ATmega128单片机入门与提高》光盘.rar

    大量的实用程序,并在最后一章给出了许多综合实例实例程序全部用C语言编写,且已全部在ICCAVR 6.31A开发环境上编译通过。《Atmega128
    发表于 08-16 10:36

    AVR ATMega128烧写程序问题

    烧写以前运行正常的程序AVR ATMega128芯片中,为什么现在没有反应了,接着烧写了几个都是这样,疑惑中。。。。。。
    发表于 03-23 15:37

    AVR单片机应用开发指南及实例

    图书简介及目录:《AVR单片机应用开发指南及实例精解》结构清晰,由浅入深,通俗易懂,结合ATmega128单片机阐述
    发表于 07-28 10:28

    采用ATMEGA128单片机结合CPLD 实现了对VGA显示

    采用ATMEGA128 单片机结合CPLD 实现了对VGA 显示器和激光打印机的控制作者:时永乐 王培勇 转贴自:微计算机信息摘要:用 ATMEGA128
    发表于 02-08 09:52 107次下载

    ATmega128几个常用程序例子

    ATmega128单片机经典例题 对初学者很有帮助的哦
    发表于 11-03 18:14 63次下载

    ATmega128实例程序

    AVR单片机学习 学习128的经典 对初学者很有帮助 哦
    发表于 11-03 18:23 69次下载

    AVR单片机Atmega128在FPGA配置中的运用

    在嵌入式系统设计中,掌握MCU对FPGA的配置,对系统的设计是十分必要的。根据EPFIOKIO的配置时序和AVR单片机Atmega128的接口特点,详细介绍了Atmega128对EPF
    发表于 10-11 15:35 18次下载

    基于Atmega128单片机SD卡读写程序(免费分享)

    avr Atmega128单片机SD卡读写程序
    发表于 12-29 20:55 21次下载

    ATmega128单片机的内部资源、工作原理和硬件电路设计的资料免费下载

    在本系统中,本小节主要讲 ATmega128 单片机的内部资源、工作原理和硬件电路设计等。2.5.1 ATmega128 芯片介绍 ATmega128 为基于
    发表于 09-21 15:50 103次下载
    <b class='flag-5'>ATmega128</b><b class='flag-5'>单片机</b>的内部资源、工作原理和硬件电路设计的资料免费下载

    AVR单片机Atmega128在FPGA配置的应用和对EPF10K10软硬件设计原理

    在嵌入式系统设计中,掌握MCU对FPGA的配置,对系统的设计是十分必要的。根据EPF10K10的配置时序和AVR单片机Atmega128的接口特点,详细介绍了Atmega128对EPF
    发表于 10-26 15:34 9次下载
    <b class='flag-5'>AVR</b><b class='flag-5'>单片机</b><b class='flag-5'>Atmega128</b>在FPGA配置的应用和对EPF10K10软硬件设计原理

    AVR单片机CPLD的通信设计

    项目中需要使用CPLD完成一部分算法设计,参数由AVR给出,因此需要完成AVRCPLD的通信。因此写了一个测试程序
    发表于 06-03 15:24 1190次阅读

    使用ATmega128单片机设计数码管秒表的程序和工程文件免费下载

    本文档的主要内容详细介绍的是使用ATmega128单片机设计数码管秒表的程序和工程文件免费下载。
    发表于 07-31 08:00 4次下载
    使用<b class='flag-5'>ATmega128</b><b class='flag-5'>单片机</b>设计数码管秒表的<b class='flag-5'>程序</b>和工程文件免费下载

    基于ATmega128单片机的USART接口程序的开发

    内大容量数据存储器RAM,更适合采用高级语言编写系统程序),编写高效可靠的UART收发接口(低层)程序。下面是一个典型的ATmega128的软件USART的接口程序
    的头像 发表于 10-04 17:49 2317次阅读
    基于<b class='flag-5'>ATmega128</b><b class='flag-5'>单片机</b>的USART接口<b class='flag-5'>程序</b>的开发

    ATmega128单片机](熔丝修改后无法烧录程序情况)

    @ATmega128单片机AVRATmega128单片机](熔丝修改后无法烧录程序情况)本人
    发表于 11-15 09:36 26次下载
    <b class='flag-5'>ATmega128</b><b class='flag-5'>单片机</b>](熔丝修改后无法烧录<b class='flag-5'>程序</b>情况)

    AVR单片机基础与实例进阶

    本书以常用的ATmega128单片机为主线,介绍和讲述AVR单片机的组成及其在嵌入式系统中的应用。全书包括16章,第1~5章主要讲解ATmega1
    发表于 04-20 16:04 6次下载