77范文网 - 专业文章范例文档资料分享平台

MSP430x14x系列单片机程序实例(6)

来源:网络收集 时间:2019-08-17 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

} }

8、DISPLAY-LED-数码管显示测试程序

/******************************************************************** //DM430-A型开发板数码管显示程序,依次显示0~7

//数码管控制采用74HC573锁存器控制,采用动态显示机制

//数码管为4位共阴型,对应的位低电平有效,可以控制位信号选择哪一位显示 ********************************************************************/

#include

#include \ //开发板配置头文件,主要配置IO端口信息

//*********************************************************************** // MSP430IO口初始化

//*********************************************************************** void Port_Init() {

LED8SEL = 0x00; //设置IO口为普通I/O模式,此句可省 LED8DIR = 0xFF; //设置IO口方向为输出 LED8PORT = 0xFF; //P2口初始设置为FF

DATASEL = 0x00; //设置IO口为普通I/O模式,此句可省 DATADIR = 0xFF; //设置IO口方向为输出 DATAPORT = 0xFF; //P4口初始设置为FF

CTRSEL = 0x00; //设置IO口为普通I/O模式,此句可省 CTRDIR |= BIT3 + BIT4; //设置IO口方向为输出,控制口在P63,P64 CTRPORT = 0xFF; //P6口初始设置为FF }

//*********************************************************************** // 74HC573控制数码管动态扫描并显示数据

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

void Display() {

uchar i,j;

j=0x01; //此数据用来控制位选 for(i=0;i<8;i++) {

DCTR1; //控制数码管段数据的74HC573的LE管脚置高 WCTR1; //控制数码管位的74HC573的LE管脚置高

DATAPORT=~j; //设置要显示的位,也就是哪一个数码管亮 WCTR0; //锁存位数据,下面送上段数据以后,就显示出来了

DATAPORT=table[i]; //送要显示的数据,就是段数据,如显示0送的是0x3f

DCTR0; //锁存段数据,数码管亮一个时间片刻 j=j<<1; //移位,准备进行下一位的显示

delay_ms(200); //显示一个时间片刻,会影响亮度和闪烁性 } }

//*********************************************************************** // 主程序

//*********************************************************************** void main(void) {

WDT_Init(); //看门狗初始化 Clock_Init(); //时钟初始化

Port_Init(); //端口初始化,用于控制IO口输入或输出 while(1) {

Display(); //调用显示函数,依次显示1~7 } }

9、DS18B20-DS18B20采集温度测试程序

/******************************************************************** //DM430-A型开发板温度传感器DS18B20控制程序,显示环境温度,未校准

//DS18b20的C语言驱动程序,三位数码管显示,读取当前环境温度,显示精度达0.1度,温度范围0-99度

//DS18B20 详细引脚功能描述1、GND 地信号;2、DQ数据输入出引脚。开漏单总线接口引脚。当被用在寄生电源下

//也可以向器件提供电源;3、VDD可选择的VDD 引脚。当工作于寄生电源时,此引脚必须接地。

//DS18B20 的使用方法。DS18B20 采用的是1-Wire 总线协议方式 //即在一根数据线实现数据的双向传输,数据脚接在P53上

********************************************************************/ #include #include \

//************************************************************************* // 初始化IO口子程序

//************************************************************************* void Port_Init() {

LED8SEL = 0x00; //设置IO口为普通I/O模式,此句可省 LED8DIR = 0xFF; //设置IO口方向为输出 LED8PORT = 0xFF; //P2口初始设置为FF

DATASEL = 0x00; //设置IO口为普通I/O模式,此句可省 DATADIR = 0xFF; //设置IO口方向为输出 DATAPORT = 0xFF; //P4口初始设置为FF

CTRSEL = 0x00; //设置IO口为普通I/O模式,此句可省 CTRDIR |= BIT3 + BIT4; //设置IO口方向为输出,控制口在P63,P64 CTRPORT = 0xFF; //P6口初始设置为FF }

//************************************************************************* // 74HC573控制数码管动态扫描显示函数,显示采集到的温度

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

void Display_DS18B20(uint data_b,uint data_s,uint data_g) {

uchar i,j;

j=0x01; //此数据用来控制位选 for(i=0;i<5;i++) //用后3位数码管来显示 {

DCTR1; WCTR1; DATAPORT=~j; WCTR0; j=(j<<1);

DATAPORT=0x00; //前5位都不显示,送数据00即可 DCTR0; delay_ms(2); }

DCTR1; //开始显示10位 WCTR1; DATAPORT=~j; WCTR0; j=(j<<1);

DATAPORT=table[A1]; DCTR0; delay_ms(1);

DCTR1; //开始显示个位 WCTR1; DATAPORT=~j; WCTR0; j=(j<<1);

DATAPORT=table[A2]|0x80; //显示小数点 DCTR0; delay_ms(1);

DCTR1; //开始显示小数点后面的数据 WCTR1; DATAPORT=~j; WCTR0; j=(j<<1);

DATAPORT=table[A3]; DCTR0; delay_ms(1);

DCTR1; WCTR1; DATAPORT=0xff; WCTR0; }

//************************************************************************* // DS18B20初始化

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

unsigned char DS18B20_Reset(void) //初始化和复位 {

unsigned char i; DQ_OUT; DQ_CLR; delay_us(500); DQ_SET; DQ_IN;

delay_us(80); i = DQ_R;

delay_us(500); if (i) {

//延时500uS(480-960)

//延时80uS //延时500uS(保持>480uS)

return 0x00; } else {

return 0x01; } }

//************************************************************************* // DS18B20读一个字节函数

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

unsigned char ds1820_read_byte(void) {

unsigned char i;

unsigned char value = 0; for (i = 8; i != 0; i--) {

value>>= 1; DQ_OUT; DQ_CLR;

delay_us(4); //*延时4uS DQ_SET; DQ_IN;

delay_us(10); //*延时10uS if (DQ_R) {

value|=0x80; }

delay_us(60); //*延时60uS }

return(value); }

//************************************************************************* // 向18B20写一个字节函数

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

/*DS18B20字节写入函数*/

void ds1820_write_byte(unsigned char value) {

unsigned char i; for (i = 8; i != 0; i--) {

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库MSP430x14x系列单片机程序实例(6)在线全文阅读。

MSP430x14x系列单片机程序实例(6).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/681230.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: