复位后,除P10P17的端口锁存器被设置成FFH、堆栈指针SP设置成07H和串行口的SBUF无确定值外,其它各专用寄存器包括程序计数器PC均被设置成00H。片内RAM不受复位的影响,上电后RAM中的内容是随机的。P1端口初始FFH即八个发光二极管全部不亮,随着单片机的运作,八个发光二极管按程序发光。
3LED电路
6
f辽宁工程技术大学课程综合训练项目设计
上图中A端为发光二极管的阳极,B端为发光二极管的阴极,要想点亮发光二极管,阴极必须加一个低电平(0V)发光二极管允许的电流在3mA至10mA之间,发光二极管被点亮的最小电流为3mA。已知发光二极管被点亮后的压降值为17V,VCC5V,电阻上的电压为33V,根据欧姆定律R33V3mA11K因此要选用1K的电阻
4
基于DS18B20多点温度测量系统以AT89C51为核心器件,以KEIL为系统开发平台,
用C语言进行程序设计,以PROTEUS作为仿真软件设计而成的。系统主要由传感器电路、、电源电路组成,系统图如图所示
DS18B20是数字温度传感器,它的输入输出采用数字量,以单总线技术,接收主机发送的命令,根据DS18B20内部的协议进行相应的处理,将转换的温度以串口发送给主机。主机按照通信协议用一个IO口模拟DS18B20的时序,发送命令(初始化命令、ROM命令、RAM命令)给DS18B20,转换完成之后读取温度值,在内部进行相应的数值处理,用图形液晶模块显示各点的温度。在系统启动之时,可以通过4×4键盘设置各点温度的上限值,当某点温度超过设置值时,报警器开始报警,液晶显示该传感器的路数、设置温度值、实际温度值,从而实现了对各点温度的实时监控。
3
软件设计
7
f姓名:温度检测系统设计
开始
把DS18B20中的数据给累加器A
R0←5
R2←5
01H→R1N
A0
Y
A40
N
00H→P1
YN
AR0
0FFH→P1
YR1→A
R0加5R0给A
A→P1
A左移将A加1
A→R0R3→A
返回A与R0比较
结束
ORGLJMPMAINDS18B20MOVDATAA
0000HMAIN0100HDS18B20
复位入口调到主函数温度寄存器地址把DS18B20中数给A
8
f辽宁工程技术大学课程综合训练项目设计
MOVMOVMOVCLRSUBBJNCCLRSUBBJCCLRL1SUBBJCMOVMOVMOVLOOP1MOVMOVLOOP2MOVMOVLOOP3INCDJNZMOVRLCINCMOVMOVSJMPEND
R0R1R2CALOOP1CA
05H05H01H
把5给R0把5给R1把01H给R2把C清零
0
A减0A小于0跳转将C清040A减40A大于40跳转将C清0
LOOP2CALOOP3AP1AAP1AP1R0R1AAAR2AL1AR3LOOP3R2R2AR3R2A0FFHAR0
A减R0A大于R0跳转把R2给A把A给P1把R3给A把R2给A把A给P1把0FFH给A把A给P1R0加1判断R1是否为0把R2给A把A左移A加1把Ar