MSP430x14x系列单片机程序实例(7)
DQ_OUT; DQ_CLR;
delay_us(4); //延时4uS if (value & 0x01) {
DQ_SET; }
delay_us(80); //延时80uS DQ_SET; //位结束 value>>= 1; } }
//************************************************************************* // 发送温度转换命令
//*************************************************************************
/*启动ds1820转换*/ void ds1820_start(void) {
DS18B20_Reset();
ds1820_write_byte(0xCC); //勿略地址 ds1820_write_byte(0x44); //启动转换 }
//************************************************************************* // DS8B20读取温度信息
//*************************************************************************
unsigned int ds1820_read_temp(void) {
unsigned int i;
unsigned char buf[9];
DS18B20_Reset();
ds1820_write_byte(0xCC); //勿略地址 ds1820_write_byte(0xBE); //读取温度 for (i = 0; i < 9; i++) {
buf[i] = ds1820_read_byte(); }
i = buf[1]; i <<= 8; i |= buf[0];
temp_value=i;
temp_value=(uint)(temp_value*0.625); //不是乘以0.0625的原因是为了把小数点后一位数据也转化为可以显示的数据 //比如温度本身为27.5度,为了在后续的数据处理程序中得到BCD码,我们先放大到275
//然后在显示的时候确定小数点的位置即可,就能显示出27.5度了 return i; }
//************************************************************************* // 温度数据处理函数
//************************************************************************* void data_do(uint temp_d) {
uint A2t;
A1=temp_d/100; //分出百,十,和个位 A2t=temp_d0; A2=A2t/10; A3=A2t; }
//*********************************************************************** // 主程序
//*********************************************************************** void main(void) {
uchar j;
WDT_Init(); //看门狗初始化 Clock_Init(); //时钟初始化
Port_Init(); //端口初始化,用于控制IO口输入或输出 DS18B20_Reset(); //复位D18B20 while(1) {
ds1820_start(); //启动一次转换 ds1820_read_temp(); //读取温度数值
data_do(temp_value); //处理数据,得到要显示的值 for(j=0;j<200;j++) {
Display_DS18B20(A1,A2,A3); //显示温度值 } } }
10、DS1302-12864在12864液晶中显示测试程序
/******************************************************************** //DM430-A型最开发板实时时钟DS1302测试程序,显示到12864液晶上
//显示模式为汉字模式,直接将12864插入12864接口即可,朝外,液晶位于主板外侧 //注意选择液晶的电源,位于电位器附近,可选5V或3.3V,根据液晶电压进行选择 ********************************************************************/ #include
/*定义初始时间,BCD码格式,下面时间201-11-14,09:55:00,星期一*/ unsigned char time_buf[8] = {0x20,0x11,0x11,0x14,0x09,0x55,0x00,0x01};
//************************************************************************* // 初始化IO口子程序
//************************************************************************* void Port_Init() {
P4SEL = 0x00; P4DIR = 0xFF; P5SEL = 0x00;
P5DIR|= BIT0 + BIT1 + BIT5 + BIT6 + BIT7; PSB_SET; //液晶并口方式 RST_SET; //复位脚RST置高 }
//*********************************************************************** //向DS1302写入一字节数据
//*********************************************************************** void DS1302_write_byte(unsigned char addr, unsigned char d) {
unsigned char i; RESET_SET; //启动DS1302总
/*写入目标地址:addr*/ IO_OUT;
addr = addr & 0xFE; //最低位置零 for (i = 0; i < 8; i ++) { if (addr & 0x01) {
IO_SET; } else
{
IO_CLR; }
SCK_SET; SCK_CLR;
addr = addr >> 1; }
/*写入数据:d*/ IO_OUT;
for (i = 0; i < 8; i ++) {
if (d & 0x01) {
IO_SET; } else {
IO_CLR; }
SCK_SET; SCK_CLR; d = d >> 1; }
RESET_CLR; //停止DS1302总线 }
//*********************************************************************** // 从DS1302读出一字节数据
//*********************************************************************** unsigned char DS1302_read_byte(unsigned char addr) {
unsigned char i; unsigned char temp; RESET_SET; /*写入目标地址:addr*/ IO_OUT;
//启动DS1302总线
addr = addr | 0x01; //最低位置高 for (i = 0; i < 8; i ++) {
if (addr & 0x01) {
IO_SET; } else {
IO_CLR; }
SCK_SET; SCK_CLR; addr = addr >> 1; }
/*输出数据:temp*/ IO_IN;
for (i = 0; i < 8; i ++) {
temp = temp >> 1; if (IO_R) {
temp |= 0x80; } else {
temp&= 0x7F; }
SCK_SET; SCK_CLR; }
RESET_CLR; //停止DS1302总线 return temp; }
//*********************************************************************** // 向DS302写入时钟数据
//*********************************************************************** void DS1302_write_time(void) {
DS1302_write_byte(DS1302_control_add,0x00); //关闭写保护 DS1302_write_byte(DS1302_sec_add,0x80); //暂停 //DS1302_write_byte(DS1302_charger_add,0xa9); //涓流充电 DS1302_write_byte(DS1302_year_add,time_buf[1]); //年 DS1302_write_byte(DS1302_month_add,time_buf[2]); //月 DS1302_write_byte(DS1302_date_add,time_buf[3]); //日 DS1302_write_byte(DS1302_day_ad …… 此处隐藏:2376字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [法律文档]苏教版七年级语文下册第五单元教学设计
- [法律文档]向市委巡视组进点汇报材料
- [法律文档]绵阳市2018年高三物理上学期第二次月考
- [法律文档]浅析如何解决当代中国“新三座大山”的
- [法律文档]延安北过境线大桥工程防洪评价报告 -
- [法律文档]激活生成元素让数学课堂充满生机
- [法律文档]2014年春学期九年级5月教学质量检测语
- [法律文档]放射科标准及各项计1
- [法律文档]2012年广州化学中考试题和答案(原版)
- [法律文档]地球物理勘查规范
- [法律文档]《12系列建筑标准设计图集》目录
- [法律文档]2018年宁波市专技人员继续教育公需课-
- [法律文档]工会委员会工作职责
- [法律文档]2014新版外研社九年级英语上册课文(完
- [法律文档]《阅微草堂笔记》部分篇目赏析
- [法律文档]尔雅军事理论2018课后答案(南开版)
- [法律文档]储竣-13827 黑娃山沟大开挖穿越说明书
- [法律文档]《产品设计》教学大纲及课程简介
- [法律文档]电动吊篮专项施工方案 - 图文
- [法律文档]实木地板和复合地板的比较
- 探析如何提高电力系统中PLC的可靠性
- 用Excel函数快速实现体能测试成绩统计
- 教师招聘考试重点分析:班主任工作常识
- 高三历史选修一《历史上重大改革回眸》
- 2013年中山市部分职位(工种)人力资源视
- 2015年中国水溶性蛋白市场年度调研报告
- 原地踏步走与立定教学设计
- 何家弘法律英语课件_第十二课
- 海信冰箱经销商大会——齐俊强副总经理
- 犯罪心理学讲座
- 初中英语作文病句和错句修改范例
- 虚拟化群集部署计划及操作流程
- 焊接板式塔顶冷凝器设计
- 浅析语文教学中
- 结构力学——6位移法
- 天正建筑CAD制图技巧
- 中华人民共和国财政部令第57号——注册
- 赢在企业文化展厅设计的起跑线上
- 2013版物理一轮精品复习学案:实验6
- 直隶总督署简介




