MSP430F149单片机对SDRAM控制程序设计

发布者:泉趣人最新更新时间:2015-12-22 来源: eefocus关键字:MSP430F149  单片机  SDRAM 手机看文章 扫描二维码
随时随地手机看文章
MSP430的内核结构采用具有高透明格式的精简指令集(RISC)设计。指令分为硬件实现的内核指令和利用这一硬件结构的具有更高效率的模拟指令,使用起来非常方便。在本控制系统中,单片机完成初始化任务(设置标志位、看门狗的工作方式)后,就进入低功耗睡眠状态。中断将其唤醒,转而进入相应的子程序。基于MSP430F149单片机的SDRAM控制程序如下。

#include

void Init(void);

void Send(char* Data, unsigned int Length);

void SendAddress(unsigned int Address);

void SendData(unsigned int Data);

unsigned int ReceiveData(void);

char ReadData[20], Buffer[20];

unsigned char i=0, j, k, flag=0;

unsigned int Data;

unsigned int DisplayData;

char DisplayString[20];

 

void main(void)

{

WDTCTL = WDTPW + WDTHOLD; // Stop WDT

Init(); // UART1 inition

_EINT(); // enable interrupt

while(1)

{

DisplayData = ReceiveData();

if (DisplayData == 0)

{

k = 0;

if (DisplayData != 0)

{

DisplayString[k] = '0' + DisplayData % 10;

DisplayData = DisplayData / 10;

k++;

}

Send(DisplayString, k);

}

}

}

void Init(void)

{

UCTL1 &= ~SWRST; // reset swrst and usart1 enable

UCTL1 = 0x10; // 8-bit character

UBR01 = 0x03; // 8MHz 38400

UBR11 = 0x00; // 8MHz 38400

UMCTL1 = 0x4A; // U1CLK = SMCLK=TX2

UTCTL1 = 0x10;

ME2 |= 0x30; // Enable USART1 TXD/RXD

P3SEL= 0xC0; // enable P3.6,7 USART1 TXD/RXD

P3DIR= 0x40; // P3.6 output direction

IE2 |= URXIE1; // Enable USART1 RX interrupt

}

interrupt [UART1RX_VECTOR] void UART1RX(void) // read data

{

if (flag == 0) // wait for strat char of "0xAA" or "0xDD"

{

if (RXBUF1 == 0xAA) // alter flag

{

flag = 1;

}

else if (RXBUF1 == 0xDD) // alter flag

{

flag = 2;

}

i = 0;

}

else

{

ReadData[i] = RXBUF1;

if (ReadData[i++] == 0xFF) // end char of "0xFF"

{

Data = 0;

for (j=i-1; j!=0; j--)

{

Data = Data * 10 + (ReadData[j] - '0');

}

if (flag == 1) // send address

{

SendAddress(Data);

}

else if (flag == 2) // send data

{

SendData(Data);

}

flag = 0;

}

}

}

void Send(char* Data, unsigned int Length) // send data

{

unsigned int i;

UCTL1 |= TXWAKE;

TXBUF1 = 0x01;

while ((UTCTL1&0x01) == 0);

UCTL1 &= ~TXWAKE;

for(i=0; i<=Length; i++)

{

TXBUF1 = Data[i];

while ((UTCTL1&0x01) == 0);

}

}

void SendAddress(unsigned int Address) // send address

{

// address buses

P1DIR |= 0xE0; // P1.5-1.7 address buses

P2DIR = 0xFF; // P2.0-2.7 address buses

P3DIR |= 0x1F; // P3.0-3.5 address buses

P4DIR |= 0x1F; // P4.0-4.5 address buses

P1OUT |= (Address & 0x07);

P2OUT |= (Address & 0x7F8) >> 3;

P3OUT |= (Address & 0x1F800) >> 11;

P4OUT |= (Address & 0x7E0000) >> 17;

}

void SendData(unsigned int Data) // send data

{

// data buses

P4DIR |= 0xC0; // P4.6-4.7 data buses

P5DIR |= 0x1F; // P5.0-5.5 data buses

P4OUT |= (Data & 0x03);

P5OUT |= (Data & 0xFC) >> 2;

}

 

unsigned int ReceiveData(void) // send data

{

unsigned int Data;

// data buses

P4DIR &= 0x3F; // P4.6-4.7 data buses

P5DIR &= 0xE0; // P5.0-5.5 data buses

Data = ((P5IN & 0x1F) << 2) | ((P4IN & 0xC0) >> 6);

return Data;

 

}

关键字:MSP430F149  单片机  SDRAM 引用地址:MSP430F149单片机对SDRAM控制程序设计

上一篇:C语言难点总结
下一篇:单片机 液体点滴控制

推荐阅读最新更新时间:2024-03-16 14:41

