资源简介

msp430 模块程序 包括DS18B20 PS2 串口 电机 AD 12864 键盘 DA等,对于学习MSP430相当有帮助。

资源截图

代码片段和文件信息

//st7920 12864 LCD的8位并行 MSP430F149驱动
/*
说明:此程序中工作在未设置430时钟 的情况下。
请他情况尚未测试。
2008/8月/11日
*/
#include 
#include“LCD_12864.h“
#define uchar unsigned char 
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
// 配置连线
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
#define   LCD_Data_DIR P5DIR
#define   LCD_Data_SEL P5SEL
#define   LCD_Data_IN P5IN
#define   LCD_Data_OUT P5OUT

#define   LCD_Ctrl_DIR P4DIR
#define   LCD_Ctrl_SEL P4SEL
#define   LCD_Ctrl_OUT P4OUT

#define   RS    0x80      //RS  接P4.7
#define   RW    0x40      //RW  接P4.6
#define   E     0x20    // E   接P4.5
#define   DATA  0xff    //数据口接P5

#define  delay140ns() _NOP();_NOP()
//延时函数  延时约100us
void delay_100us(void)
{
unsigned char i=8;
while(i--)
         _NOP();
}
void delay_20ms()
{
unsigned int i=1600;
        while(i--)
        _NOP();   
}

//忙状态检测函数  
unsigned char Busy_Test(void)
{
   unsigned char Busy;
LCD_Data_DIR = 0x00;   //设为输入
LCD_Data_SEL = 0x00;   //p设为普通IO

LCD_Ctrl_OUT |= RW;    //设置为读

LCD_Ctrl_OUT &= ~(RS+E);//设置为操作指令
      
LCD_Ctrl_OUT |= E;     //产生上跳沿读取数据
delay140ns();
Busy = LCD_Data_IN & 0x80; 
LCD_Ctrl_OUT &= ~E;     //恢复低电平
                
return(Busy);//返回忙标志
}

//忙时等待函数
void wait()
{
while(Busy_Test()==0x80);
}

//写控制命令函数
 void WriteCOM(unsigned char Command)
{
wait(); //忙时则等待
LCD_Data_DIR = 0xff;   //p5设为输出
LCD_Data_SEL = 0x00;   //p设为普通IO
        
LCD_Ctrl_OUT &= ~(RW + RS);   //写操作

LCD_Data_OUT = Command;  //发送控制命令
        
LCD_Ctrl_OUT |= E;       //产生上跳沿,发送数据

delay140ns();

LCD_Ctrl_OUT &= ~E;      //恢复低电平
}

//          写显示数据函数         //
 
void WriteData(unsigned char Data)
 {
wait(); // 忙时则等待

LCD_Data_DIR = 0xff;   //p5设为输出
LCD_Data_SEL = 0x00;   //p设为普通IO

LCD_Ctrl_OUT |= RS;   //RS置1 设置为数据
LCD_Ctrl_OUT &= ~RW;  //RW置0 设置为写操作 
                  
LCD_Data_OUT = Data;
      delay140ns(); 
LCD_Ctrl_OUT |= E;//E置1 产生上跳沿电平
      delay140ns();
LCD_Ctrl_OUT &= ~E;//E置低 恢复低电平
}

unsigned char ReadData(void)
{
unsigned char ReadCode;
wait();
LCD_Data_DIR=0x00;         //设置为输入
LCD_Data_SEL=0x00;         //设置为普通IO口

LCD_Ctrl_OUT |= RS;   //RS置1 设置为数据
LCD_Ctrl_OUT |= RW;          //RW置1 设置为读操作
LCD_Ctrl_OUT &= ~E;          //E置0 以备产生上跳沿

delay140ns();
LCD_Ctrl_OUT |= E;         //E置1  产生上跳沿
ReadCode = LCD_Data_IN;       //读取显示数据
LCD_Ctrl_OUT &= ~E;      //E置0  恢复为低电平

return ReadCode;
}

void WriteLine(char ADDRchar Data)//ADDR是DDRAM中的寄存器。 Data存放的是半角的字符,也就是ASCII码。
{
unsigned char count=0;
WriteCOM(ADDR);
for(count=0;count<16;count++)
{
WriteData(Data);
}
}

////////////////////////////////////////////////////////////////////////
// 供用户调用的函数
////////////////////////////////////////////////////////////////////////

//定义连个全局变量.
unsigned char CurTextRowCurTextColTextOverflow;

