资源简介

MSP430F149单片机上,通过用DS18B20测量温度并在12864液晶屏上显示,整个工程使用IAR软件构建,具体电路连接可通过程序看出来。程序附加详细注释,仅供学习交流使用。

资源截图

代码片段和文件信息

//---------------************----------------------------------------------
//------------------*****************--------------------------------------
//12864的C文件应包含单片机库文件,端口设置以及各种根据时序图得来的功能函数。
//其中最基本的是读写和检查忙函数,并串口的区别就在于读写和检查函数以及端口设置
//主函数需包括声明函数库文件subfuncs.h及显示内容库文件dispdata.h。
//
//1、12864如只想写一个字符的话,先发送地址指令,再发送那个字符的十六进制ASCII
//   数据内容给12864.这跟串口操作原理一样。
//2、如数组中存储一个数字,要显示这个数字,记得要用这个语句:
//   Write_Data(dN[i]+0x30);
//--------------------*******************----------------------------------
//-----------------------******************--------------------------------

#include 
typedef unsigned char uchar;
typedef unsigned int  uint;

//端口配置
#define LCD_DataIn    P4DIR=0x00    //数据口方向设置为输入
#define LCD_DataOut   P4DIR=0xff    //数据口方向设置为输出
#define LCD2MCU_Data  P4IN
#define MCU2LCD_Data  P4OUT
#define LCD_CMDOut    P3DIR|=0x07     //P3口的低三位设置为输出
#define LCD_RS_H      P3OUT|=BIT0      //P3.0
#define LCD_RS_L      P3OUT&=~BIT0     //P3.0
#define LCD_RW_H      P3OUT|=BIT1      //P3.1
#define LCD_RW_L      P3OUT&=~BIT1     //P3.1
#define LCD_EN_H      P3OUT|=BIT2      //P3.2
#define LCD_EN_L      P3OUT&=~BIT2     //P3.2

/*******************************************
函数名称:Delay_1ms
功    能:延时约1ms的时间
参    数:无
返回值  :无
********************************************/
void Delay_1ms(void)
{
uchar i;
    
for(i = 150;i > 0;i--)  _NOP();

/*******************************************************************
函数名称:Delay_Nms
功    能:延时N个1ms的时间
参    数:n--延时长度
返回值  :无
注    意:如果知道系统MCLK为8Mhz,且没用到定时器A则可用以下函数
         精确定时Nms。真的要使用以下函数时,复制粘贴其函数体内容到
         Delay_Nms函数内容即可,无需改Delay_Nms其名字,否则12864下面
         的函数将调用不了Delay_Nms函数。
         
函数名称:DelayNus
          功    能:实现N个微秒的延时
          参    数:n--延时长度
          返回值  :无
          说明    :函数通过定时器A取得精确的定时时间!!!
          定时器A的计数时钟是1MHz,CPU主频8MHz
          所以通过定时器延时能够得到极为精确的
          us级延时
          注    意:定时器A使用的时钟源可设置为SMCLK,
          定时一定时间时,可设置时钟源、分频数、CCR0、计数模式,
          等待到中断标志TAIFG置位时停止计数,不必进入中断!也进入不了中断!
要想进入中断程序,设置CCR0前,必须设置CCIFG中断标志位才能进入中断!
也就是,在设置CCR0前,需编写这么一句:CCTL0 = CCIE; //设置捕捉CCIFG中断。
void DelayNus(uint n)
{   
    TACTL |= TASSEL_2 + ID_3;//计数时钟选择SMLK=8MHz,1/8分频后为1MHz
    CCR0 = n;    //1Mhz的计数时钟,则CCR0=1时捕捉的是1us
    TACTL |= MC_1;           //增计数到CCR0
    while(!(TACTL & BIT0));   //等待定时Nus后置位中断标志TAIFG
    TACTL &= ~MC_1;          //停止计数,在于清除了计数器设置!TACLR=1。
    TACTL &= ~BIT0;          //清除中断标志
}
*****************************************************************************/

void Delay_Nms(uint n)
{
    uint i;
    
    for(i = n;i > 0;i--)    Delay_1ms();
}
/*******************************************
函数名称:Check_Busy
功    能:检查忙标志,一直到系统不忙为止
参    数:无
返回值  :无
********************************************/
void Check_Busy(void)
{
  uchar lcdtemp = 0;

    LCD_CMDOut;             //P3口的低三位设置为输出
    LCD_RS_L;
    LCD_RW_H;                //先读忙
    LCD_DataIn;              //P4端口设置为输出  
    do               

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

     文件      15185  2013-02-14 17:06  D2\12864.c

     文件       1105  2013-02-18 10:43  D2\12864.h

     文件        690  2008-03-04 21:55  D2\BoardConfig.h

     文件       3835  2014-07-24 18:52  D2\D2.dep

     文件      20123  2013-02-14 12:08  D2\D2.ewd

     文件      50316  2013-02-14 12:08  D2\D2.ewp

     文件        156  2013-02-13 10:10  D2\D2.eww

     文件      27958  2013-02-14 12:05  D2\Debug\Exe\D2.d43

     文件       3805  2013-02-18 10:50  D2\Debug\Exe\D2.txt

     文件      51627  2013-02-14 17:06  D2\Debug\Obj\12864.r43

     文件        286  2014-07-24 18:52  D2\Debug\Obj\D2.pbd

     文件      14827  2013-02-14 17:04  D2\Debug\Obj\DS18B20.r43

     文件      22397  2013-02-18 10:50  D2\Debug\Obj\main.r43

     文件         53  2013-02-14 14:58  D2\dispdata.h

     文件       9562  2013-02-14 17:04  D2\DS18B20.c

     文件        260  2007-12-31 11:56  D2\DS18B20.h

     文件       4234  2013-02-18 10:50  D2\main.c

     文件       1151  2014-07-24 18:52  D2\settings\D2.cspy.bat

     文件         63  2014-07-24 18:52  D2\settings\D2.dbgdt

     文件        486  2014-07-24 18:52  D2\settings\D2.dni

     文件       2871  2014-07-24 18:52  D2\settings\D2.wsdt

     目录          0  2014-07-24 18:29  D2\Debug\Exe

     目录          0  2014-07-24 18:29  D2\Debug\List

     目录          0  2014-07-24 18:52  D2\Debug\Obj

     目录          0  2014-07-24 18:29  D2\Debug

     目录          0  2014-07-24 18:29  D2\settings

     目录          0  2014-07-24 18:52  D2

----------- ---------  ---------- -----  ----

               230990                    27



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

评论

共有 条评论