-
大小: 45KB文件类型: .rar金币: 1下载: 0 次发布日期: 2021-06-01
- 语言: 其他
- 标签: DS18B20 12864显示 MSP430F149
资源简介
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个文件信息
相关资源
- nrf2401的收发程序 带到DS18B20
- LCD12864 万年历 单片机 农历 显示 温度
- 基于MSP430F149控制LCD12864串口显示C程序
- 51单片机做的温度计和AD采样,用的
- 基于msp430f149的ds18b20显示程序
- MSP430F149驱动OV7670摄像头
- MSP430F149 read SD card
- 基于HC-SR04超声波测距LCD12864显示源码
- AVR-mega128单片机实现温度DS18B20,prot
- 1602 基于89C51单片机的DS18B20恒温控制系
- DS18B20数码管显示温度
- DS18B20 STC1T系列单片机驱动程序
- MSP430F149读写SD卡程序
- 单片机程序DS18B20-液晶1602显示温度和
- 51单片机DS18B20程序及proteus仿真
- 基于VHDL控制的DS18B20温度测量程序
- msp430f149单路AD采样电压值并在lcd1602上
- 2线DS18B20程序 二线DS18B20程序 18B20寄生
- c8051f020的12864显示
- MSP430F149写的NRF24L01收发代码
- 基于DSP2812的DS18B20温度采集
- 利用DSP F28335 实现了12864显示工程
- MSP430F149的SD卡模块驱动
- 基于msp430f149的FFT算法,结果在1602液晶
- 基于单片机的温室大棚温湿度亮度自
- DS18B20中文资料--新版.pdf
- DS18B20温度采集+串口发送+模块化编程
- MSP430F149 最小系统板原理图
- 基于430单片机的万年历程序
- 基于STM32的温控系统原理图
评论
共有 条评论