PIC16F877单片机驱动1602液晶屏的数字时钟程序
4MHz时钟--PIC-KIT3。 main.c: #include #include #include Display.h #include main.h __CONFIG(WDTDIS & LVPDIS & HS & PWRTDIS & BORDIS); //设置877配置位 /************************定义显示字符*****************************************/ uchar Welcome_1 = { Welcome To Use }; //uchar Welcome_2 = { DSK-27 System ! }; //uchar Power_On1
[单片机]
基于CH375的LPT-USB打印机驱动器的设计
1 引言   本课题来源于北京普析通用公司。 由于该公司现有光谱仪器的单机版(如1810和T6等)采用的是并行口打印技术,而随着USB打印机技术的逐渐普及,并行口打印机越来越少,有些用户原有的打印机只是USB接口而非并行口,因此现有仪器对打印机的支持不能适应用户需要。为了使该公司的并行口仪器直接和USB打印机相连,笔者设计了一种LPT-USB打印机驱动器,实现并口仪器与USB打印机的连接。   笔者利用单片机和USB总线接口器件实现LPT-USB打印机驱动器的设计。利用该设计将能够实现并行打印口数据在USB打印机上的直接打印,克服了有些并口仪器必须连接并口打印机才能打印的弊端,极大地方便了用户的使用。 2 CH375的特点及工
[应用]
单片机(51) 开关控制LED亮灭
#include regx51.h sbit LED1=P1^0;//定义引脚 sbit LED2=P1^1; sbit key1=P0^0; sbit key2=P0^1; void delay(unsigned int i){ while(i--); }//设置延时函数 void main(){ while(1){ LED1=key1;//当开关按下时,电频触发为低电平,开关弹起时为高电频 LED2=key2; delay(20000); LED1=1; LED2=1; delay(20000); } }
[单片机]
基于单片机的串联锂离子电池组监测系统设计
介绍一个以51系列单片机为主控单元的串联锂离子电池组监测系统。采用差分放大器和模拟开关轮流检测单体电池电压,利用单片机的IO接口和DS18B20实现单总线多点温度检测。系统简单经济,经过试验,能可靠、准确地对串联锂离子电池组进行监测。 具有高电压、高容量、循环寿命长、安全性能好等优点的锂离子电池,在便携式电子设备、电动汽车、空间技术、国防工业等多方面具有广阔的应用前景。由若干节锂离子电池经串联组成的动力锂离子电池组目前应用最为广泛。由于每节单体电池的电压不一致,使用中电池不允许过充电、过放电,电池的性能和寿命受温度影响较大等特点,必须对串联锂离子电池组进行监测,确保在使用中锂离子电池具有良好的状态,或者使用中电池出现问题立即报
[电源管理]
基于<font color='red'>单片机</font>的串联锂离子电池组监测系统设计
WPF与51单片机之间的串口通信
WPF部分: (1)建立WPF工程,步骤略 下面是MainWindow.xaml.cs的内容 1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 using System.Windows; 5 using System.Windows.Controls; 6 using System.Windows.Data; 7 using System.Windows.Documents; 8 using System.Windows.Input; 9 using System.Windows.Media; 10
[单片机]
WPF与51<font color='red'>单片机</font>之间的串口通信
单片机上的发光二极管(LED灯)
LED(light-emitting diode),即发光二极管,俗称 LED 小灯,它的种类很多,参数也不尽相同,我们板子上用的是普通的贴片发光二极管。这种二极管通常的正向导通电压是 1.8V到 2.2V 之间,工作电流一般在 1mA~20mA 之间。其 中,当电流在 1mA~5mA 之间变化时,随着通过 LED 的电流越来越大,我们的肉眼会明显感觉到这个小灯越来越亮,而当电流从5mA~20mA 之间变化时,我们看到的发光二极管的亮度变化就不是太明显了。当电流超过20mA 时,LED 就会有烧坏的危险了,电流越大,烧坏的也就越快。所以我们在使用过程中应该特别注意它在电流参数上的设计要求。 那么下面我们来看一下这个发光二极管在开发
[单片机]
<font color='red'>单片机</font>上的发光二极管(LED灯)
基于51单片机的L298N直流电机调速系统
本此设计选择STC89C52单片机作为主控芯片,选取带有光电编码器的直流电机作为被控对象,利用单片机的T0定时器产生PWM信号并送到直流电机。在Proteus仿真环境下搭建了L298N直流电机驱动电路、矩阵键盘扫描电路以及LCD12864显示电路。实现了直流电机的启动、加速、正转、反转、制动等功能。同时,采用PID控制算法可实现电机速度在特定的场合实现自动切换。 单片机源程序如下: #include reg51.h #include intrins.h #include math.h #include lcd.h #include Key.h #include Motor.h #include LCD12
[单片机]
基于51<font color='red'>单片机</font>的L298N直流电机调速系统
单片机实现碾米抛光机的自动控制
1 引 言 经过多道工序的碾制之后,稻米的谷糠已被剥去,但米粒的表面显得比较粗糙,为保证米的质量和外观,需进行稻米加工的最后一道工序:抛光。米粒的抛光是由碾米抛光机来完成的。通过抛光可使米粒表面致密光洁,既保证了米的质量,又改善了米粒的外观。抛光是在一定温度和湿度条件下,经过一定时间的研磨完成的。因此抛光过程中一些重要的工艺参数必须得到满足。首先,加入水的温度必须严格控制,温度太低或太高都会使抛光后的米粒发黑,影响抛光的质量;其次,加入水量的多少必须严格控制。加入的水量太多,抛光后的湿度太大,既影响抛光的质量也影响将来的储运;加入的水量太少,抛光时的湿度太小,抛光后米粒的光洁度和致密度会达不到要求。 国产的中小型抛光机现有的抛光方
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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