简易电子硬币识别装置Word下载.docx

上传人:b****2 文档编号:1518136 上传时间:2023-04-30 格式:DOCX 页数:19 大小:200.49KB
下载 相关 举报
简易电子硬币识别装置Word下载.docx_第1页
第1页 / 共19页
简易电子硬币识别装置Word下载.docx_第2页
第2页 / 共19页
简易电子硬币识别装置Word下载.docx_第3页
第3页 / 共19页
简易电子硬币识别装置Word下载.docx_第4页
第4页 / 共19页
简易电子硬币识别装置Word下载.docx_第5页
第5页 / 共19页
简易电子硬币识别装置Word下载.docx_第6页
第6页 / 共19页
简易电子硬币识别装置Word下载.docx_第7页
第7页 / 共19页
简易电子硬币识别装置Word下载.docx_第8页
第8页 / 共19页
简易电子硬币识别装置Word下载.docx_第9页
第9页 / 共19页
简易电子硬币识别装置Word下载.docx_第10页
第10页 / 共19页
简易电子硬币识别装置Word下载.docx_第11页
第11页 / 共19页
简易电子硬币识别装置Word下载.docx_第12页
第12页 / 共19页
简易电子硬币识别装置Word下载.docx_第13页
第13页 / 共19页
简易电子硬币识别装置Word下载.docx_第14页
第14页 / 共19页
简易电子硬币识别装置Word下载.docx_第15页
第15页 / 共19页
简易电子硬币识别装置Word下载.docx_第16页
第16页 / 共19页
简易电子硬币识别装置Word下载.docx_第17页
第17页 / 共19页
简易电子硬币识别装置Word下载.docx_第18页
第18页 / 共19页
简易电子硬币识别装置Word下载.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

简易电子硬币识别装置Word下载.docx

《简易电子硬币识别装置Word下载.docx》由会员分享,可在线阅读,更多相关《简易电子硬币识别装置Word下载.docx(19页珍藏版)》请在冰点文库上搜索。

简易电子硬币识别装置Word下载.docx

二、理论分析与计算

2.1电阻应变式重量检测原理

电阻应变式传感器内部电路图如图2-1所示

图2-2电阻应变式传感器内部结构

图中R1、R2、R3、R4为4个应变片电阻,组成了桥式测量电路,e为电源电压,V为信号电压。

当应变片受到力的变化时,电阻R1、R2、R3、R4变成R+△R1、R+△R2、R+△R3、R+△R4,电桥的输出电压变为:

V=kF。

其中V为电桥的输出电压,k为系数,F为力的大小。

2.2A/D转化器原理

由于设计的要求,我们选择设计的增益倍数为128倍。

HX711有32、64、128三种增益可供选择,但是由于传感器的输出信号较小,假设选择较小的增益可能最后精度达不到要求。

虽然增益越高带来的噪声比越大,但是HX711的特点有低噪声,影响不大。

因此选用128倍的增益。

HX711的输出数据速率有10Hz和80Hz。

由于10Hz速率的精度要高于80Hz,且本设计需要较高的精度,所以选用10Hz的数据输出速率。

同时HX711是一款专为高精度电子称而设计的24位A/D转换器芯片,其分辨率可以到达224=16777216,完全可以完成本次设计。

三、程序设计流程图

3.1任务分配

以单片机作为主要的控制器件进行任务分配。

当电阻应变式传感器检测到力的变化时,将微弱的电信号传到A/D转化器HX711,HX711通过信号放大等一系列动作,将模拟量转化成数字量送往单片机。

芯片的串口数据输出端接在单片机的外部中断0即P3.2口。

单片机的1,2,3引脚,即P1.0,P1.1,P1.2口,控制LCD液晶显示屏,分别与12864的片选信号输入,串行数据输入,使能信号相连。

单片机P2口的第四位接四个按键,用来控制模式的选择,上下移动以及确认。

3.2主程序流程图

主程序流程图如下列图3-1所示。

图3-1主程序流程图

3.3中断程序流程图

中断程序流程图如下列图3-2所示。

图3-2中断程序流程图

四、系统测试与结果分析

4.1测试环境与工具

测试在实验室进行,环境温度为26摄氏度。

测试工具有电脑、一角硬币〔新〕数枚、一角硬币〔旧〕数枚、五角硬币数枚以及一元硬币数枚。

4.2测试结果

在本此设计完成后,我们进行了大量实验来验证,对基本要求和发挥部分内的各项进行了逐一实验,并到达了满意的要求。

我们主要进行了单币种的测试试验以及多币种的测试试验。

其中多币种的测试试验包括超出设定总额时显示应退总额以及个数。

单币种测试结果如下列图表4-1所示。

币种

真实值

测量值

一元

1

2

3

五角

新版一角

旧版一角

表4-1单币种测试结果

测量显示多个单币值品种的数量和总额如下表4-2所示

旧1角

新1角

5角

1元

实际个数

5

6

准确率

100%

表4-2测量显示多个单币值品种

多币种测试结果如下表4-3所示。

设定总额为3元

实际投入金额〔元〕

4

实际投入个数(个)

10

11

测量得出金额〔元〕

测量的出个数(个)

应返还金额〔元〕

应返还个数(个)

10或1

表4-3多币种测试结果

第一次

第二次

第三次

 

实际值

测量混合新旧版的1角硬币。

如下表4-4所示。

表4-4测量混合新旧版的1角硬币

测量值显示

一次性放入各种多个币值的硬币,能计算出货币总额及币值种类的数量。

〔如表4-5〕

表4-5一次性放入各种多个币值的硬币

附录一整体电路图

图一整体电路图

附录二源程序

#include"

reg52.h"

#defineulongunsignedlong

#defineucharunsignedchar

12864lcd.h"

mode.h"

/*macro*/

typedefvoid(*Ptr)(ulong);

#definemeanAmount20

#defineMODIFY33

#defineEND44

#defineKeyP2

sbitDOUT=P3^2;

sbitCLK=P3^3;

sbitLED=P1^3;

/*global*/

ulongadcVal;

charmode=MODIFY;

ucharkeyVal,setValue=0;

ulongval[meanAmount]={0},pi;

ulongcodeold=14828,new=41557,five=49488,yuan=77983;

PtrptrArray[]={0,LCD_Mode1,LCD_Mode2,LCD_Mode3,LCD_Mode4,LCD_Mode5,LCD_Mode6};

externchara1,a2,a3;

externulongpreValue;

/*dec*/

voidHX711_Init();

voiddelay1ms(unsignedT);

//?

?

0us

ulongMean(ulong*Array);

ucharKeyScan();

charstable(ulong*Array);

voidmain()

{

ucharmodify[]="

Modifying..."

;

/*Configuration*/

LED=OFF;

LCD12864_Init();

delay1ms(5);

/*startModify*/

LCD12864_DisplayString(0,0,modify);

delay1ms(4000);

/*延时四秒等待稳定*/

HX711_Init();

/*开始校准*/

while(mode!

=END);

/*等待校准结束*/

/*endmodifying*/

mode=1;

while

(1)

{

if(KeyScan())

{

switch(keyVal)

{

/*clear键*/

case0x0E:

{

while((Key&

0x0F)!

=0x0F);

/*等待按键释放*/

a1=a2=a3=preValue=setValue=0;

/*清空数据*/

}break;

/*模式切换键*/

case0x07:

while((Key&

0x0F)!

LED=OFF;

//delay1ms(200);

if(mode==6)

mode=1;

else

mode++;

/*模式切换好*/

/*清屏*/

LCD12864_CleanScans();

delay1ms(10);

/*模式界面*/

switch(mode)

{

case1:

{

/*刚切换到模式1*/

a1=a2=a3=0;

preValue=0;

LCD_Show(0,0,0);

}break;

/*切到模式2*/

case2:

LCD12864_DisplayString(1,2,"

YiJiao:

00"

);

LCD12864_DisplayString(2,2,"

Value:

00.0"

/*切到模式3*/

case3:

preValue=0;

setValue=0;

LCD_ShowMode3(a3,a2,a1,setValue);

/*模式4:

区分新旧一角*/

case4:

LCD12864_DisplayString(1,3,"

Old:

0"

LCD12864_DisplayString(2,3,"

New:

/*模式5:

一次放入各种币*/

case5:

LCD_ShowMode5(0,0,0,0,0,0,0);

/*模式6:

测重*/

case6:

LCD12864_DisplayString(0,1,"

Weighing..."

00.00g"

}

/*元键*/

case0x0B:

while((Key&

=0x0F);

if(mode==3)

setValue+=10;

if(setValue>

99)

setValue-=100;

/*角键*/

case0x0D:

setValue++;

if(setValue>

}

}

}

/*HX711初始化*/

voidHX711_Init()

IE0=0;

EX0=IT0=1;

EA=1;

/*GlobalInterrupt*/

CLK=0;

/*外部中断0*/

voidEXT0_ISR()interrupt0

{

staticcnt=0;

chari;

ulongtestVal=0;

for(i=0;

i<

24;

i++)

CLK=1;

testVal<

<

=1;

CLK=0;

if(DOUT)

testVal++;

}

CLK=1;

/*ADConversionCompleted*/

val[cnt]=testVal;

if(cnt==(meanAmount-1))//测完20个

cnt=0;

if(stable(val))/*稳定了即为有效数据*/

adcVal=Mean(val);

/*假设为矫正模式不相减*/

if(mode!

=MODIFY)

if(adcVal/10000==1674)/*无盘*/

IE0=0;

return;

}

else

adcVal-=pi;

//getaValue

if(mode==MODIFY)

LCD_MODIFY(adcVal);

else

ptrArray[mode](adcVal);

else

cnt++;

//ClearITFlag

IE0=0;

ucharKeyScan()

ucharkeyValue=0;

if((Key&

=0x0F)

keyValue=Key&

0x0F;

delay1ms(20);

if(keyValue==(Key&

0x0F))/*ConfirmKeyPressing*/

keyVal=keyValue;

return1;

else

return0;

/*NoKeyPressing*/

return0;

voiddelay1ms(unsignedT)//?

unsignedchara,b;

while(T--)

for(b=39;

b>

0;

b--)

for(a=1;

a>

a--);

ulongMean(ulong*Array)

chari,j;

ulongtemp,sum=0;

for(i=0;

i<

19;

for(j=0;

j<

j++)

if(Array[j]>

Array[j+1])

temp=Array[j];

Array[j]=Array[j+1];

Array[j+1]=temp;

/*endsort*/

for(i=5;

15;

sum+=Array[i];

returnsum/10;

charstable(ulong*Array)

ulongmax=*Array,min=*Array;

20;

if(Array[i]>

max)

max=Array[i];

if(Array[i]<

min)

min=Array[i];

if(max-min<

150)

return1;

附录三元器件清单

元器件清单

名称

备注

数量

交流电线

220V

变压器

220V转9V

整流桥

DB107

稳压集成电路

7805

A/D转换芯片

HX711

100g

单片机

60S2

晶振

12M

显示屏

LCD12864

电解电容

1000uF

100uF

10uF

瓷片电容

104

8

30pF

电阻

10k

1k

表一元器件清单

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

当前位置:首页 > 求职职场 > 简历

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

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