1 / 17
文档名称:

数字温度计课程设计.docx

格式:docx   大小:629KB   页数:17页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数字温度计课程设计.docx

上传人:文库旗舰店 2022/8/17 文件大小:629 KB

下载得到文件列表

数字温度计课程设计.docx

相关文档

文档介绍

文档介绍:单片机原理及系统课程设计报告
- 15 -

单片机原理及系统课程设计
专 业: 电气工程及其自动化
班 级:
姓 名: 告
- 7 -
参考文献
[1] 李群芳,张士军,[M].北京:.
[2] 丁元杰,[M].***.
[3] 张友德,赵志英,[M].上海:.
单片机原理及系统课程设计报告
- 8 -
附录A 源程序
//使用1602LCD显示DS18B20转换的温度值
#include <>
#include <>
#include <>

#define uchar unsigned char
#define uint unsigned int

sbit RS = P3^0; //数据/命令选择端(H/L)
sbit LCDEN = P3^2; //使能端

sbit deng=P1^6; //超过温度限制指示灯
sbit beep=P1^7; //超过温度限制报警器
uchar high=30; //最高温度
uchar low=10; //最低温度
unsigned char r;

void delayUs() //短延时
{
_nop_();
}

void delayMs(uint a) //长延时
{
uint i, j;
for(i = a; i > 0; i--)
for(j = 100; j > 0; j--);
}

//第一行开始地址为0x80, 第二行开始地址为0xc0;
//写命令:RS=0, RW=0;
void writeComm(uchar comm)
{
RS = 0;
P2 = comm;
LCDEN = 1;
delayUs();
单片机原理及系统课程设计报告
- 9 -
LCDEN = 0;
delayMs(1);
}

//写数据:RS=1, RW=00
void writeData(uchar dat)
{
RS = 1;
P2 = dat;
LCDEN = 1;
delayUs();
LCDEN = 0;
delayMs(1);
}

//初始化函数
//显示模式, 固定指令为00111000=0x38, 16*2显示, 5*7点阵,8位数据接口
//显示开/关及光标设置00001100=0x0c
//指令1: 00001DCB : D:开显示/关显示(H/L); C:显示光标/不显示(H/L), B:光标闪烁/不闪烁(H/L)
//指令2: 000001NS :
//N=1, 当读/写一个字符后地址指针加1, 且光标也加1; N=0则相反
//S=1, 当写一个字符, 整屏显示左移(N=1)或右移(N=0), 但光标不移动; S=0, 整屏不移动
void init()
{
writeComm(0x38); //显示模式
writeComm(0x0c); //开显示, 关光标
writeComm(0x06); //写字符后地址加1, 光标加1
writeComm(0x01); //清屏
}

void writeString(uchar * str, uchar length)
{
uchar i;
for(i = 0; i < length; i++)
{
writeData(str[i]);
}
}
单片机原理及系统课程设计报告
- 10 -
/*****************************DS18B20*******************************/
sbit ds = P3^7;
//初始化DS18B20
//让DS18B20一段相对长时