- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE
PAGE # / 21
《传感器原理与应用》实验指导书
Proteus-Vl. 0 版本实验1 :基于DS18B20传感器温度测量实验
步骤:(1)在Proteus款件画出电路图
(2)用keil C软件写出C程序,并生成.hex文件,导入封单片机当中,避行仿真,观察 结果?
“皿P1.1/T2EX PI 2Pl.3PUP1.5PI 6P1.7P5EHAIEXTAL1
“皿
P1.1/T2EX PI 2
Pl.3
PU
P1.5
PI 6
P1.7
P5EH
AIE
XTAL1
心間 P2ZW P2^A11 P24/AI2 P2^A13 P2AI4 P?7^A15
P3Q砌
R3.UW
P3 2/1N7D
P3 3荷
P3.O
P3.迎 pavS
P3海
POQtAEO TO1JAD1 AJ皿2 R3.-W3 TOliAEM
KQM6
包括:2个头文件LCD 1602. h和DS18B20.h; I个源文件LCD_18b20.c;代码如下
LCD1602.h :
#include at89x51.h//用 AT89C51 时就用这个头文件
//#include reg52.h〃用华邦W78E58B时必须用这个头文件
^include intrins. h
〃注意那个LCD.WaitO函数.它是判”忙”标志的,在実际硬件要把注掉的那种打开 //Port Defini tions***********************************粉料**紺粉*************
sbit
LcdRs
=P2*0;
sbit
LcdRw
=P21;
sbit
LcdEn
=P22
sfr
DBPort
=0x80:
〃P0=0x80, Pl =0x90, P2=0xA0, P3=0xB0.歎据端 口
〃部 等 待 函 数
**************************************************************************
unsigned char LCDJfait(void)
LcdRs=O;
LcdRw二1; 项op.();
LcdEn=l; _nop.();
//while(DBPort0x80);//在用Proteus仿真时,注意用屏蔽此语句,在调用GotoXYO
时,会逬入死循环,
〃可能在写该控制字时,该模块没有返回写入完备命令,即
DBPort0x80==0x80
//実际硬件时打开此语句
LcdEn=0: return DBPort:
// 向 LCD
*******************************************************朴***
^define LCD_COMMANDdefine LCD.DATA
^define LCD_COMMAND
define LCD.DATA
Sdefine LCD_CLE.\R_SCREEN
#define LCD_HOM1NG void LCD_Writc(bit style.
0 // Command
1 // Data
0x01 〃清屏
0x02 //光标返回原点
unsigned char input)
LcdEn=0;
LcdRs二style;
LcdRw二0; .nop.();
DBPor t = input: _nop.(); 〃注意顺序 LcdEn= 1: .nop.(): 〃注意顺序
LcdEn=0; _nop_();
LCD.WaitO;
//设 置 显 示模式************************************************************
彳define
LCD.SHOW
0x04
〃显示开
#define
LCD.HIDE
0x00
〃显示关
^define
LCD-CURSOR
0x02
〃显示光标
^define
LCD_ 虬 CURSOR
0x00
//无光标
#define
LCD_FLASH
0x01
〃光标闪动
#define LCD.NO^FLASH
0x00
〃光标不闪动
void LCD_Sct Di splay (unsigned char Di splay Mode) (
LCD.Write(LCD.COMMAND, 0x081 DisplayMode);
〃设 置输入模式 ************************************************************
^define LCD.AC_UP
#define LCD.AC.DOWN
0x02
0x00
// default
^define LCD.MOVE
0x01
//画面可平移
:def in
文档评论(0)