//==========================================

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      25631  2010-07-12 15:23  MSP430的模块程序---JJJ\12864并行_JJJ\Debug\Exe\wq.d43

     文件      61659  2010-07-12 15:23  MSP430的模块程序---JJJ\12864并行_JJJ\Debug\Obj\LCD_12864.r43

     文件      57261  2010-07-12 15:23  MSP430的模块程序---JJJ\12864并行_JJJ\Debug\Obj\main.r43

     文件        179  2010-07-12 15:23  MSP430的模块程序---JJJ\12864并行_JJJ\Debug\Obj\wq.pbd

     文件        156  2010-07-12 15:23  MSP430的模块程序---JJJ\12864并行_JJJ\ew.eww

     文件      10852  2010-07-12 15:23  MSP430的模块程序---JJJ\12864并行_JJJ\LCD_12864.c

     文件        874  2010-07-12 15:23  MSP430的模块程序---JJJ\12864并行_JJJ\LCD_12864.h

     文件       3335  2010-07-12 15:23  MSP430的模块程序---JJJ\12864并行_JJJ\settings\ew.wsdt

     文件       2672  2010-07-12 15:23  MSP430的模块程序---JJJ\12864并行_JJJ\settings\wq.cspy.bat

     文件       4722  2010-07-12 15:23  MSP430的模块程序---JJJ\12864并行_JJJ\settings\wq.dbgdt

     文件       1016  2010-07-12 15:23  MSP430的模块程序---JJJ\12864并行_JJJ\settings\wq.dni

     文件       2678  2010-07-12 15:23  MSP430的模块程序---JJJ\12864并行_JJJ\wq.dep

     文件      13743  2010-07-12 15:23  MSP430的模块程序---JJJ\12864并行_JJJ\wq.ewd

     文件      46756  2010-07-12 15:23  MSP430的模块程序---JJJ\12864并行_JJJ\wq.ewp

     文件        546  2010-07-12 15:23  MSP430的模块程序---JJJ\12位(未调试) DAC7800--TI\DAC.h

     文件       3121  2010-07-12 15:23  MSP430的模块程序---JJJ\12位(未调试) DAC7800--TI\DAC7800.dep

     文件      46762  2010-07-12 15:23  MSP430的模块程序---JJJ\12位(未调试) DAC7800--TI\DAC7800.ewp

     文件        161  2010-07-12 15:23  MSP430的模块程序---JJJ\12位(未调试) DAC7800--TI\DAC7800.eww

     文件       1901  2010-07-12 15:23  MSP430的模块程序---JJJ\12位(未调试) DAC7800--TI\DAC_invert.c

     文件      16640  2010-07-12 15:23  MSP430的模块程序---JJJ\12位(未调试) DAC7800--TI\Debug\Exe\DAC7800.d43

     文件       8888  2010-07-12 15:23  MSP430的模块程序---JJJ\12位(未调试) DAC7800--TI\Debug\Obj\DAC.r43

     文件        183  2010-07-12 15:23  MSP430的模块程序---JJJ\12位(未调试) DAC7800--TI\Debug\Obj\DAC7800.pbd

     文件       9877  2010-07-12 15:23  MSP430的模块程序---JJJ\12位(未调试) DAC7800--TI\Debug\Obj\DAC_invert.r43

     文件       2564  2010-07-12 15:23  MSP430的模块程序---JJJ\12位(未调试) DAC7800--TI\settings\DAC7800.cspy.bat

     文件         63  2010-07-12 15:23  MSP430的模块程序---JJJ\12位(未调试) DAC7800--TI\settings\DAC7800.dbgdt

     文件        179  2010-07-12 15:23  MSP430的模块程序---JJJ\12位(未调试) DAC7800--TI\settings\DAC7800.dni

     文件       3575  2010-07-12 15:23  MSP430的模块程序---JJJ\12位(未调试) DAC7800--TI\settings\DAC7800.wsdt

     文件       2700  2010-07-12 15:23  MSP430的模块程序---JJJ\16位 DAC7632--TI\DAC7632.dep

     文件      13743  2010-07-12 15:23  MSP430的模块程序---JJJ\16位 DAC7632--TI\DAC7632.ewd

     文件      46762  2010-07-12 15:23  MSP430的模块程序---JJJ\16位 DAC7632--TI\DAC7632.ewp

............此处省略296个文件信息

评论

共有 条评论