国信长天 ct107d单片机设计与开发项目模拟试题及参考程序 小区自动售水机Word文档下载推荐.docx

上传人:b****1 文档编号:5858208 上传时间:2023-05-05 格式:DOCX 页数:15 大小:65.86KB
下载 相关 举报
国信长天 ct107d单片机设计与开发项目模拟试题及参考程序 小区自动售水机Word文档下载推荐.docx_第1页
第1页 / 共15页
国信长天 ct107d单片机设计与开发项目模拟试题及参考程序 小区自动售水机Word文档下载推荐.docx_第2页
第2页 / 共15页
国信长天 ct107d单片机设计与开发项目模拟试题及参考程序 小区自动售水机Word文档下载推荐.docx_第3页
第3页 / 共15页
国信长天 ct107d单片机设计与开发项目模拟试题及参考程序 小区自动售水机Word文档下载推荐.docx_第4页
第4页 / 共15页
国信长天 ct107d单片机设计与开发项目模拟试题及参考程序 小区自动售水机Word文档下载推荐.docx_第5页
第5页 / 共15页
国信长天 ct107d单片机设计与开发项目模拟试题及参考程序 小区自动售水机Word文档下载推荐.docx_第6页
第6页 / 共15页
国信长天 ct107d单片机设计与开发项目模拟试题及参考程序 小区自动售水机Word文档下载推荐.docx_第7页
第7页 / 共15页
国信长天 ct107d单片机设计与开发项目模拟试题及参考程序 小区自动售水机Word文档下载推荐.docx_第8页
第8页 / 共15页
国信长天 ct107d单片机设计与开发项目模拟试题及参考程序 小区自动售水机Word文档下载推荐.docx_第9页
第9页 / 共15页
国信长天 ct107d单片机设计与开发项目模拟试题及参考程序 小区自动售水机Word文档下载推荐.docx_第10页
第10页 / 共15页
国信长天 ct107d单片机设计与开发项目模拟试题及参考程序 小区自动售水机Word文档下载推荐.docx_第11页
第11页 / 共15页
国信长天 ct107d单片机设计与开发项目模拟试题及参考程序 小区自动售水机Word文档下载推荐.docx_第12页
第12页 / 共15页
国信长天 ct107d单片机设计与开发项目模拟试题及参考程序 小区自动售水机Word文档下载推荐.docx_第13页
第13页 / 共15页
国信长天 ct107d单片机设计与开发项目模拟试题及参考程序 小区自动售水机Word文档下载推荐.docx_第14页
第14页 / 共15页
国信长天 ct107d单片机设计与开发项目模拟试题及参考程序 小区自动售水机Word文档下载推荐.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

国信长天 ct107d单片机设计与开发项目模拟试题及参考程序 小区自动售水机Word文档下载推荐.docx

《国信长天 ct107d单片机设计与开发项目模拟试题及参考程序 小区自动售水机Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《国信长天 ct107d单片机设计与开发项目模拟试题及参考程序 小区自动售水机Word文档下载推荐.docx(15页珍藏版)》请在冰点文库上搜索。

国信长天 ct107d单片机设计与开发项目模拟试题及参考程序 小区自动售水机Word文档下载推荐.docx

设定按键S7为出水控制按键,当S7按下后,售水机持续出水〈继电器接通,指示灯L10点亮设定按键S6为停水控制按键,当S6按下后,停止出水〈继电器断开,指示灯L10熄灭X

1.数码管显示单元

通过4位数码管DS1显示费率,单位为元丨升,保留2位有效数字;

通过4位数码管DS2显示当前出水总量(出水时,单位为升)和总价(停止时,单位为元按下出水按键S7后,清除数码管DS2显示数据,数码管DS2实时显示出水量(保留两位有效数字〕,在出水状态下,再次按下S7,不会影响出水状态,直到按下停止按键S6为止;

按下停止出水按键S6后,数码管DS2显示总价(保留两位有效数字X例:

当S7按下后,数码管示意图如图2所示:

图之.售水机出水状态数码管显示

当按键86按下后,数码管示意图如图3所示:

图3^售水机出停水态数码管显示

3^入0转换单元

通过光敏电阻RD1和AD转换芯片PCF8591组成的亮度检测电路〈亮度值转换为PCF8591光敏电阻通道的电压〕检测环境亮度;

当:

PCF8591光敏电阻通道输入电压小于1.25V时,L1点亮,大于1.25V时,L1熄灭。

4^系统说明

1.假定水价为0.5元/升,出水速度为100毫升/秒;

1.一次出水总量达到99.99L时,继电器自动断开,数码管显示DS2显示价格。

项目名称

评卷人

电路设计

一.电路原理图设计

根据设计任务要求,设计“接口电路”原理图,并标明元器件参数;

8CH只文件保存在考生文件夹中(文件夹以考生的准考证号命名〕。

〔15分)

程序设计

二.程序编写及流程图绘制

1.画出程序流程图,保存在考生文件夹中。

2^按照设计要求完成程序设计任务,并将工程文件保存在考生文件夹中。

硬件调试

三.硬件调试

将编译通过的程序下载到处理器芯片中,进行硬件调试。

1.按键控制功能实现〔15分)

2^数码管显示功实现〔20分)

3^继电器功能实现〔5分)

