- 1、本文档共36页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机小区售水机,带C语言
课程设计报告
题 目 小区自动售水机
课 程 名 称 单片机原理及应用
院 部 名 称
专 业
班 级
学 生 姓 名
学 号
课程设计地点
课程设计学时
指 导 教 师
小区自动售水机
摘要:单片机的发展越来越迅速,实现的功能越来越强大,而本实验主要实现自动售水功能。我们以STC89C51单片机芯片为主体,实现自动售水,自动计价的功能,通过光敏电阻RD1和AD转换芯片PCF8591组成的亮度检测电路实现灯的开关,即白天灯光自动关闭,黑夜自动打开。
关键词:STC89C52 光敏电阻AD 转换芯片PCF8591 自动售水
第一章 系统设计
1.1、电路框图
1.2、总电路图
1.3、总设计思路
模拟自动售水机的工作流程,通过按键控制售水机的水流出和停止;通过数码管显示费率、出水量及总费用;通过光敏电阻检测环境亮度,在亮度过低的情况下,自动开灯。系统硬件电路主要由单片机控制电路、数码管显示电路、AD转换电路及功能按键组成。
1.4、总实验程序
1、pcf8591的定义初始化程序
#ifndef _PCF8591_H
#define _PCF8591_H
#include reg52.h
#include intrins.h
#define CHAN0 0x00
#define CHAN1 0x01
#define CHAN2 0x02
#define CHAN3 0x03
#define somenop {_nop_();_nop_();_nop_();_nop_();_nop_();}
sbit SDA = P2^1;
sbit SCL = P2^0;
void iic_start(void)
{
SDA = 1;
_nop_();
SCL = 1;
somenop;
SDA = 0;
somenop;
SCL = 0;
}
void iic_stop(void)
{
SDA = 0;
_nop_();
SCL = 1;
somenop;
SDA = 1;
}
void iic_ack(bit ackbit)
{
if(ackbit)
SDA = 0;
else
SDA = 1;
somenop;
SCL = 1;
somenop;
SCL = 0;
SDA = 1;
somenop;
}
bit iic_waitack(void)
{
SDA = 1;
somenop;
SCL = 1;
somenop;
if(SDA)
{
SCL = 0;
iic_stop();
return 0;
}
else
{
SCL = 0;
return 1;
}
}
void iic_sendbyte(unsigned char byt)
{
unsigned char i;
for(i=0;i8;i++)
{
if(byt0x80)
SDA = 1;
else
SDA = 0;
somenop;
SCL = 1;
byt = 1;
somenop;
SCL = 0;
}
}
unsigned char iic_recbyte(void)
{
unsigned char da;
unsigned char i;
for(i=0;i8;i++)
{
SCL = 1;
somenop;
da = 1;
if(SDA)
da |= 0x01;
SCL = 0;
somenop;
}
return da;
}
void delay(unsigned char t)
{
unsigned char i;
while(t--)
{
for(i=0;i112;i++);
}
}
unsigned char adc_pcf8591(void)
{
unsigned char temp;
iic_start();
iic_sendbyte(0x91);
iic_waitack()
文档评论(0)