单片机课程设计论文.docx
《单片机课程设计论文.docx》由会员分享,可在线阅读,更多相关《单片机课程设计论文.docx(24页珍藏版)》请在冰豆网上搜索。
单片机课程设计论文
一.任务分析与设计思路
本课程设计主要的目的是为了检测剩饭重量,并把重量进行分析计算。
通过识别射频卡,将剩饭重量数据与射频卡对应后录入存储模块,最终整合得到相应的结果。
二.整体设计方案
2.1系统总体框架
由于本设计硬件上简单,方法上易于实现,成本低的要求,设计中利用电子技术和传感技术。
主要应用各种芯片实现设计中的要求,依靠一颗主芯片控制个芯片的动作。
系统由单片机主控模块、存储模块、电源模块、AD模块、显示模块、称重模块、射频识别模块,共6个模块组成如图2-1所示。
LCD显示器
12864
主
控
器
件
STC15
存储器
AT24C02
称重传感器
可调电源模块
射频识别
DM28340
AD采集
HX711
图2-1系统原理
2.2单片机的选择
方案一:
采用STC89C52。
该单片机软件编程灵活、自由度大,功耗低、体积小、技术成熟等优点,得到了广泛应用。
但是51单片内部资源有限,内部没有集成的A/D转换器,在一些需要数据采集的应用场合,需要外扩A/D转换器,给系统设计过程带来不便。
且影响系统控制等各个环节,不便于实时调控。
方案二:
采用STC15F2K60S2。
该单片机包含了89C52的优点,大容量2048字节片内RAM数据存储器;1个机器周期,速度比传统51快7~12倍;宽电压5.5~3.8V,2.4~3.6V;采用低速模式,空闲模式,掉电模式低功耗设计;不需要外部复位电路,不需要外部晶振;支持掉电唤醒;大容量片内EEPROM功能,刷鞋次数10万次上;3通道捕获/比较单元;6个定时器,2个16位可重装载定时器。
综合以上二种方案,选择方案二。
2.3单片机的结构框图
51子系列单片机15由CPU、数据存储器RAM、程序存储器ROM、特殊功能寄存器、4个I/O口、串行口、定时器/计数器、中断系统等八个功能部件组成。
CPU由累加器A、暂存器1、2、ALU、PSW等组成数据存储器由RAM地址寄存器、RAM单元等组成。
程序存储器指EPROM或ROM。
SFR指P0、P1、P2、P3锁存器、B、DPTR等。
结构框图如图2-3。
图2-3结构框图
2.4引脚图及功能
8051系列单片机的引脚图:
MCS-51 是标准的40引脚双列直插式集成电路芯片。
高速ADC,8通道10位,速度可达30万次/秒。
3路PWM还可当3路D/A使用。
其中3通道捕获/比较单元(CCP/PCA/PWM)。
还有6个定时器,2个16位可重装载定时器。
引脚分布请参照图2-4。
图2-4引脚图
三、硬件设计
3.1整体电路原理
根据方案的选择,系统由最小系统、HX711AD模块、称重传感器模块、AT24C04存储电路、液晶显示电路、射频识别模块DM28340组成。
本系统采用C语言编写,控制器采用单片机STC15系列,
AD采集部分采用HX711AD模块,称重传感器模块用压敏电阻,用LCD液晶12864作为显示器,用AT24C04作为存储器件。
单片机通过AD模块采集压敏电阻电压数据,对数据处理后;射频识别采用DM28340获取对应的个人信息后送给单片机处理。
存储器通过单片机对某些重量的数据进行存储;单片机再把重量数据送液晶显示器12864显示。
3.2晶振电路
单片机的晶振频率应低于40MHZ,所以我们采用22.1184MHZ,加两个30F电容。
图3-2所示。
图3-2晶振电路
3.3复位电路
上电复位采用电平方式开关复位。
如图3-3所示。
上电复位用RC电路,电容用10
F,电阻用10K
。
图3-3晶振电路
3.4存储电路
存储电路采用ATMEL公司生产的AT24C04,具有4KB的存储空间。
24C04是电可檫除PROM,分别采用512X8bit的组织结构以及两线串行接口。
电压可允许低至1.8V,待机电流和工作电流分别为1μA和1mA24C04具有页写功能每页分别为16字节。
其引脚图如图3-4:
24C04引脚功能介绍
引脚号
引脚名称
功能说明
1
A0
24C04使用A2和A1输入引脚作为硬件地址,总线上可同时级联4个24C04期间,A0为空脚,可接地。
2
A1
3
A2
5
SDA
串行地址和数据输入/输出。
SDA是双向串行数据传输引脚,漏极开路,需外接上拉电阻到VCC(典型值10KΩ)
6
WP
串行时钟输入。
SCL同步数据传输,上升沿数据写入,下降沿数据读出。
4
GND
地
8
VCC
正电源
图3-4-124c04引脚图
电路原理图3-4-2如图:
图3-4-224c04引脚图
3.5液晶显示电路
带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行16×16点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
图3-5-1LCD尺寸图
3.5.1液晶12864引脚
12864引脚说明
引脚号
引脚名称
方向
功能说明
1
VSS
-
模块的电源地
2
VDD
-
模块的电源正端
3
V0
-
LCD驱动电压输入端
4
RS(CS)
H/L
并行的指令/数据选择信号;串行的片选信号
5
R/W(SID)
H/L
并行的读写选择信号;串行的数据口
6
E(CLK)
H/L
并行的使能信号;串行的同步时钟
7
DB0
H/L
数据0
8
DB1
H/L
数据1
9
DB2
H/L
数据2
10
DB3
H/L
数据3
11
DB4
H/L
数据4
12
DB5
H/L
数据5
13
DB6
H/L
数据6
14
DB7
H/L
数据7
15
PSB
H/L
并/串行接口选择:
H-并行;L-串行
16
NC
空脚
17
/RET
H/L
复位低电平有效
18
NC
空脚
19
LED_A
(LED+5V)
背光源正极
20
LED_K
(LED-OV)
背光源负极
主要技术参数和性能:
1.电源:
VDD:
+3.0∽+5.5V。
(电源低于4.0伏LED背光需另外供电)
2.显示内容:
128(列)×64(行)点。
3.全屏幕点阵。
4.2MROM(CGROM)总共提供8192个汉字(16×16点阵)。
5.16KROM(HCGROM)总共提供128个字符(16×8点阵)。
6.2MHZ频率。
7.工作温度:
0℃∽+60℃,存储温度:
-20℃∽+70℃
3.5.2LCD12864显示原理图
该电路采用串行的连接方式,只需2个I/O口即可实现显示。
从而减少单片机I/O口的使用,提高利用率。
同时为系统的稳定带来的保障。
其原理图如图3-5-2:
图3-5-2LCD尺寸图
3.6无线射频识别卡电路
3.6.1DM-S28140-28340无线射频识别卡工作原理
当RFID射频识别卡开始工作,并且,RFID标签放置在有效读取的范围内。
唯一的ID以12位ASCII字符串以下方式发生给主机。
起始位
唯一号
停止位
0x0A
位1
位2
位3
位4
位5
位6
位7
位8
位9
位10
0x0D
表3-6-1射频识别卡工作时12位ASCII字符串发送方式
起始位和停止位有助于识别一个正确的接收信息串。
中间10位是实际标签唯一ID号。
例如,一个标签有效ID是0F0184F07A,将按照如下位来发送:
$0A,$30,$46,$30,$31,$38,$34,$46,$30,$37,$41,$0D。
所有的通讯都是8个数据位,无校验,1个停止位和最低位开始(即8,N,1)。
波特率固定为2400bps。
3.6.2DM-S28140-28340引脚结构
RFID读卡器串行接口版本可以直接与任何微控制器仅用4个信号(VCC,/ENABLE,SOUT,GND)互联。
连接信号如下:
序号
引脚
类型
功能
1
VCC
电源信号
系统电源,+5VDC输入
2
/ENABLE
输入信号
模块使能引脚。
有源低信号数字输入。
把其拉低使能RFID读卡器和激活天线
3
SOUT
输出信号
串行输出TTL电平接口,2400bps,8数据位,无符号,1个停止位
4
GND
地信号
系统地。
连接到电源地。
图3-6-2射频卡结构图
3.7HX711AD模块与称重传感器模块电路
该模块电路实现将应变片粘贴到受力的力敏型弹性元件上,当弹性元件受力产生变形时,应变片产生相应的应变,转化成电阻变化。
将应变片接成电桥,力引起的电阻变化将转换为测量电路的电压变化,通过HX711AD模块测量输出电压的数值,再通过换算即可得到所测量物体的重量。
3.7.1HX711AD转换原理
HX711是一款专为高精度称重传感器而设计的24位A/D转换器芯片。
与同类型其它芯片相比,该芯片集成了包括稳压电源、片内时钟振荡器等其它同类型芯片所需要的外围电路,具有集成度高、响应速度快、抗干扰性强等优点。
降低了电子秤的整机成本,提高了整机的性能和可靠性。
该芯片与后端MCU芯片的接口和编程非常简单,所有控制信号由管脚驱动,无需对芯片内部的寄存器编程。
输入选择开关可任意选取通道A或通道B,与其内部的低噪声可编程放大器相连。
通道A的可编程增益为128或64,对应的满额度差分输入信号幅值分别为±20mV或±40mV。
通道B则为固定的64增益,用于系统参数检测。
芯片内提供的稳压电源可以直接向外部传感器和芯片内的A/D转换器提供电源,系统板上无需另外的模拟电源。
芯片内的时钟振荡器不需要任何外接器件。
上电自动复位功能简化了开机的初始化过程。
3.7.2称重传感器与AD模块原理图
称重模块是压敏电阻,压敏电阻基于压电效应原理,当电阻受到外力作用产生形变时,会产生电势。
此时电势送到AD转换处转换,然后AD输出数字信号供单片机检测。
该电路原理图3-7-2:
图3-7-2称重传感器原理图
3.8单片机电路
该最小系统采用1T8051处理器具有42个I/O可使用;集成高精度R/C时钟;双串口(UART)分时复用可当5组使用;3路PWM;高速十位有8路高精度AD.晶振频率为22.1184M,电路图如下3-8:
图3-8单片机电路图
3.9元件清单
该清单是PCB电路板中用到的模块及电气元件,如下表:
名称
符号
参数
封装
数量
电解电容
C1
1000uF/25V
DIP直插
1
C3
10uF/16V
DIP直插
1
陶瓷电容
C2、C6-C10
0.1uF
DIP直插
11
开关
K1
自锁开关
直插6个引脚
1
按键
K2-K5
非自锁开关
直插4个引脚
4
24C02
S1
存储芯片
DIP8
1
STC15
S2
单片机
DIP40
1
称重模块
S3
压敏电阻
AXIAL0.3
1
HX711AD
S4
AD模块
1
DM-S28140-28340
S5
射频模块
1
四、软件设计
4.1程序功能描述
系统软件采用C语言开发,在keil4IDE环境下调试并实现功能。
软件程序设计采用模块化的结构,便于分析和实现功能。
根据题目的要求软件部分实现无线射频卡卡号读取和信息查询或累加,空闲模式下实现信息的读取,并且通过LCD显示屏显示该卡的学号和当前剩饭、累积剩饭;当称重传感器数据有变化时,此时,射频卡靠近扫描的仪器时,系统将会自动累加积分和打卡次数并记录在存储模块24c04。
4.2程序流程图
4.2.1主程序流程图
程序运行的时候,随时可查询射频卡对应的信息,当放下剩饭的时候,蜂鸣器响起一秒,然后蜂鸣器停止响起,AD模块把数据读到CPU内储存,射频模块等待射频卡感应,当射频模块感应到射频卡时候,把射频卡对应的ID号通过串口发送给CPU,并与24c04储存的对应的ID号的地址相匹配,把刚刚AD模块读到的重量累加到ID号对应的储存空间里,当累加的次数达到一定程度,重量数据将清零重新累加。
主程序框图如图4-2-1:
图4-2-1主程序框图
4.2.2AD模块程序流程图
当压敏电阻发生形变有电压输出,AD采集然后内部转换。
转换结束后,单片机读出数字量。
AD模块程序框图如图4-2-2:
图4-2-2AD程序框图
4.2.3射频模块程序流程图
该模块感应射频卡时,串口发生中断,读缓冲器。
寻找与ASCII对应的学号。
其程序流程图如下4-2-3:
图4-2-3射频模块程序框图
4.2.4LCD模块程序流程图
显示子程序分三大模块,分别是清屏、写字符串、写数字和设置写的坐标。
程序初始化后,当有射频卡读入,屏幕显示学号对应的剩饭,和学生当前剩饭。
结束后,会显示累加的剩饭数与于屏幕上。
当下一位同学刷新时,显示的数据有改变,如此循环。
显示的程序框图如下4-2-4:
图4-2-4LCD程序框图
4.2.5储存模块程序流程图
24C04基于IIC协议,它的子函数包括写函数与度函数。
读射频模块时,单片机从24C04内部读出每个学生所在地址对应的信息,剩饭增加时,由单片机运算后将新的数据从新放回对应的地址里面。
以便下次读取。
其程序框图4-2-5如下:
图4-2-5存储程序框图
五、调试与功能说明
5.1系统性能测试
(1)单片机烧写程序功能正常,且能控制各模块操作。
(2)蜂鸣器工作声音响亮。
(3)液晶显示正常。
(4)AD能驱动,并在数码管上显示。
5.2功能说明
5.2.1控制系统功能
I/O口可准确输出TTL,能同时控制24C02,LCD12864,PSC,HX711模块。
该控制系统能根据采集到重力感应传感器的信号进行程序处理,分别控制液晶的数据显示,和刷新数据.将信息存储在24C02芯片中.并且具有稳定性,快速性和准确性。
5.2.2LCD12864功能
带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行16×16点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
5.2.324C02功能
24C02与单片机的接口非常简单,E0,E1,E2为器件地址线,WP为写保护引脚,SCL,SDA为二线串行接口,符合I2C总线协议。
在一般单片机系统中,24C02数据受到干扰的情况是很少的,但是随着单片机抗干扰性能的变差,以及恶劣工业环境中单片机系统的应用,一些智能单片机控制系统相继出现24C02数据被冲掉的问题,而且随着单片机的牌号以及24C02的牌号不同而出现不同程度的干扰现象。
以前通过简单的器件之间替换比较,发现不同牌号的24C02其抗干扰性能是不一样的,于是就认定24C02器件存在"质量"好坏的问题。
后来在一次偶然的机会里,发现有些24C02的WP引脚并不起到保护作用,也就是说将WP引脚与CPU输出引脚断开并保持高电平的情况下,CPU仍然能够对24C02中的数据进行修改写入!
在惊讶之余,笔者收集了许多不同牌号的24C02进行试验,除了基本的读写功能外,还对地址功能以及WP引脚保护功能进行了全面的检测,发现一种ATMEL(激光印字)以及XICOR牌号的24C02具有全面的符合I2C总线协议的功能,而有些牌号24C02要么没有WP引脚保护功能,要么没有器件地址功能(即2片24C02不能共用一个I2C总线),有些甚至两种功能均无。
所以说一些同样功能型号的电子器件在兼容性上往往会带来意想不到的问题,值得引起注意。
5.2.4称重传感器
将质量信号转变为可测量的电信号输出的装置。
5.2.5DM-S28140-28340
RDIF读卡器是用来读取RFID电子标签的ID值的,其采用异步串行通信方式。
5.3系统时钟误差分析
该单片机采用22M晶振工作,1T的工作模式,它的机器周期:
0.0452
让单片机用定时器0的16位方式定时100
其定时公式:
100=(65536-X)
(X是定时器装得初值)
X=63324
当X=63324,定时器定时T=100.007233,其误差为:
5.4硬件调试
(1)线路的通断测试:
防止短路,断路。
(2)在面包板上测试元器件是否损坏,没损坏的才焊接在电路板上。
(3)焊接时注意安全,不能虚焊和脱焊,焊好后测试线路通断。
(4)检测无误后,上电测试,观察硬件的功能是否实现。
5.5软件调试问题及解决
5.5.1LCD12864调试问题
LCD12864开启时,先显示上次断电前的数据后再显示当前数据。
12864A-1汉字图形点阵液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。
主要技术参数和显示特性:
电源:
VDD3.3V~+5V(内置升压电路,无需负压);显示内容:
128列×64行显示颜色:
黄绿显示角度:
6:
00钟直视LCD类型:
STN与MCU接口:
8位或4位并行/3位串行配置LED背光多种软件功能:
光标显示、画面移位、自定义字符、睡眠模式等。
5.5.2解决方案
由于LCD12864采用串行显示,只需用到两个I/O口:
SLK和SDATA.而复位键一直不选中.因此在初始化程序中加上清屏程序.每次开启12864时先清走原来的数据再显示当前数据。
六.心得体会
两周的单片机课程设计终于顺利完成了,其中包含着快乐,也有辛酸。
我们选的设计题目是“剩饭管理系统”,我们都觉得这个题目是比较简单的。
其实不然,做了之后,发现设计电路虽然简单,但我们认为它真正困难的地方是程序设计,不过在我们同心努力下最终完成了。
我们刚选该题目时,真的是一头雾水,硬件电路不知如何下手,更何谈解决程序那块,因为我们所学的都是单片机方面的理论知识,应用到实践中去还比较少。
不过,我们三人也没偷下懒,迅速分工去查阅和收集资料。
我们去了图书馆借一些参考书,上网找一些相关资料,并且请教指导老师。
通过不断努力,终于把数字温度计的思路和模型定了下来并开始分一个人去焊接硬件电路,剩下的去整理和修改程序。
在焊接电路板中,我们首先对硬件电路进行布局,然后确认无误后,在电路板上进行焊接,这个过程我们觉得是做得比较快的,以至于后面出现了虚焊的错误。
焊接电路板完工,细心检查后,进行通电测试。
结果液晶LCD没有显示,通过检查,原来是LCD坏了,在换了块新的后,能显示显示值。
但还有个问题是,当报警电路不会报警,在请教老师后,发现走动蜂鸣器的电压太低了,是因为串接了一个太大的电阻。
然后,我们换了一个小电阻,但这时蜂鸣器却一直在叫,停不下来,不过,在我们三人的的细心检查下,原来是在放大电路的一端虚焊了,这说明我们焊接电路的技术还不够好。
在重新焊接那端后,电路终于成功实现功能,当时我们的心情都是无比兴奋和快乐的,因为我们两周的辛苦没有白费。
参考文献
[l]康华光.电子技术基础模拟部分.北京:
高等教育出版社,2006年
[2]康华光.电子技术基础数字部分.北京:
高等教育出版社,2006年
[3]谭浩强.C程序设计.北京:
清华大学出版社,2005年
[4]丁向荣.单片微机原理与接口技术:
基于STC15系列单片机.北京:
电子工业出版社,2012年