4^AD采集及LED控制功能实现〔15分)

参考程序

#include"

reg52.h"

intrins.h"

#defineucharunsignedchar

#defineuintunsignedint

#definesomenop{_nop_();

_nop_();

}

ucharcodesmg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

ucharcodesmg_we[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

ucharcodesmg_du1[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x7f};

//有小数点的段选

sbitSDA=P2^1;

sbitSCL=P2^0;

sbits7=P3^0;

sbits6=P3^1;

uchartflag,dspflag,qian,bai,shi,ge,qian1,bai1,shi1,ge1,num,temp,bb;

uintt,aa,date;

voiddelayms(uintx)

{

uchart;

while(x--)for(t=0;

t<

120;

t++);

voidkeyscan()

if(s7==0)

{

delayms(10);

if(s7==0)

{

P0=0x10;

P2=0xa0;

P2=0;

TR0=1;

num=1;

t=0;

while(!

s7);

}

}

if(s6==0)

if(s6==0)

date=t/2;

TR0=0;

P0=0;

num=2;

s6);

voiddisplay(ucharwe,uchardu)

P0=0xFF;

//消影子

P2|=0xE0;

P2&

=0x1F;

P0=smg_du[du];

P0=smg_we[we];

P2|=0xC0;

=0x3F;

/////////////////////////////////////////////////////////////////

voidiic_start(void)

SDA=1;

_nop_();

SCL=1;

somenop;

SDA=0;

SCL=0;

voidiic_stop(void)

voidack()

unsignedchari;

SCL=1;

somenop;

while((SDA==1)&

&

(i<

200))i++;

SCL=0;

voidiic_sendbyte(unsignedcharbyt)

for(i=0;

i<

8;

i++)

{

if(byt&

0x80)

else

byt<

<

=1;

ack();

unsignedchariic_recbyte(void)

unsignedcharda;

da<

if(SDA)

da|=0x01;

returnda;

unsignedcharadc_pcf8591(void)

unsignedchartemp;

iic_start();

iic_sendbyte(0x91);

temp=iic_recbyte();

iic_stop();

returntemp;

voidinit_pcf8591(void)

iic_sendbyte(0x90);

iic_sendbyte(0x01);

delayms(10);

////////////////////////////////////////////////////////////////

voidmain()

{

P0=0xff;

P2=0x80;

P0=0;

//关蜂鸣器

TMOD=0x22;

TH0=0x06;

TL0=0x06;

TH1=0x06;

TL1=0x06;

ET0=1;

EA=1;

ET1=1;

TR1=1;

init_pcf8591();

while

(1)

keyscan();

if(t==10000)

TR0=0;

num=3;

//超出标志

}

voidisr_t0(void)interrupt1//数码管显示

tflag++;

aa++;

if(aa==400)//10mst++

aa=0;

t++;

if(t==10000)

P0=0;

qian=t/1000;

bai=t%1000/100;

shi=t%100/10;

ge=t%10;

if(num==1)//计时标志

if(tflag==4)//1ms动态显示

tflag=0;

dspflag++;

if(dspflag==7)

dspflag=0;

if(dspflag==0)

P0=0xFF;

P2|=0xE0;

P2&

P0=smg_du1[bai];

P0=smg_we[5];

P2|=0xC0;

if(dspflag==1)

display(6,shi);

if(dspflag==2)

display(7,ge);

if(dspflag==3)

display(4,qian);

if(dspflag==4)

P0=smg_du1[0];

P0=smg_we[1];

if(dspflag==5)

display(2,5);

if(dspflag==6)

display(3,0);

if(num==2)//算费标志

if(tflag==4)//1ms

dspflag++;

qian1=date/1000;

bai1=date%1000/100;

shi1=date%100/10;

ge1=date%10;

P0=smg_du1[bai1];

display(6,shi1);

display(7,ge1);

display(4,qian1);

P0=smg_we[1];

if(num==3)

if(tflag==4)//100ms

P0=smg_du1[9];

display(6,9);

display(7,9);

display(4,4);

voidT1_timer()interrupt3//LEDPCF8591

bb++;

if(bb==8)

bb=0;

temp=adc_pcf8591();

if(temp<

64)

P0=0xfe;

if(temp>

P0=0xff;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2