51单片机课程设计作业

2024-10-06

51单片机课程设计作业(通用8篇)

51单片机课程设计作业 篇1

重邮专用

51单片机课程设计报告

学院:

专业班级:姓名:

指导教师:

设计时间:

51单片机课程设计

一、设计任务与要求

1.任务:制作并调试51单片机学习板 2.要求:

(1)了解并能识别学习板上的各种元器件,会读元器件标示;(2)会看电路原理图;

(3)制作51单片机学习板;

(4)学会使用Keil C软件下载调试程序;

用调试程序将51单片机学习板调试成功。

二、总原理图及元器件清单

1.总原理图

要求:用铅笔在A4纸整页绘制

2.元件清单

三、模块电路分析

1.最小系统:

单片机最小系统电路分为振荡电路和复位电路,振荡电路选用 12MHz 高精度晶振, 振荡电容选用 22p和30p 独石电容;

晶振为单片机提供时钟激励,保证单片机内部和外部电路的时序逻辑电路协调动作,课程中使用的是12M的晶振,可以产生每秒12M频率的激

励。而构成振荡回路的俩个电容为负载电容,可以影响晶振的谐振频率和振荡幅度。

图 1图

2复位电路使用 RC 电路,使用普通的电解电容与金属膜电阻即可;

3当单片机上电瞬间由于电容电压不能突变会使电容两边的电位相同,此时RST为高电平,之后随着时间推移电源负极通过电阻对电容放电,放完电时RST为低电平。正常工作为低电平,高电平复位。(分析振荡电路:测振荡频率; 分析复位电路:高或低电平复位?)

2.显示模块:

发光二极管显示电路:

Usb的为系统加电时,power的发光二极管处于高电位,发光。当程序控制其余四个脚的电位为低电位,输出端口为高电位,剩下的四个发光二极管发光

4数码管显示电路

本课程使用数码管显示状态为静态显示。静态显示就是显示驱动电路具有

输出锁存功能。单片机将所要显示的数据输出后,数码管显示数据不变。Cpu不再控制led。静态显示的接口电路采用一个并行口接一个数码管。数码管的公共端按共阴极或共阳极分别接地或

VCC

5四、硬件调试

1、是否短路

用万用表检查P2两端是短路。电阻为0,则短路,电阻为一适值,电路正常。

2、焊接顺序

焊接的顺序很重要,按功能划分的器件进行焊接,顺序是功能部件的焊接--调试--另一功能部件的焊接,这样容易找到问题的所在。

3、器件功能

1)检查原理图连接是否正确

2)检查原理图与PCB图是否一致

3)检查原理图与器件的DATASHEET上引脚是否一致 4)用万用表检查是否有虚焊,引脚短路现象

5)查询器件的DATASHEET,分析一下时序是否一致,同时分析一下命令字是否正确

6)通过示波器对芯片各个引脚进行检查,检查地址线是否有信号的7)飞线。用别的的口线进行控制,看看能不能对其进行正常操作,多试验,才能找到问题出现在什么地方。

六、软件调试

1、设置硬件仿真环境

单片机应用系统程序的编译和仿真在KeilμVision环境下进行,在调试程序之前,需要对工程进行Debug设置,选择软件仿真或硬件仿真。软件仿真使用计算机来模拟程序的运行,不需要建立硬件平台就可以快速得到某些运行结果;硬件仿真是最准确的仿真方法,必须建立硬件平台,通过PC机→硬件仿真器→用户目标系统进行系统调试。采用硬件仿真的方法,硬件平台即为带有图1所示接口电路的单片机应用系统,设置硬件仿真环境的具体操作步骤如下:

首先,点击所建工程:Project菜单中的Options for Target„Targer 1‟,出现工程的配置窗口,点击Debug设置,选择KeilMcmitor-51 Driver,具体参数设置如图6所示。

图 6

然后,设置仿真器参数。建议波特率设置范围300~38 400。为避免程序中的中断和Keil硬件仿真环境中的中断互相冲突,不选择“Stop ProgramExecution with SerialInterrupt”。仿真器参数的设置如图7所示。

图7

完成51单片机在Keil μVision环境中的硬件仿真环境设置后,可以进行程序的调试仿真。

2、调试仿真

1)导入测试代码:文件→打开→key and display.Uv2 2)重建全部工程:工程→重建全部目标文件

重建结果为,“DA_5615” – 0 Error(s), 0 Warning(s).3)调试:调试→Start/Stop Debug session(Ctrl + F5)

调试结果为:Connected to Monitor_51 V3.4Load “C:......DA_56511、详细描述软件调试步骤。及各模块调试结果。

2、详细描述调试过程中出现的故障现象,并作故障分析,及解决方法

七、心得

自己写啦~~

51单片机课程设计作业 篇2

1.1 研究的背景

目前,学校的教育教学中要不断使用先进的现代化教学手段和方法,而考试也是教学过程中的一个重要环节。

我院《单片机C51》课程全部都采用上机教学,学生可以在计算机上对程序进行仿真,边学边练,提高了教学的效率。但是一直以来,我院《单片机C51》课程的考试还是采用了传统的考试方法,即考试前采用人工出题,这样就投入了大量的人工到试卷的组织、印刷等过程,造成了浪费;其次,学生上课时在计算机的仿真环境,而考试却采用笔试,这样就造成了学习和考试脱节,是为了考试而考试,没有把课堂上的知识真正应用,考试的效果也差强人意;最后,考试完成后老师需要花费大量的时间进行阅卷,在阅卷过程中,不同的老师在阅卷时依靠个人的经验与知识的积累,评分方法不能很好的一致,阅卷是带有较大的主观性,不够客观和准确,因此难以实现考教分离。

《单片机C51》课程在线考核系统正是基于以上背景下进行开发的,在线考核系统采用计算机技术与数据库技术管理整个考试过程,每学年考试前按照本学年的考核要求,通过一定的算法从题库中选择题目,自动生成试卷。这样保证了考试的客观性,公正性和保密性,而且考试过程和整个教学过程都在计算机上完成,确保了考试的一致性,有助于对教学工作的宏观指导和管理,将课程教学的科学管理变成现实。同时,本系统具有自动阅卷功能,这样不仅减轻了教师的命题工作负担,也缩短了教师的阅卷时间。

1.2 研究的意义

(1)《单片机C51》课程在线考试系统可以根据老师输入的选题参数和规则,从试题库中选取一组试题,使得它们所有的属性满足用户既定的性能指标,生存一份符合教学大纲规定的,涵盖面广,重点突出,难以易分,题型分布以及用户要求的试卷,大大地缩短命题时间,减轻教师的负担。(2)《单片机C51》课程在线考试系统生成的试卷准确性以及科学性很高,能够测出学生较真实的成绩。(3)《单片机C51》课程在线考试系统实现了考教分离,保证了考试客观性,使考试公正准确,更加科学严密,排除考试过程中的人为因素的影响而降低命题标准,评分标准,从而确保考试质量。

2《单片机C51》课程在线考核系统的结构

本系统采用客户端/服务器模式,考生在计算机上登录成功就可考试,考试程序存放于服务器端。系统在功能上分为管理员登录、试题管理、试卷组卷、考生登录、身份验证、在线考试、试卷提交、自动阅卷,而且本系统在考试前还可提供学生练习环境。

3《单片机C51》课程在线考核系统的功能实现

3.1 客户端功能实现

3.1.1 考生登录。

考生登录程序使用VB语言编程,考试前考生需登录界面,界面使用VB语言中的winsock控件,考生登录使用的是本人姓名和学号,输入姓名和学号有效则可进入考试环节。图2是考生登录界面。

3.1.2 在线考试。

考试登录成功后,客户端会把服务器端的试卷下载,进行答题,同时进行倒计时,时间到后停止考试。

3.1.3 试卷提交。

考生答题完毕后,需要提交试卷,一台计算机只允许提交一次试卷,避免重复提交。

3.2 服务器端功能实现

服务器端是存放数据库的,设计数据库的程序用SQL语言编程,在数据库中设计了各种信息表,用来进行各种功能的实现,目前设计了管理员信息表、考生信息表、试题信息表、试卷信息表,各功能如下:

3.2.1 管理员登录。

管理员登录程序在服务器端,也使用VB语言编程,界面使用VB语言中的winsock控件,服务器端有管理员信息表(admin),管理员登录后的信息会和数据库中的数据进行比对,比对成功则管理员登录成功,可进行对整个数据库的管理,如:学生信息的更新、试题的管理、试卷的组卷等。

3.2.2 身份验证。

在数据库中存放考生信息表(student),信息表中包括本学年考生的学号、姓名,考生通过客户端入口输入学号后,服务器会把数据和数据库中的原始数据进行比对,正确身份验证通过。目前,本系统的学生信息表每学年需要由管理员进行更新,因为每学年对本门课程进行考试的学生不同。

3.2.3 试题管理。

《单片机C51》课程首先进行了试题库的建设,即教师把试题提前录入计算机,本系统在设计时除了可以进行考试外还可作为平时的上机练习,为了方便练习,在建立试题库时就按照每一章的知识点进行编写,这样学生就可分章节进行练习。在试题管理时需要建立两个信息表,一个是进行平时练习的,练习试题信息表(exercise bank),包括章节信息,难易程度;另一个是进行考试的考试试题信息表(question bank),包括考试题型,试题类型包括填空、判断、改错等。本系统还可进行自动组卷及阅卷,因此试题首先要进行题型的分类及难易程度的分类,考试试题信息表内还应包括难度、答案、分值。

3.2.4 试卷组卷。

考试时需要组卷,即从试题库中筛选符合本次考试要求的试题,一般考试时会有两套以上不同的试卷随机发放,试卷信息表用于存储已经生的试卷,试卷信息表(test)包括试卷编号,题目数、试卷难度等。

3.2.5 自动阅卷。

在建立试题库的同时,试题的标准答案也已存放于数据库中,在组卷的同时,试题的答案也已形成,当考生提交试卷后系统会自动和答案进行比对,实现自动阅卷功能。

《单片机C51》课程在线考核系统的开发,改进了本门课程的考试方法,使教学和考试很好的统一,提高了教学质量。

参考文献

[1]张秀玉.SQL Server数据库程序设计[M].北京:机械工业出版社,2005.

51单片机课程设计作业 篇3

【关键词】单片机 项目教学法 智能小车 教学改革

【中图分类号】G 【文献标识码】A

【文章编号】0450-9889(2016)08C-0161-02

在电子技术快速发展的时代,单片机技术在电子行业中扮演着极其重要的的角色,掌握了单片机技术,就掌握了电子技术的核心,因此,各大中专院校的电气工程、机电工程、自动化专业及计算机专业等电类专业都把单片机作为一门重要专业课程来抓。然而,在现实教学过程中,单片机实验课程教学却存在着诸多的不足。很多学生反映该课程不好学,知识难记,程序难写,讲课内容不好理解等。教师也反映学生刚开始认真学,后来越来越不认真,最后布置的练习和作业都不做,学习态度不好等,由此产生教师的教和学生的学达不到平衡,教学效果不理想,教学过程偏离教学计划,达不到教学的预期培养目标。本文针对上述所存在的问题,以制作“智能小车”为整门课程的大项目,采用项目教学法将课程的各章节融入项目制作过程中,通过做项目,让学生在制作的过程中理解并掌握课程的知识点。

一、单片机实验教学的现状与不足

职业院校不同于普通高等院校,职业院校的学生更是异于普通高等院校的学生。普通高等院校的学生自学能力强,自觉性高,相反,职业院校的学生则大多自我认识不高,自学能力较差,自觉性不高,比较好动。如果在职业院校教学中采用传统的教学方法,教师在黑板前单纯讲课,或通过多媒体单纯授课,学生在下面听,即便教师讲得十分生动、精细,也许台下的学生也是无心听课,不能真正掌握好单片机技术。

一些教师采用计算机房进行授课,先讲一定的教材内容,然后通过计算机演示和示范程序,让学生按照示范程序进行练习,然后用Proteus软件或单片机系统板进行程序仿真。此种教学方法比上述传统方法好很多,但授课一段时间后却发现,学生基本上是将教师的示范程序照抄一遍,然后下载到Proteus软件或单片机系统板中,仿真成功后,接下来就是拿出手机开始玩游戏,没有继续强化知识的意识或精神。而那些打字慢或搬抄过程中存在错漏的学生,可能准备下课了都没打完字,也可能是因为中途编译错误太多,又找不出错误的地方,最后干脆就放弃,直接玩手机或睡觉。

为了避免上述现象问题的发生,提高教学质量和教学效果,我们应该根据职业院校学生的情况,制定出符合他们特点的教学方法,让他们对课程感兴趣,进而激发他们自主去学习和探索知识。

二、单片机实验教学项目教学法改革

经过多年的教学经验总结,本文对51单片机实验课采用项目教学法进行改革,主要由以下几个环节组成:

(一)兴趣入门。心理学上有一个专业的术语叫做“初次效果”,意思是初次见面的一瞬间就能决定胜败。这是对人说的,其实对教学课程也有同样的效果。如果在第一次给学生上这门单片机实验课时,做好开头,让学生从一开始就对这门课充满兴趣和期待,那么,可以说,这门课程的教学就算成功三分之一了。

对本课程第一次课的教学设计,大部分教师都是简单做自我介绍,提出课程的学习要求,然后就开始打开课本上新课。本文的设计则不同,为了做好“初次效果”,本文的第一次课没有直接上新课,而是跟学生一起看视频、交流和讨论,通过交流与讨论的形式让学生对单片机有一个感性的认识,再通过一定手段使学生对课程学习产生兴趣和欲望,然后才慢慢引入新课。具体内容如下:

1.相互认识。先由教师简单向学生做自我介绍,然后再对全班学生进行点名,认识班里的班干,简单了解班级的一些基本情况。

2.看视频。相比学习文字材料,职业院校的学生对图片、视频,甚至实物更加感兴趣,利用这一特点,教师在上课前准备好搬运机器人、足球机器人、工业生产自动焊接机器人等几个具有代表性的视频材料,通过多媒体播放给学生看,然后再向学生介绍这些智能机器人之所以能完成那么多智能控制功能,都是由我们即将学习的单片机芯片来控制,随即放出单片机芯片的相关图片。运用此种方法,通过播放视频和图片的形式,将全班学生的目光吸引到屏幕上,让学生从感官上对单片机有一个初步的认识。

3.项目实物演示。此环节是第一次课的高潮部分,教师准备好本门课程项目教学的项目实物——智能小车,用一纸箱装好,等到这一环节时将它亮相在学生面前,然后试运行给学生看,甚至让学生亲手操作智能小车,让智能小车动起来,最后现场给学生指出单片机芯片,由此激发学生对本课程学习的兴趣。

4.布置项目任务与讨论。通过以上几个步骤后,学生对单片机已经有一定的兴趣,此时,教师粗略地讲一下智能小车的大致工作原理,然后向学生宣布项目任务—— 制作一辆智能小车。教师将实现的功能和要求罗列出来,最后与学生一起讨论如何去完成这个项目,包括硬件部分如何制作,需要用什么电路模块,最后如何去编写程序等,拟出一个大体的方案,调动学生的积极性,激发学生求知欲。

5.材料准备。做完项目布置和讨论环节后,最后一环节就是材料准备的布置,要求学生列出自己项目所需要的材料,然后用一周的时间去准备,材料可以自己制作,也可以购买现成模块,这样,学生有事可做后,也不会再觉得课程枯燥无味,相应地学习兴趣也就提高了。

(二)硬件制作。通过前期学生的材料准备后,接下来就进入硬件的制作过程。

教师将学生带到实验室,通过分小组的形式进行硬件的制作指导。首先对全班学生提出总的制作要求和注意事项,然后将全班学生分成若干个小组,再召集各组的组长进行硬件的制作指导。比如,教师亲自动手示范指导组长们如何装配智能小车的底盘,如何安装驱动电机和轮子,如何安装电路板及相应控制电路模块等,然后再由各组长对本组的组员进行指导和装配示范,组员们按照组长的装配方法进行装配。同时,教师巡视课堂,了解每个组的制作情况和进度,对有问题或装不对的学生进行指导和提醒,最终完成项目的硬件装配与制作过程。

(三)简单驱动。项目的硬件制作完成以后,教师组织学生带上课本和智能小车进入单片机仿真实验室(或计算机机房),对硬件的相应部件进行功能测试以及程序的编写和仿真,完成一些简单功能的驱动任务。

首先驱动智能小车的运动部件,即驱动电机带动轮子转动。在驱动之前,先给学生设一个疑问:如何让轮子转进来?引发学生对本任务的思考。然后对硬件的电路及原理进行简单的讲解,引出单片机的IO口控制知识,并提示学生翻到课本的相应页码,融合课本教材相应内容进行简单的讲解。接着,教师写示范程序并下载到小车单片机中,驱动车轮转起来,再让学生按此方法进行程序的编写和驱动。

学生驱动得电机让小车跑起来后,学习兴趣肯定大大提高,场面也会很热闹。此时,教师又提出探索性任务,提示学生如何驱动LED指示灯亮起来,又如何实现灯闪铄,以及蜂鸣器的驱动等。通过完成这类小任务,学生去探索和驱动其他的一些电路,达到知识拓展的目的,同时也完成单片机IO口的简单驱动任务。

(四)功能完善。通过以上的方法驱动简单电路后,学生对单片机IO口的编程和控制已经有了一定的认识和掌握,接下来就可以引导学生一步一步地将一些功能电路模块综合起来驱动,实现从简单到复杂的智能控制过程。

比如,引导学生运用红外光电传感器来识别路面的黑线,再控制小车的运动情况,如当小车没检测到黑线时,小车一直向前行进;当检测到黑线时,小车停止前进。学生完成此任务后,教师又提出深一点要求,如当小车没检测到黑线时,小车一直向前行进;当检测到黑线时,小车转弯或调头行进等,实现综合性控制功能。

当学生掌握这些较简单的综合控制功能的编程和控制方法后,再往知识较深、程序较难、单片机功能更强的内容去学,比如超声波避障功能、液晶显示功能、定时器使用等,引导学生一步一步地、从简单到复杂地学习,最终完成智能小车所有功能的实现,从而完成本课程主要内容的授课与学习。

(五)考核评比。本课程的最后几次课是项目完成情况的考核评比与总结。当学生把课程项目的所有功能都完成后,安排一个时间对全班学生制作的项目进行演示和考核评比。在教室的讲台做一个演示台,让每个学生将自己的项目作品拿到演示台上,在全班同学面前展示和演示自己做的项目作品,看看所能实现的功能与开学初的计划是否一致,再简单讲解作品的工作原理和制作方法,最后,教师再对作品的结果进行点评和总结。

通过演示作品和教师的点评总结,学生不但收获了学习成功的喜悦,也认识了自己的一些缺陷和不足,进而努力去弥补和更正。同时,教师也能从这个环节中了解到学生学习的掌握情况和教学上存在的不足,进而对下一节课程进行完善和改进。

三、实验教学改革效果分析

51单片机实验课项目教学法的教学改革,打破了传统理论教学和单纯Proteus软件或单片机系统板仿真教学的缺陷,将整门课程改成项目作品的制作,再将课程内容知识融入项目的制作过程中,让学生既学会了课本知识,又掌握了知识的实际运用,达到理论与实践相结合的教学目的。

通过多年的尝试发现,改革后的单片机实验教学,教师的教学过程轻松了很多,对学生的指导时间多了很多,学生学习的兴趣和积极性更是大幅度地提高,课上睡觉或玩手机的学生大幅度地减少,更多学生将时间和精力投入到了项目的制作过程中,碰到问题时,学生也懂得借助网络进行相关资料的查找,学会了知识的探索,最后在毕业设计中,单片机项目的论文尤其是单片机毕业作品都明显多了很多。

综上,以制作“智能小车”为整门课程的大项目,采用项目教学法将课程的各章节融入项目制作过程中,通过学生亲自动手做项目的形式,培养学生对本课程的学习兴趣,提高学生的学习的积极性和主动性,引导学生将理论知识应用到实践中,增强学生的技能水平和实际应用能力,达到理论与实践相结合的目的。经过多年的教学实践证明,改革后的项目教学法不但提高了教育教学质量和教学效果,而且学生学习的兴趣了大为提高,实际动手能力也增强了。

【参考文献】

[1]赵永熹,黄云峰.基于项目驱动法的单片机课程体系建设[J].中国电力教育,2013(4)

[2]谢宏霖.基于“项目驱动法”的单片机类课程教学探索[J].电脑知识与技术,2012(30)

[3]杜志强.机械类专业“单片机原理及应用”课程教学探索与实践[J].理工高教研究,2010(3)

【作者简介】梁 飘(1984— ),男,壮族,广西靖西人,广西大学在读研究生,广西理工职业技术学院助理讲师,专职教师兼实验员。

51单片机课程设计作业 篇4

随着电子技术的发展,电子技术在各个领域的运用也越来越广泛,人对它的认识也逐步加深。秒表计时器秒表计时器常常用于体育竞赛及各种其他要求有较精确时间的各领域中。其中启/停开关的使用方法与传统的机械计时器相同,即按一下启/停开关,启动计时器开始计时,再按一下启/停开关计时终止。而复位开关可以在任何情况下使用,即使在计时过程中,只要按一下复位开关,计时应立即终止,并对计时器清零。本设计就是利用所学到的电子元器件将脉冲源用数码管显示出来,以制承诺简易的秒表。

以单片机为核心,设计一个秒表,具有计时功能,按键有启动计时、数据清零、停止、时间显示。

采用3个LED数码管显示时间,计时范围设置为0~99.9秒,即精确到0.1秒,用按键控制秒表的“开始”、“暂停”、“复位”,按“开始”按键,开始计时;按“暂停”按键,系统暂停计时;再按“开始”键,系统继续计时;数码管显示当前计时值;按“复位”按键,系统清零。

目录

一、设计任务.................................................................................................................3

二、设计题目.................................................................................................................3

三、功能分析.................................................................................................................3

四、总体设计.................................................................................................................3

4.1硬件设计...............................................................................................................4

4.1.1 89C51单片机...........................................................................................4

4.1.2晶体振荡电路...........................................................................................5

4.1.3复位电路...................................................................................................6

4.1.4按键电路...................................................................................................7

4.1.5显示电路.................................................................................................8

4.2引脚控制...............................................................................................................9

五、电路原理图...........................................................................................................10

六、程序流程图及程序设计......................................................................................11

6.1程序流程图.........................................................................................................11

6.2程序设计.............................................................................................................12

七、程序仿真...............................................................................................................21

八、心得体会...............................................................................................................22

九、致谢.......................................................................................................................23

十、参考文献...............................................................................................................24

一、设计任务

以单片机为核心,设计一个秒表,具有计时功能,按键有启动计时、数据清零、停止、时间显示。

二、设计题目

秒表的设计

三、功能分析

采用3个LED数码管显示时间,计时范围设置为0~99.9秒,即精确到0.1秒,用按键控制秒表的“开始”、“暂停”、“复位”,按“开始”按键,开始计时;按“暂停”按键,系统暂停计时;再按“开始”键,系统继续计时;数码管显示当前计时值;按“复位”按键,系统清零。

四、总体设计

本实验利用单片机的定时器/计数器定时和计数的原理,通过采用Proteus仿真软件来模拟实现。模拟AT89C51单片机、LED数码管以及控件来控制秒表的计数以及计时的开启、暂停、继续、与复位。其中有三个数码管来显示数据,两个数码管显示秒(两位),另一个数码管显示十分之一秒,十分之一秒的数码管计数从0~9,满十进一后显示秒得数码管的个位加一,并且十分之一秒显示清零

重新从零计数。同理当个位满十进一后个位也清零重新计数,当计时超过范围(即超过99.9秒)后,所有数码管全部清零从新计数

4.1硬件设计

4.1.1 89C51单片机

MCS-51系列单片机是8位单片机产品,89C51是其中的典型代表,基本模块包括以下几个部分:

(1)CPU:89C51的CPU是8位的,另外89C51内部有1个位处理器

(2)R0M:4KB的片内程序存储器,存放开发调试完成的应用程序

(3)RAM:256B的片内数据存储器,容量小,但作用大

(4)I/O口:P0-P3,共4个口32条双向且可位寻址的I/O口线

(5)中断系统:共5个中断源,3个内部中断,2个外部中断

(6)定时器/计数器:2个16位的可编程定时器/计数器

(7)通用串行口:全双工通用异步接收器/发送器

(8)振荡器:89C51的外接晶振与内部时钟振荡器为CPU提供时钟信号

(9)总线控制:89C51对外提供若干控制总线,便于系统扩展

89C51单片机引脚如下图:

4.1.2晶体振荡电路

89C51单片机内部的振荡电路是一个高增益反相放大器,引线XTAL1和XTAL2分别为反相振荡放大器的输入及内部时钟工作电路的输入和来自反相

振荡器的输出,该反相放大器可以配置为片内振荡器。

这里选用51单片机12MHZ的内部振荡方式,电路如下:C2、C3起稳定振荡频率、快速起振的作用。

晶振电路

4.1.3复位电路

采用上电复位,上电后,由于电容充电,使RST持续一段时间的高电平,从而实现上电复位操作。这不仅能使单片机复位,还能是单片机的外围设备同时复位,当程序出现错误时,可以随时使电路复位。

电路图如下:

复位电路

4.1.4按键电路

当按键被按下时,相应的引脚被拉低,经扫描后,获得键值,并执行键功能程序,因此按下不同的按键,将执行不同的功能程序。

电路图如下:

按键电路

4.1.5显示电路

采用3个LED数码管,LED是七段显示器,内部有7个条形发光二极管和1个小圆点发光二极管,根据各管的亮暗组成字符。

在用数码管显示时,有静态和动态两种选择,这里采用LED动态显示,用P0、P1、P2口驱动显示,由于P0口没有上拉电阻,因此P0口需要外接上拉

电阻才能输出高电平,这里使用8个4.7k的电阻作为上拉电阻。

电路图如下:

显示电路

4.2引脚控制

P0.0—P0.7、P2.0—P2.7、P1.0—P1.7对应三个数码管的a、b、c、d、e、f、g段和小数点位;P0控制数码管十位的显示,P2控制数码管个位的现实,P1控制小数点后一问的显示,P3.2、P3.3、P3.4分别接。

五、电路原理图

用Proteus软件画出主电路图如下:

六、程序流程图及程序设计

6.1程序流程图

6.2程序设计

程序的各个组成模块及工作流程描述:

(1)秒表的初始化

根据程序流程图,先进行秒表的初始化,即:①将I/O口P3全写一,为秒表的控制输入做好准备;②将数码管全部置零,使其处于秒表计时的初始状态;③将工作寄存器R0~R2以及30H初始化,留待后面的计时程序备用;④将定时器0置于工作方式1,并为其装入计时预置数D8FE(因为程序运行过程中占用的时间会导致一定误差,此为经实物测试之后的修正值),即将定时器定为每10ms溢出;⑤开总中断允许和定时器0中断允许。初始化完成后,即进入之后的按键扫描程序。

(2)按键检测程序

轮流检测开始计时(P3.2)、暂停计时(P3.3)、秒表清零(P3.4)三个按键。若发现有一个按键出现低电平(可能被按下),则延时10ms(调用延时子程序DELAY),延时完成后,若发现低电平消失,则说明该按键实际上未被按下,此时转回按键检测处继续检测;若发现仍然是低电平,则说明此键确实被按下了,此时就跳转至相应的程序标号处,执行相应的功能。

(3)开始计时

若确认“开始计时”键被按下,则跳转至程序标号“RUN”处,将定时器0计时允许控制位TR0置位,则定时器开始运行。此动作完成后,返回按键检测程序,等待操作者的下一次指令。

(4)计时程序

定时器0计时至10ms,溢出,引发中断,程序跳转至定时器0中断服务程序入口000BH处执行。程序跳转至中断服务程序TIME0。由于秒表的最小计时单位是0.1s,即100ms,因此需加入软件计时,使定时器0溢出10次之后才改变数码管的显示状态。因此每来一次中断就将30H中的数加1,若30H中的数没有到10,则给定时器0重新装入预置数,之后中断返回并继续等待中断;到10了,才进入显示程序,改变数码管的显示状态,执行完毕之后中断返回并继续等待中断。

(5)显示程序

将数码管的段选码放在数表TAB中。每次100ms计时完成后,将R0中的值(初值为0)送入A,然后自加1。.若R0中的值没到10,则使用累加器A查表,并将查得的数码管段选码送入毫秒位数码管。之后将30H中的数置零,中断返回。若发现R0中的数到10了,则将R0置零,并转入秒位进位子程序SECOND,向秒位进位,之后,继续照常向毫秒位送数。

在秒位进位子程序SECOND中,由于要用到累加器A,因此先将其推入堆栈保护。将R1中的值(初值为10)送入A,然后自加1。.若R1中的值没到20,则使用累加器A查表,并将查得的数码管段选码送入秒位数码管。若发现R1中的数到20了,则将R1重置为10,并转入十秒位进位子程序SECOND1,向十秒位进位,之后,继续照常向秒位送数。完成后,弹出ACC和PSW,子程序返回。

十秒位进位子程序与秒位进位子程序相似,只是没有向下一位进位的功能。

(6)暂停计时

若确认“暂停计时”键被按下,则跳转至程序标号“PAUSE”处,将定时器0计时允许控制位TR0置零,则定时器暂停运行。此动作完成后,返回按键检测程序,等待操作者的下一次指令。

(7)秒表清零

若确认“秒表清零”键被按下,则跳转至程序标号“STOP”处,将TR0置零,关闭定时器0运行。并且将数码管、工作寄存器、定时器0预置数全部重置,使其处于秒表计时的初始状态。此动作完成后,返回按键检测程序,等待操作者的下一次指令。

(8)延时程序

用于按键延时防抖,延时10ms。

程序清单如下:

ORG 0000H;程序开始

AJMP START;跳转到主程序START ORG 000BH;定时器0中断的地址入口

AJMP TIME0;定时器0溢出,跳转到中断程序TIME0 START:;主程序

MOV P3,#0FFH;输入端口P3全写1 MOV P0,#3FH;MOV P1,#3FH;

MOV P2,#0BFH;数码管初始化

MOV 30H,#00H;MOV R0,#00H;MOV R1,#0AH;MOV R2,#00H;MOV TMOD,#01H;MOV TH0,#0D8H;MOV TL0,#0FEH;SETB EA;SETB ET0;READ:;L1:JB P3.2,L2;LCALL DELAY;JB P3.2,L1;AJMP RUN;L2:JB P3.3,L3;

工作寄存器初始化

定时器0工作于方式1

定时器0预置数(D8FEH=55550D)

开总中断允许

开定时器0中断允许

读键程序

按键延时防抖

确认计时键被按下,开始/继续计时15

LCALL DELAY;按键延时防抖

JB P3.3,L2;AJMP PAUSE;确认暂停键被按下,暂停计时

L3:JB P3.4,L1;LCALL DELAY;JB P3.4,L3;AJMP STOP;RUN:;SETB TR0;AJMP READ;PAUSE:;CLR TR0;AJMP READ;TIME0:;INC 30H;MOV A,30H;

按键延时防抖

确认清零键被按下,秒表重置

计时键按下,跳转至此

定时器0开始/继续运行

暂停键按下,跳转至此

定时器0溢出,中断,跳转至此16

CJNE A,#0AH,TIME1;30H单元中的值到10了吗?(计时到10毫秒了吗,也就是说,该向毫秒位送数了吗?)MOV DPTR,#TAB;30H中的值到10了,顺序执行

MOV A,R0;INC R0;CJNE R0,#0AH,GET;R0MOV R0,#00H;LCALL SECOND;进位

GET:;MOVC A,@A+DPTR;MOV P1,A;MOV 30H,#00H;TIME1:;MOV TH0,#0D8H;MOV TL0,#0FEH;RETI;中的值到10了吗?(该向秒位进位了吗?)

到了,R0清零,调用进位子程序SECOND,向秒位没到,跳过进位子程序

查表并向数码管毫秒位送数

重置30H单元

给定时器0重新预置数

中断返回

SECOND:;秒位进位子程序

PUSH ACC;PUSH PSW;将ACC和PSW推入堆栈保护

MOV A,R1;INC R1;CJNE R1,#14H,GET1;R1了吗?

MOV R1,#0AH;LCALL SECOND1;位进位

GET1:;MOVC A,@A+DPTR;MOV P2,A;POP PSW;POP ACC;PSW,ACCRET;SECOND1:;中的值到20了吗,也就是说,该向十秒位进位到了。R1重置,调用进位子程序SECOND1,向十秒没到,跳过进位子程序

查表并向数码管秒位送数

出栈

子程序返回

十秒位进位子程序

PUSH ACC;PUSH PSW;将ACC和PSW推入堆栈保护

MOV A,R2;INC R2;CJNE R2,#0AH,GET2;R2

MOV R2,#00H;GET2:;MOVC A,@A+DPTR;MOV P0,A;POP PSW;POP ACC;PSWRET;STOP:;MOV P3,#0FFH;MOV P0,#3FH;MOV P1,#3FH;

中的值到10了吗,也就是说,该将此位归零了到了,R2清零

没到,跳过清零程序

查表并向数码管十秒位送数,ACC出栈

子程序返回

清零键按下,跳转至此 吗?

MOV P2,#0BFH;数码管清零

MOV 30H,#00H;MOV R0,#00H;MOV R1,#0AH;MOV R2,#00H;CLR TR0;MOV TH0,#0D8H;MOV TL0,#0FEH;AJMP READ;DELAY:;MOV R3,#50D;D1:MOV R4,#100D;D2:DJNZ R4,D2;DJNZ R3,D1;RET;工作寄存器初始化计时器0停止计时定时器0预置数

延时10ms子程序

子程序返回

TAB: DB 06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,3FH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH,0BFH;数码管段选码数表

END;程序结束

七、程序仿真

将以上程序清单导入先前做好的Proteus仿真电路,汇编之后,按 键开始进行仿真。

仿真结果如下:

仿真结果描述:

按“开始”键,秒表开始计时;按“暂停”键,秒表暂停计时;再按“开始”键,秒表继续计时;按“清零”键,秒表清零。

八、心得体会

虽然秒表是一个非常简单的功能,但要在单片机中使用汇编语言来实现这个功能,仍然花了我不少心思。

首先是计时的问题,由于单片机计时器最大只能计时65.5ms,因此要实现毫秒位的变化,我采用了软件计时的方法,单片机只需计时10ms,然后用软件重复10次,即可达到计时100ms的目的。

显示方面,为了使编程简单,我使用了静态显示。不过这使得占用I/O口线过多,而且连线复杂繁琐,为实物的制作带来了不便。在以后的学习和应用中我会努力加深动态扫描显示的理解,争取熟练运用。

根据书本知识,我们一开始只给P0口加上了上拉电阻,但是实物做成后我们发现P1和P2口得输出显示非常暗,初步确定是驱动能力不足的问题后,我们给二者也加上了上拉电阻,结果使得显示正常了。由此我们了解到,实践才是检验真理的唯一标准,有时候书本上的知识需要经过实践的改进,才能运用到实际中。

此次课程设计巩固了我的基础知识,提高了我的应用水平,锻炼了我的动手能力,使我受益匪浅。然而,在吸取经验的同时,我也吃了不少教训。在编程、仿真、焊接方面都走了不少弯路。但是,学则要有所收获,经过此次的锻炼,我在很多方面都已经有所提高,知识也掌握得更加扎实了。

在今后的学习和实践中,我将继续努力钻研,提高自己,争取在学术和记忆上获得更大的进步。

九、致谢

本设计是在李芳老师的悉心指导下完成的,李老师渊博的知识,严谨的治学态度,一丝不苟的工作作风,平易近人的性格都是我学习的楷模。在论文的研究及整理期间,李老师给了我很大的支持和鼓励,才使得论文得以顺利的完成,在此谨向导师表示忠心的感谢和崇高的敬意。

同时还要感谢同学们,他们也给了我很大的支持和帮助。

十、参考文献

1)《微控制器与接口技术》.虞沧.电子工业出版社.2012.10 2)李朝青.单片机原理及接口技术[M].北京:北京航空航天大学出版社.2005.10 3)夏继强.单片机实验北京:北京航空航天大学出版社.2001.4)孙德辉,郑士富.微型计算机控制系统.北京:冶金工业出版社.2002

5)肖洪兵.跟我学用单片机.北京:北京航空航天大学出版社.2002.8 6)陈汝全.实用微机与单片机控制技术.电子科技大学出版社.1995.7 7)王涌.单片机与嵌入式系统应用[J],2002(3):58-61 8)罗亚非.凌阳16位单片机应用基础[M].北京:北京航空航天大学出版社.2003.5 9)李庆.Keil C51 使用详解 V3.0[M].北京:北京理工大学出版

10)李华.MCS-51系列单片机实用接口技术.北京航空航天大学出版社.1993,162-229 11)温钢云,黄道平.计算机控制技术.广州:华南理工大学出版社.2002 12)肖洪兵.单片机应用技术.自编教材

13)孙德辉,郑士富.微型计算机控制系统.北京:冶金工业出版社.2002 14)韩来吉.用 89C51实现急救车优先的交通灯控制系统[J] 15)陈志强,芮延年,城市路口交通灯多级智能控制方法的研究J.2007 16)李广弟.单片机基础.北京:北京航空航天大学出版社.2001,56 17)马忠梅等.单片机的C语言应用程序设计.北京航空航天出版社.1999

基于51单片机的电子秤设计 篇5

(2015届)

题 目:基于51单片机的电子秤设计

专业名称:应用电子技术

姓 名:谢玉夏

学 号:1210401038 班 级:2012级应用电子技术

指导教师:刘志芳

2014年 12 月 30 日

摘要

称重技术是人类生活中不可缺少的部分,自古以来就被人们所重视。作为一种计量手段,被广泛应用于工业、农业、贸易等各个领域。随着现代文明和科学技术的不断进步,人们对称重技术的准确度要求也越来越高,电子秤产品技术水平的高低,直接影响各行各业的现代化水平和社会经济效益的提高。近年来,电子称重技术取得了突飞猛进的发展,电子秤在称重计量领域中也占有越来越重要的地位,其应用领域也在不断地扩大。尤其是商用电子秤,由于其具有准确度高、反应灵敏、结构简单等优点,被广泛应用于工商贸易、轻工食品、医药卫生等领域。目前,机械秤正在逐步被电子秤取代,这就促使电子秤的研究需要进一步的深入。

本设计是以AT89S51为核心的一种高精度电子秤,系统采用模块化设计法,其硬件结构主要包括:数据采集模块、最小系统模块、电源模块、键盘和显示模块。其中,数据采集模块包括称重传感器和A/D转换电路;最小系统部分主要包括AT89S51和扩展的外部数据存储器;键盘由4×4位矩阵键盘组成;显示部分LM4229液晶显示。软件部分由C语言编程,实现对各部分的控制。该电子秤可以能够显示商品的名称、价格、总量、总价等;能够自动完成商品的价格计算;能够储存几种简单商品的价格;能够具有超重提醒功能。其称重范围为0~5Kg,分度值为0.001g。整个系统结构简单,使用方便。

关键词:电子秤;AT89S51单片机;称重传感器;A/D转换电路;液晶显示II

目录 绪论...........................................................1

1.1 选题的背景与意义.........................................1

1.1.1 选题的背景..........................................1 1.1.2 选题的意义..........................................2 1.2 电子秤的研究现状及发展趋势...............................2

1.2.1 电子秤的研究现状....................................2 1.2.2 电子秤的发展趋势....................................3 1.3 本文的结构...............................................4 2 系统总体方案设计...............................................5

2.1 电子秤的基本知识介绍.....................................5

2.1.1 电子秤的基本结构....................................5 2.1.2 电子秤的工作原理....................................5 2.1.3 电子秤的计量参数....................................6 2.2 总体方案设计.............................................7 2.3 系统各部分设计方案论证...................................8

2.3.1 电子秤分度数的设定..................................8 2.3.2 称重传感器的选定....................................8 2.3.3 A/D转换器的选定....................................14 2.3.4 单片机型号的选定...................................16 硬件设计......................................................18

3.1 系统硬件结构图..........................................18 3.2 单片机主控单元的设计....................................18

3.2.1 单片机引脚说明.....................................18 3.2.2 AT89S51最小系统设计................................20 3.3 数据采集模块设计........................................22

III

3.3.1 传感器单元设计.....................................22 3.3.2 A/D转换单元设计....................................22 3.4 键盘和显示电路单元设计..................................24

3.4.1 键盘电路设计.......................................24 3.4.2 显示电路设计.......................................25 3.5 系统总体原理图..........................................25 3.6 硬件抗干扰设计..........................................26 4 系统软件设计..................................................29

4.1 主程序设计..............................................29 4.2 LM4229液晶显示驱动程序..................................30 4.3 ADC0832采样程序.........................................31 4.4 键盘程序................................................31 5 系统仿真......................................................33

5.1 欢迎界面的仿真..........................................33 5.2 无重物情况仿真..........................................34 5.3 称量物体仿真............................................35 5.4 最大量程仿真............................................36 5.5 仿真总结与问题补充......................................37

5.5.1 仿真总结...........................................37 5.5.2 问题补充...........................................37 总结与展望....................................................39 附录程序.........................................................40 参考文献.........................................................49

IV 绪论

1.1 选题的背景与意义

1.1.1 选题的背景

(1)电子技术渗入衡器制造业

随着第二次世界大战后的经济繁荣,为了把称重技术引入生产工艺过程中去,对称重技术提出了新的要求,希望称重过程自动化,为此电子技术不断渗入衡器制造业。在1954年使用了带新式打印机的倾斜杠杆式秤,其输出信号能控制商用结算器,并且用电磁铁机构与代替人工操作的按键与办公机器联用。在1960年开发出了与衡器相联的专门称重值打印机。当时的带电子装置的衡器其称量工作是机械式的,但与称量有关的显示、记录、远传式控制器等功能是电子方式的。(2)电子秤步入社会

电子秤的发展过程与其它事物一样,也经历了由简单到复杂、由粗糙到精密、由机械到机电结合再到全电子化、由单一功能到多功能的过程。特别是近30年以来,工艺流程中的现场称重、配料定量称重、以及产品质量的监测等工作,都离不开能输出电信号的电子衡器。这是由于电子衡器不仅能给出质量或重量信号,而且也能作为总系统中的一个单元承担着控制和检验功能,从而推进工业生产和贸易交往的自动化和合理化。

近年来,电子秤已愈来愈多地参与到数据处理和过程控制中。现代称重技术和数据系统已经成为工艺技术、储运技术、预包装技术、收货业务及商业销售领域中不可缺少的组成部分。随着称重传感器各项性能的不断突破,为电子秤的发展奠定了基础,国外如美国、西欧等一些国家在20世纪60年代就出现了0.1%称量准确度的电子秤,并在70年代中期约对75 %的机械秤进行了机电结合式的电子化改造。

我国的衡器在20世纪40年代以前还全是机械式的,40年代开始发展了机电结合式的衡器。50年代开始出现了以称重传感器为主的电子衡器。80年代以来,我国通过自行研制、引进消化吸收和技术改造,已由传统的机械式衡器步入集传感器、微电子技术、计算机技术于一体的电子衡器发展阶段。目前,由于电子衡器具有称量快、读数方便、能在恶劣环境下工作、便于与计算机技术相结合而实现称重技术和过程控制的自动化等

特点,已被广泛应用于工矿企业、能源交通、商业贸易和科学技术等各个部门。随着称重传感器技术以及超大规模集成电路和微处理器的进一步发展,电子称重技术及其应用范围将更进一步的发展,并被人们越来越重视。

1.1.2 选题的意义

电子秤是日常生活中常用的电子衡器,广泛应用于超市、大中型商场、物流配送中心。电子秤在结构和原理上取代了以杠杆平衡为原理的传统机械式称量工具。相比传统的机械式称量工具,电子秤具有称量精度高、装机体积小、应用范围广、易于操作使用等优点,在外形布局、工作原理、结构和材料上都是全新的计量衡器。目前市场上使用的称量工具,或者是结构复杂,或者运行不可靠,且成本高,精度稳定性不好,调整时间长,易损坏,维修困难,装机容量大,能源消耗大,生产成本高。而且目前市场上电子秤产品的整体水平不高,部分小型企业产品质量差且技术力量薄弱,设备不全,缺乏产品的开发能力,产品质量在低水平徘徊。因此,有针对性地开发出一套有实用价值的电子秤系统,从技术上克服上述诸多缺点,改善电子秤系统在应用中的不足之处,具有现实意义。

1.2 电子秤的研究现状及发展趋势

1.2.1 电子秤的研究现状

近几年,我国的电子称重系统从最初的机电结合型发展到现在的全电子型和数字智能型。电子称重技术逐渐从静态称重向动态称重发展,从模拟测量向数字测量发展,从单参数测量向多参数测量发展。电子称重系统制造技术及其应用得到了新发展。国内电子称重技术基本达到国际上20世纪90年代中期的水平,少数产品的技术已处于国际领先水平。

在研究方法上,电子称重系统的工作原理一般是将作用在承载器上的质量或力的大小,通过压力传感器转换为电信号,并通过控制电路来处理该电信号。其中压力传感器大多数采用电阻应变片压力传感器,由于应变片的体积较小,市场上有多种规格可供选择,而且可以针对弹性敏感元件的形式可以灵活设计来适应各种应用场合的要求,所以

应变片式压力传感器得到广泛的应用。但是电阻应变片压力传感器的一个严重缺陷是应变灵敏度、应变片本身的电阻都随温度变化,而且灵敏度随温度变化较大。在不同的环境中,应变片的阻值发生变化,输出零点漂移明显。并且应变片的输出信号很小、线性范围窄,而且动态响应较差,有待进一步开发。

在国际上,一些发达国家在电子称重方面,从技术水平、品种和规模等方面都达到了较高的水平。特别是在准确度和可靠性等方面有了很大的提高。其中梅特勒.托利多公司生产的BBK4系列高精度电子秤精度达到了lmg,速度大约为1次/秒。目前,电子秤在称量速度方面需要进一步的研究。

在称重传感器方面,国外产品的品种和结构又有创新,技术功能和应用范围不断扩大。

1.2.2 电子秤的发展趋势

电子秤的称重功能是基于微处理器这一核心技术来实现的。由于目前在设计电子称重系统时大量地采用集成芯片,因此电子称重系统已经摆脱了以往的电子模式,正向小型化、模块化、智能化、集成化发展;其技术性能趋向于高速率、高准确度、高稳定性、高可靠性;其应用性趋向于综合性、组合性。

小型化:体积小、高度低、重量轻,即小薄轻。为使电子衡器的承载器达到小、薄、轻,开始采用重量轻且刚度大的空心波纹铜板和方形闭合截面的薄壁型材。

模块化:电子衡器的承载器采用模块式一体组合或分体组合,产生新的品种和规格。这种模块化组合不但提高了产品的通用性和可靠性,而且也大大提高了生产效率,降低了成本。

智能化:与电子计算机组合或开发称重用计算机,利用计算机的智能来增加称重显示控制的功能,使其在原有功能的基础上增加推理、判断、自诊断、自适应、自组织等功能。

集成化:对于某些品种和结构的电子衡器,可以实现承载器与称重传感器一体化或承载器、称重传感器与称重显示控制器一体化。

综合性:电子称重技术和电子衡器产品的应用范围不断扩大,它已渗透到一些学科和工业自动控制领域。对某些商用电子计价秤而言,只具备称重、计价、显示、打印功能还远远不够,现代商业系统还要求它能提供各种销售信息,把称重与管理自动化紧密

结合,使称重、计价、进库、销售管理一体化,实现管理自动化。这就要求电子计价秤能与电子计算机联网,把称重系统与计算机系统组成一个完整的综合控制系统。

组合性:在工业生产过程或工艺流程中,不少称重系统还应具有可组合性,即:测量范围可以任意设定;硬件能够依据不定的程序进行修改和扩展;输入输出数据与指令可使用不同的语言,并能与外部的控制和数据处理设备进行通信。

今后, 随着电子高科技的飞速发展, 电子秤技术的发展定将日新月异。同时, 功能更加齐全的高精度的先进电子秤将会不断问世, 其应用范围也会更加拓宽。

1.3 本文的结构

本设计是以AT89S51为核心的一种高精度电子秤,系统采用模块化设计法,其硬件结构主要包括:数据采集模块、最小系统模块、电源模块、键盘和显示模块。软件部分由C语言编程,实现对各部分的控制。可以实现称重、去皮、置零、计价和显示等功能。其称重范围为0~5Kg,分度值为0.001g。整个系统结构简单,使用方便。全文共分为五章,各章主要内容如下:

第一章为绪论部分,简要介绍了选题的背景及意义、电子秤的研究现状及发展趋势以及本文的主要内容及结构;

第二章为总体设计部分,简要介绍了电子秤的结构及工作原理,论证了系统总体方案的设计,以及对各种方案的选择做出了比较;

第三章为系统硬件设计部分,主要是通过对各种模块的介绍以及对电路功能的分析,对系统硬件进行了选型和设计,得出系统硬件结构图;

第四章为系统软件设计部分,主要介绍了系统各部分软件的设计流程,给出了简单的程序;

第五章为系统软件仿真;

第六章为总结与展望,主要是对本课题的总结,以及对存在的问题进行归纳和进一步研究的方向。系统总体方案设计

2.1 电子秤的基本知识介绍

2.1.1 电子秤的基本结构

电子秤是利用物体的重力作用来确定物体质量(重量)的测量仪器,也可用来确定与质量相关的其它量大小、参数、或特性。不管根据什么原理制成的电子秤均由以下三部分组成:

(1)承重、传力复位系统

它是被称物体与转换元件之间的机械、传力复位系统,又称电子秤的秤体,一般包括接受被称物体载荷的承载器、秤桥结构、吊挂连接部件和限位减振机构等。(2)称重传感器

即由非电量(质量或重量)转换成电量的转换元件,它是把支承力变换成电的或其它形式的适合于计量求值的信号所用的一种辅助手段。

按照称重传感器的结构型式不同,可以分直接位移传感器(电容式、电感式、电位计式、振弦式、空腔谐振器式等)和应变传感器(电阻应变式、声表面谐振式)或是利用磁弹性、压电和压阻等物理效应的传感器。

对称重传感器的基本要求是:输出电量与输入重量保持单值对应,并有良好的线性关系;有较高的灵敏度;对被称物体的状态的影响要小;能在较差的工作条件下工作;有较好的频响特性;稳定可靠。

(3)测量显示和数据输出的载荷测量装置

即处理称重传感器信号的电子线路(包括放大器、模数转换、电流源或电压源、调节器、补偿元件、保护线路等)和指示部件(如显示、打印、数据传输和存贮器件等)。这部分习惯上称载荷测量装置或二次仪表。在数字式的测量电路中,通常包括前置放大、滤滤、运算、变换、计数、寄存、控制和驱动显示等环节。

2.1.2 电子秤的工作原理

当被称物体放置在秤体的秤台上时,其重量便通过秤体传递到称重传感器,传感器

随之产生力-电效应,将物体的重量转换成与被称物体重量成一定函数关系(一般成正比关系)的电信号(电压或电流等)。通常此电压信号很小,需要通过前端信号处理电路进行准确的线性放大,放大后的模拟电压信号经过滤波电路和A/D转换电路转换成数字信

1号被送入到主控电路的单片机中○,单片机不断扫描键盘和各种功能开关,根据键盘输入内容和各种功能开关的状态进行必要的判断、分析、由仪表的软件来控制各种运算。运算结果送到内存贮器,需要显示时,单片机发出指令,从内存贮器中读出送到显示器显示。

2.1.3 电子秤的计量参数

电子秤的计量性能涉及的主要技术指标有:量程、安全载荷、额定载荷、允许误差、分度值、分度数、准确度等级等。

(1)量程:一台电子秤不计皮重,所能称量的最大的载荷Max,即电子秤在正常工作情况下,所能称量的最大值。

(2)安全载荷:为电子秤正常称量案范围的120%。(3)额定载荷:电子秤的正常称量范围。(4)允许误差:等级检定时允许的最大偏差。

(5)分度值:电子秤的测量范围被分成若干等份,每份值即为分度值。用e或d来表示。

(6)分度数:衡器的测量范围被分成若干等份,总份数即为分度数用n表示。电子衡器的最大称量Max可以用总分度数n与分度值d的乘积来表示,即Max=n*d。

(7)准确度等级:国际法制计量组织把电子秤按照不同的分度数分成Ⅰ、Ⅱ、Ⅲ、Ⅳ四类等级,分别对应不同准确度的电子秤和分度数n的范围,如表

1因为本设计采用软件仿真而不能进行实际的称量,故信号的放大滤波电路部分舍去,直接输入模拟电压信号,○放大滤波部分内容会在第五章仿真总结与问题补充中进行后续介绍。

2-1所示。

表2-1 电子秤等级分类

标志及等级 特种准确度

电子秤种类 基准衡器

分度数范围 n>100,000

高准确度 中准确度 普通准确度

精密衡器 商业衡器 粗衡器

10,000

按照设计的基本要求,可以确定系统共分为五大模块,数据采集模块、最小系统模块、超重报警模块、键盘和显示模块。其中,数据采集模块包括称重传感器和A/D转换电路;最小系统模块由AT89S51单片机及其外围电路组成;键盘由4×4位矩阵键盘组成,可以控制显示商品种类和价钱等信息;显示部分采用LM4229液晶显示,显示当前商品的名称、单价、重量及总价等信息。软件部分由C语言编程,实现对各部分的控制。该电子秤可以实现显示商品的名称、单价、重量、总价等功能。其称重范围为0~5Kg,分度值为0.001g。在扩展功能上,本设计增加了一个超重报警提示。其总体设计的框图如图2-1所示:

数据采集模块单片机最小系统超重报警模块键盘模块显示模块

图2-1 总体设计方框图

系统工作原理:把所称物体放到秤台上,物体的重力通过秤体传给称重传感器,传感器受到压力使电阻发生变化引起电压变化,再将电压值送到A/D转换电路,将模拟量转换成数字量,转换后的数字量送至单片机进行处理,并显示结果。单片机最小系统由AT89S51和外围的时钟电路及复位电路组成。显示电路设计采用LM4229液晶显示,对各部分的控制由采用C语言编程的软件来实现。

2.3 系统各部分设计方案论证

2.3.1 电子秤分度数的设定

当前,一些单位为了提高Ⅲ级商贸秤的准确度,尝试改小电子秤的分度值,扩大电子秤的分度数,以便达到高精度称量的目的。这样做非但不能进行高精度称量,还会破坏电子秤原有的计量性能,降低电子秤的准确度,有损电子秤的可靠性,使电子秤出现更多的计量误差。

现在我国已经完全与OIML规定接轨,衡器计量检定规程完全按OIML规定而来。表2-2为Ⅲ级商业秤误差要求。

表2-2 Ⅲ级数字显示商用衡器允差表

m <500e 500e< m≤2000e 2000e< m≤Max

允差e(检定分度值)

检定要求 ±0.5e ±1.0e ±1.5e

使用中要求 ±1.0e ±2.0e ±3.0e 由表2-2可知,它的整个称量范围允差规定是变化的,误差是从大到小再变大,最高准确度在中间。从0~500分度数为低精度称量段,到高于3000个分度数之后的实际称量精度逐渐变低,实际误差不断加大。分度数再高其允差也是不变的。从国外电子秤的准确度和分度数设置、国内原先衡器的检定标准和现在我们统计的电子秤分度数的准确度以及OIML对Ⅲ级秤的允差规定看,说明现有Ⅲ级商业秤的分度数设置为2000~3000是比较理想的,属于最佳分度数。这样设置决定了电子秤的准确度首检为±0.05%,使用中为±0.1%的正确性、合理性与必要性。

2.3.2 称重传感器的选定

称重传感器在电子秤中占有十分重要的位置,被喻为电子秤的心脏部件,它的性能好坏很大程度上决定了电子秤的精确度和稳定性。考虑到不同使用地点的重力加速度和空气浮力对转换的影响,称重传感器的性能指标主要有线性误差、滞后误差、重复性误差、蠕变、零点温度特性和灵敏度温度特性等。在各种衡器和质量计量系统中,通常用

综合误差带来综合衡量传感器准确度,并将综合误差带与衡器误差带联系起来,以便选用对应于某一准确度衡器的称重传感器。国际法制计量组织(OIML)规定,传感器的误差带δ占衡器误差带Δ的70%,称重传感器的线性误差、滞后误差以及在规定温度范围内由于温度对灵敏度的影响所引起的误差等的总和不能超过误差带δ。若在环境恶劣的条件下(如高低温、湿热),传感器所占的误差比例就更大,因此,在人们设计电子秤时,正确地选用称重传感器非常重要。1.常用各种称重传感器

称重传感器按转换方法分为光电式、液压式、电磁力式、电容式、磁极变形式、振动式、陀螺仪式、电阻应变式等8类,以电阻应变式使用最广。

光电式传感器包括光栅式和码盘式两种。光栅式传感器利用光栅形成的莫尔条纹把角位移转换成光电信号。光栅有两块,一为固定光栅,另一为装在表盘轴上的移动光栅。加在承重台上的被测物通过传力杠杆系统使表盘轴旋转,带动移动光栅转动,使莫尔条纹也随之移动。利用光电管、转换电路和显示仪表,即可计算出移过的莫尔条纹数量,测出光栅转动角的大小,从而确定和读出被测物质量。码盘式传感器的码盘是一块装在表盘轴上的透明玻璃,上面带有按一定编码方法编定的黑白相间的代码。加在承重台上的被测物通过传力杠杆使表盘轴旋转时,码盘也随之转过一定角度。光电池将透过码盘接受光信号并转换成电信号,然后由电路进行数字处理,最后在显示器上显示出代表被测质量的数字。光电式传感器曾主要用在机电结合秤上。

液压式传感器:在受被测物重力P作用时,液压油的压力增大,增大的程度与P成正比。测出压力的增大值,即可确定被测物的质量。液压式传感器结构简单而牢固,测量范围大,但准确度一般不超过1/100。

电磁力式传感器:它利用承重台上的负荷与电磁力相平衡的原理工作。当承重台上放有被测物时,杠杆的一端向上倾斜;光电件检测出倾斜度信号,经放大后流入线圈,产生电磁力,使杠杆恢复至平衡状态。对产生电磁平衡力的电流进行数字转换,即可确定被测物质量。电磁力式传感器准确度高,可达1/2000~1/60000,但称量范围仅在几十毫克至10千克之间。

电容式传感器:工作原理是利用电容器振荡电路的振荡频率f与极板间距d成正比的关系。极板有两块,一块是固定不动的,另一块是可移动的。在秤体加载重物时,两

极板间的距离发生变化,随之,电路的振荡频率也改变。只要测出频率的变化便可求出被测物的质量。电容式传感器耗电量少,造价低,准确度为1/200~1/500。

磁极变形式传感器:原理为铁磁元件在被测物体重力下发生形变,产生应力引起导磁率的变化,随之,绕在铁磁元件两侧的次级线圈的感应电压也变化。这样测出电压的变化量便可求出加到磁极上的力,从而确定物体的质量。磁极变形式传感器的准确度不高,一般为1/100,称量范围为几十至几万千克。

振动式传感器弹性元件受力后,其固有振动频率与作用力的平方根成正比。测出固有频率的变化,即可求出被测物作用在弹性元件上的力,进而求出其质量。振动式传感器有振弦式和音叉式两种。

振弦式传感器的弹性元件是弦丝。当承重台上加有被测物时,V形弦丝的交点被拉向下,且左弦的拉力增大,右弦的拉力减小。两根弦的固有频率发生不同的变化。求出两根弦的频率之差,即可求出被测物的质量。振弦式传感器的准确度较高,可达1/1000~1/10000,称量范围为100克至几百千克,但结构复杂,加工难度大,造价高。

音叉式传感器的弹性元件是音叉。音叉端部固定有压电元件,它以音叉的固有频率振荡,并可测出振荡频率。当承重台上加有被测物时,音叉拉伸方向受力而固有频率增加,增加的程度与施加力的平方根成正比。测出固有频率的变化,即可求出重物施加于音叉上的力,进而求出重物质量。音叉式传感器耗电量小,计量准确度高达1/10000~1/200000,称量范围为500g~10kg。

陀螺仪式传感器,转子装在内框架中,以角速度ω绕X轴稳定旋转。内框架经轴承与外框架联接,并可绕水平轴Y倾斜转动。外框架经万向联轴节与机座联接,并可绕垂直轴Z旋转。转子轴(X轴)在未受外力作用时保持水平状态。转子轴的一端在受到外力(P/2)作用时,产生倾斜而绕垂直轴Z 转动(进动)。进动角速度ω与外力P/2成正比,通过检测频率的方法测出ω,即可求出外力大小,进而求出产生此外力的被测物的质量。陀螺仪式传感器响应时间快(5秒),无滞后现象,温度特性好(3ppm),振动影响小,频率测量准确精度高,故可得到高的分辨率(1/100000)和高的计量准确度(1/30000~1/60000)。

电阻应变式传感器利用电阻应变片变形时其电阻也随之改变的原理工作。主要由弹性元件、电阻应变片、测量电路和传输电缆4部分组成。电阻应变片贴在弹性元件上,弹性元件受力变形时,其上的应变片随之变形,并导致电阻改变。测量电路测出应变片电阻的变化并变换为与外力大小成比例的电信号输出。电信号经处理后以数字形式显示出被测物的质量。电阻应变式传感器的称量范围为300g至数千Kg,计量准确度达1/1000~1/10000,结构较简单,可靠性较好,大部分电子衡器均使用此传感器。2.称重传感器的选择

传感器种类繁多,分类方式也千差万别,它们都有各自的特点,但在设计电子秤时,选择一种合适的传感器非常重要,传感器的性能在很大程度上决定了电子秤的精确度和稳定性。称重传感器的选择主要从以下几个方面考虑。(1)对传感器数量和量程的选择

传感器数量的选择是根据电子秤的用途、秤体需要支撑的点数(支撑点数应根据使秤体几何重心和实际重心重合的原则而确定)而定。一般来说,秤体有几个支撑点就选用几只传感器,但是对于一些特殊的秤体,如电子吊秤,就只能采用一个传感器,一些机电结合秤就应根据实际情况来确定选用传感器的个数。传感器的量程选择可依据秤的最大称量值、选用传感器的个数、秤体自重、可产生的最大偏载及动载因素综合评价来决定。一般来讲,传感器的量程越接近分配到每个传感器的载荷,其称量的准确度就越高。但是在实际的使用当中,由于加在传感器上的载荷除被称物体外,还存在秤体自重、皮重、偏载及振动冲击等载荷,因此选用传感器时,要考虑诸多方面的因素,保证传感器的安全和寿命。公式2-1给出了传感器量程选择的计算公式。

K0K1K2K3WmaxWC

N(2-1)

式中C—单个传感器的额定量程;W—秤体自重;Wmax一被称物体净重的最大值;N—秤体所采用支撑点的数量;K0—保险系数,一般取1.2~1.3之间;K1—冲击系数;K2—秤体的重心偏移系数;K3—风压系数(2)传感器准确度等级的选择

传感器的准确度等级概括了传感器的非线性、蠕变、蠕变恢复、滞后、重复性、灵敏度等技术指标。称重传感器已按准确度等级划分,且已考虑了0.7倍误差因子,非自动衡器称重传感器的准确度等级要选择与电子秤相对应的准确度等级。称重传感器按综合性能分为A、B、C、D四个准确度等级,分别对应于衡器Ⅰ、Ⅱ、Ⅲ、Ⅳ四个准确度等级。

(3)各种类型传感器的使用范围

称重传感器形式的选择主要取决于称重的类型和安装空间,保证安装合适,称重安全可靠;另一方面要考虑厂家的建议。对于传感器制造厂家来讲,它一般规定了传感器的受力情况、性能指标、安装形式、结构形式、弹性体的材质等。譬如铝合金悬臂梁传感器适合于电子计价秤、平台秤、案秤等;钢式悬臂梁传感器适用于电子皮带秤、分选秤等;钢质桥式传感器适用于轨道衡、汽车衡等;柱式传感器适用于汽车衡、动态轨道衡、大吨位料斗秤等。(4)使用环境

称重传感器实际上是一种将质量信号转换成可测量的电信号输出装置。用传感器首先要考虑传感器所处的实际工作环境,这点对于正确选用传感器至关重要,它关系到传感器能否正常工作以及它的安全和使用寿命,乃至整个衡器的可靠性和安全性。一般情况下,高温环境对传感器造成涂覆材料融化、焊点开化、弹性体内应力发生结构变化等问题;粉尘、潮湿对传感器造成短路的影响;在腐蚀性较高的环境下会造成传感器弹性体受损或产生短路现象;电磁场对传感器输出会产生干扰。相应的环境因素下我们必须选择对应的称重传感器才能满足必要的称重要求。3.电阻应变式称重传感器

按照称重传感器选择的指标要求,以及对各种传感器的比较,本设计选定电阻应变片式传感器,下面对此类传感器做详细介绍。

电阻应变式称重传感器是把电阻应变计粘贴在弹性敏感元件上,弹性体(弹性元件,敏感梁)在外力作用下产生弹性变形,使粘贴在他表面的电阻应变片(转换元件)也随同产生变形,电阻应变片变形后,它的阻值将发生变化(增大或减小),再经相应的测量电路把这一电阻变化转换为电信号(电压或电流),从而完成了将外力变换为电信号的过程。

电阻应变式称重传感器包括两个主要部分,一个是弹性敏感元件:利用它将被测的重量转换为弹性体的应变值;另一个是电阻应变计:它作为传感元件将弹性体的应变,同步地转换为电阻值的变化。电阻应变片所感受的机械应变量一般为10-6~10-2,随之而产生的电阻变化率也大约在10-6~10-2数量级之间。这样小的电阻变化用一般测量电阻的仪表很难测出,必须采用一定形式的测量电路将微小的电阻变化率转变成电压或电流的变化,才能用二次仪表显示出来。在电阻应变式称重传感器中通过桥式电路将电阻的变化转换为电压变化。当传感器不受载荷时,弹性敏感元件不产生应变,粘贴在其上的应变片不发生变形,阻值不变,电桥平衡,输出电压为零;当传感器受力时,即弹性敏感元件受载荷P时,应变片就会发生变形,阻值发生变化,电桥失去平衡,有输出电压。图2-2为电阻应变式称重传感器桥式测量电路。

图2-2 电阻应变式称重传感器桥式测量电路

R1、R2、R3、R4为4个应变片电阻,组成了桥式测量电路,Rm为温度补偿电阻,e为激励电压,V为输出电压。若不考虑Rm,在应变片电阻变化以前,电桥的输出电压为:

R4R1Ve

R1R2R3R4(2-2)

由于桥臂的起始电阻全等,即R1=R2=R3=R4=R,所以V=0。当应变片的电阻R1、R2、R3、R4变成R+△R1、R+△R2、R+△R3、R+△R4时,电桥的输出电压变为: RR1RR4Ve

RR1RR2RR3RR4(2-3)

通过化简,上式则变为: VeR1R2R3R4

4RRRR(2-4)

也就是说,电桥输出电压的变化与各桥臂电阻变化率的代数和成正比。如果四个桥臂应R变片的灵敏系数相同,且=Kε,则上式又可写成:

R

VeK1234 4(2-5)

式中K为应变片灵敏系数,ε为应变量。式2-5表明,电桥的输出电压和四个轿臂的应变片所感受的应变量的代数和成正比。在电阻应变式称重传感器中,4个应变片分别贴在弹性梁的4个敏感部位,传感器受力作用后发生变形。在力的作用下,R1、R3被拉伸,阻值增大,△R1、△R3正值,R2、R4被压缩,阻值减小,△R2、△R4为负值。再加之应变片阻值变化的绝对值相同,即

因此

VeK4eK 4R1R3R或13 R2R4-R或24

(2-6)(2-7)

(2-8)

若考虑Rm,则电桥的输出电压变成: 令Su V,则 eSuRK

R2RmRRRRRRVeKe 2RR2RmR2Rm2R(2-9)

(2-10)

Su称为传感器系数或传感器输出灵敏度。

对于一个高精度的应变传感器来说,仅仅靠4个应变片组成桥式测量电路还是远远不够的。由于弹性梁材料金相组织的不均匀性及热处理工艺、应变片性能及粘贴工艺、温度变化等因素的影响,传感器势必产生一定的误差。为了减少传感器随温度变化产生的误差,提高其精度和稳定性,需要在桥路两端和桥臂中串入一些补偿元件。如:初始不平衡值的补偿、零载输出温度补偿、输出灵敏度温度补偿等。

2.3.3 A/D转换器的选定

在实际的测量和控制系统中检测到的常是时间、数值都连续变化的模拟量,模拟量要输入到单片机中进行处理,首先要经过模拟量到数字量的转换,单片机才能接收、处理。目前有多种类型的A/D转换器,其类型有积分型、逐次逼近型、并行比较型、Σ-

Δ调制型、压频变换型等。多种类型的ADC各有其优缺点,并能满足不同的具体要求。1.A/D转换器的分类:(1)积分型

积分型ADC工作原理是将输入电压转换成时间(脉冲宽度信号)或频率(脉冲频率),然后由定时器/计数器获得数字值。其优点是用简单电路就能获得高分辨率,但缺点是由于转换精度依赖于积分时间,因此转换速率极低。初期的单片AD转换器大多采用积分型,现在逐次比较型已逐步成为主流。(2)逐次逼近型

逐次逼近型ADC由一个比较器和D/A转换器通过逐次比较逻辑构成,从MSB开始,顺序地对每一位将输入电压与内置D/A转换器输出进行比较,经n次比较而输出数字值。其电路规模属于中等。其优点是速度较高、功耗低,在低分辩率(<12位)时价格便宜,但高精度(>12位)时价格很高。(3)并行比较型/串并行比较型

并行比较型ADC采用多个比较器,仅作一次比较而实行转换,又称Flash(快速)型。由于转换速率极高,n位的转换需要2n-1个比较器,因此电路规模也极大,价格也高,只适用于视频AD转换器等速度特别高的领域。串并行比较型AD结构上介于并行型和逐次比较型之间,最典型的是由2个n/2位的并行型AD转换器配合DA转换器组成,用两次比较实行转换,所以称为 Half flash(半快速)型。还有分成三步或多步实现AD转换的叫做分级型ADC,而从转换时序角度又可称为流水线型ADC,现代的分级型AD中还加入了对多次转换结果作数字运算而修正特性等功能。这类AD速度比逐次比较型高,电路规模比并行型小。(4)Σ-Δ调制型

Σ-Δ型AD由积分器、比较器、1位DA转换器和数字滤波器等组成。原理上近似于积分型,将输入电压转换成时间(脉冲宽度)信号,用数字滤波器处理后得到数字值。电路的数字部分基本上容易单片化,因此容易做到高分辨率。主要用于音频和测量。(5)压频变换型

压频变换型是通过间接转换方式实现模数转换的。其原理是首先将输入的模拟信号转换成频率,然后用计数器将频率转换成数字量。从理论上讲这种AD的分辨率几乎可

以无限增加,只要采样的时间能够满足输出频率分辨率要求的累积脉冲个数的宽度。其优点是分辩率高、功耗低、价格低,但是需要外部计数电路共同完成AD转换。2.A/D转换器选用的原则:

(1)A/D转换器的位数。A/D转换器决定分辨率的高低,在系统中,A/D转换器的分辨率应比系统允许引用误差高一倍以上。

(2)A/D转换器的转换速率。不同类型的A/D转换器的转换速率大不相同。积分型的转换速率低,转换时间从几豪秒到几十毫秒,只能构成低速A/D转换器,一般用于压力、温度及流量等缓慢变化的参数测试。逐次逼近型属于中速A/D转换器,转换时间为纳秒级,用于个通道过程控制和声频数字转换系统。

(3)是否加采样/保持器。

(4)A/D转换器的有关量程引脚。有的A/D转换器提供两个输入引脚,不同量程范围内的模拟量可从不同引脚输入。

(5)A/D转换器的启动转换和转换结束。一般A/D转换器可由外部控制信号启动转换,这一启动信号可由CPU提供。转换结束后A/D转换器内部转换结束信号触发器置位,并输出转换结束标志电平,通知微处理器读取转换结果。

(6)A/D转换器的晶闸管现象。其现象是在正常使用时,A/D转换器芯片电流骤增,时间一长就会烧坏芯片。

2.3.4 单片机型号的选定

1.单片机选定准则

市场上的单片机型号很多,功能也有差异,在选择单片机型号的时候主要应该注意以下几个方面:(1)市场货源

系统设计者只能在市场上能够提供的单片机中选择,特别是作为产品大批量生产的应用系统,所选的单片机型号必须有稳定、充足的货源。(2)单片机性能

应根据系统的功能要求和各种单片机的性能,选择最容易实现系统技术指标的型号,而且能达到较高的性能价格比。单片机性能包括片内硬件资源、运行速度、可靠性、指令系统功能、体积和封装形式等方面。影响性能价格比的因素除单片机的性能价格外,还包括硬件和软件设计的容易程度、相应的工作量大小,以及开发工具的性能价格比。(3)研制周期

在研制任务重、时间紧的情况下,还要考虑所选的单片机型号是否熟悉,是否能马上着手进行系统的设计。与研制周期有关的另一个重要因素是开发工具,性能优良的开发工具能加快系统地研制进程。2.AT89S51单片机介绍

根据以上对单片机选型知识的介绍,本设计选用AT89S51单片机,下面对此型号单片机进行简介。

AT89S51是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机。AT89S51是一种带4K字节闪烁可编程可擦除只读存储器的单片机,其指令集和传统的51单片机指令集是一样的。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。

此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。硬件设计

3.1 系统硬件结构图

图3-1为系统总体硬件结构方框图,系统共分为三大部分:数据采集模块、单片机控制模块以及键盘和显示模块。各模块所采用的主要芯片型号已于图中有所标示。

AD转换ADC0832AT89S51单片机最小系统超重报警模块4*4矩阵键盘LM4229液晶显示

图3-1 系统总体硬件设计方框图

3.2 单片机主控单元的设计

3.2.1 单片机引脚说明

AT89S51单片机芯片为40个引脚,图3-2为单片机AT89S51引脚图。下面简单叙述各引脚的功能。

VCC/GND:电源/接地引脚;

P0口:P0是一个8位漏极开路型双向I/O端口,端口置1(对端口写1)时作高阻抗输入端;P0还可以用作总线方式下的地址数据复用管脚,用来操作外部存储器。在这种工作模式下,P0口具有内部上拉作用。对内部Flash程序存储器编程时,接收指令字节、校验程序、输出指令字节时,要求外接上拉电阻;

P1口:P1是一个带有内部上拉电阻的8位双向I/0端口,输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用; 另外,P1.0、P1.1可以分别被用作定时器/计数器2的外部计数输入(P1.0/T2)和触发输入(P1.1/T2EX);对内部Flash程序存储器编程时,接收低8位地址信息;

P2口:P2是一个带有内部上拉电阻的8位双向I/0端口;输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用; P2口在存取外部存储器时,可作为高位地址输出;内部Flash程序存储器编程时,接收高8位地址和控制信息;

P3口:P3是一个带有内部上拉电阻的8位双向I/0端口,输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。P3引脚功能复用见表3-1所示:

表3-1 P3口引脚功能复用

P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7

串行通讯输入(RXD)串行通讯输出(TXD)外部中断0(INT0)外部中断1(INT1)定时器0输入(T0)定时器1输入(T1)外部数据存储器写选通WR 外部数据存储器写选通RD

RST:在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此管脚时,将使单片机复位。只要这个管脚保持高电平,51芯片便循环复位。复位后P0—P3口均置1,管脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序;

XTAL1、XTAL2:XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz至24MHz内选择,电容取30PF左右。

ALE/PROG:访问外部存储器时,ALE(地址锁存允许)的输出用于锁存地址的低位字节,即使不访问外部存储器,ALE端仍以不变的频率输出脉冲信号(此频率是振荡器频率的1/6),在访问外部数据存储器时,出现一个ALE脉冲;

PSEN:外部程序存储器的选通信号输出端。当AT89S51由外部程序存储器取指令或常数时,每个机器周期输出2个脉冲,即两次有效。但访问外部数据存储器时,将不

会有脉冲输出;

EA/Vpp:外部访问允许端。当该引脚访问外部程序存储器时,应输入低电平。要使AT89S51只访问外部程序存储器(地址为0000H-FFFFH),这时该引脚必须保持低电平。

图3-2单片机AT89S51引脚图

3.2.2 AT89S51最小系统设计

单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。对51系列单片机来说,最小系统包括:单片机、晶振电路、复位电路。其中复位电路采用上电复位。其最小系统电路图见图3-3所示:

图3-3 单片机最小系统图

对于AT89S51单片机,其最小系统只需要电源、复位电路、时钟电路就能工作。由于我们的程序存储器(ROM)采用内部Flash存储单元,所以单片机上的EA接高。

微处理器系统在开始工作时必须对微处理器内部的寄存器等进行复位,使各个寄存器的值设为预定状态才能顺利开始工作。复位电路的好坏决定着单片机能否正常工作。复位电路基本功能是在系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。复位电路可以使用专用复位芯片,也可以用电阻电容搭建。本文从可靠性和成本考虑最终选用电阻电容来搭建复位电路。对于51内核的单片机,RST是复位信号输入端,高电平有效。当此输入端保持两个机器周期(24个时钟振荡周期)的高电平时,可以完成复位操作。

3.3 数据采集模块设计

3.3.1 传感器单元设计

根据第二章对各种类型传感器特性的介绍,本设计决定采用L-psⅢ型称重传感器,该传感器为双孔平衡梁形式,是制作电子计价秤的专用产品,也可用于制造由单只传感器构成的电子案秤、台秤及专用衡器等。其主要技术指如表3-2所示:

表3-2 L-psⅢ型称重传感器技术指标

额定载荷 灵敏度 准确度等级 最大分度数 最小检定分度值 综合误差 重复性 蠕变 最小静载荷 最大安全载荷 极限过载荷 输入电阻 输出电阻 温度补偿范围 使用温度范围 接线方式

Kg mV/V

%F.S.%F.S.%F.S./30min %Fmax %Fmax %Fmax

3,6,10,20,30,50 1.8±0.08 C3 3000 Fmax/10000

0.02 0.01 ±0.017 1 150 200 415~445 349~355-10~+50-20~+60

 ℃ ℃

输入(+):红,输入(-):白,输出(+):绿

输出(-):蓝,屏蔽:黄

3.3.2 A/D转换单元设计

根据对各种A/D转换器的介绍与分析,本设计选定ADC0832作为本设计的A/D转

换模块。下面对该芯片的情况进行简要的介绍。

ADC0832是美国国家半导体公司生产的一种8位分辨率、双通道A/D转换芯片。具有体积小,兼容性强,性价比高的特点,具体参数如下:  8位分辨率;  双通道A/D转换;

 输入输出电平与TTL/CMOS相兼容;  5V电源供电时输入电压在0~5V之间;  工作频率为250KHZ,转换时间为32uS;  一般功耗仅为15mW;

 8P、14P-DIP(双列直插)、PICC多种封装;

 商用级芯片温宽为0℃~70℃,工业级芯片温宽为-40℃~85℃;

1、下面对ADC0832的引脚进行说明,图3-4为该芯片的引脚图:

图3-4 ADC0832引脚图

 CS—:片选端,低电平芯片使能;

 CH0:模拟输入通道0,或作为IN+/-使用;  CH1:模拟输入通道1,或作为IN+/-使用;  GND:芯片参考零点位(地);  DI:数据信号输入,选择通道控制;  DO:数据信号输出,转换数据输出;  CLK:芯片时钟输入;

 Vcc/REF:电源输入及参考电压输入(复用)。

2、ADC0832的接口电路

正常情况下,ADC0832与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI,但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO与DI并联在一根数据线上使用。单片机与ADC0832的接口电路如图3-5所示。

图3-5 单片机与ADC0832连接图

当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK和DO/DI的电平可以任意,当要进行A/D转换时,须先将CS使能端置于低电平并保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。

3.4 键盘和显示电路单元设计

3.4.1 键盘电路设计

在本设计中,采用的是4×4的矩阵式键盘,将单片机的P1.0-P1.3作为键盘的行线接口,P1.4-P1.7作为列线接口,列线通过电阻接+5V。商品的单价已由程序设定好,并

号连接。3.4.2 显示电路设计

3.5 系统总体原理图 可由键盘选择各种商品的价格。

图3-6所示,为完善其功能,电路中添加了上拉电阻。

图3-6 液晶显示模块LM4229与单片机接线图 在系统各部分的设计完成后,把各模块根据其功能和信号处理的流程连接起来,便得到系统总体设计的原理图,如图3-7所示,为简洁起见,其中的接线部分采用网络标本设计中显示部分采用了当今常用的LM4229液晶显示模块。其与单片机的接线如

措施。3.6 硬件抗干扰设计

图3-7 系统总体原理图

方面,但更重要的方面是外界干扰和接地引起的异常。

度。就单片机测控系统来讲,其主要干扰是来自电源和信号传输通道的干扰。用到称重传感器,所采用的应变式传感器是高阻抗器件,其绝缘性能、机械结构的稳定性等,直接影响工作特性的稳定。因此,应变片传感器的绝缘材料必须有很高的绝缘性统的可靠性更倍受人们的关注,这是因为系统的可靠性决定了系统能否达到所需要的精能、足够的机械强度、高形状稳定性及良好的抗湿性能。下面重点介绍单片机的抗干扰随着科学技术的迅速发展,人们对单片机测控系统的各种性能要求越来越高。而系本电子称重器的核心部件是单片机,所以我们的抗干扰措施主要是针对单片机。还电子秤在使用中,常常会出现各种各样的异常现象,电子秤本身的质量问题是一个

1、电源的抗干扰措施

普通用电中含有多种高次谐波,它们很容易经电源进入单片机系统,还有一些射频发射、电磁波等也会由电源线感应反馈进入单片机系统造成干扰。因此,在电源电路中必需采取有效地滤波措施,来抑制这些高频干扰的侵入。电源滤波的一般方法是在电源变压器初、次级分别设置低通滤波器和线间电容滤波器,使50Hz市电基波通过,而抑制掉高频信号。此外在变压器的初、次级之间均采用屏蔽层隔离,其中初级屏蔽层接大地,次级屏蔽层接系统逻辑地,以减少其分布电容,提高抗共模干扰的能力。

2、信号传输通道的抗干扰措施

信号传输通道包括系统的前向通道和后向通道,其主要干扰有:杂散电磁场通过感应和辐射方式进入通道的干扰;由于地阻抗耦合、漏电流等因素产生的加性干扰;以及因传输线衰减、阻抗失配等因素引起的乘性干扰。对于这三类干扰,可以采用以下几种措施加以排除。(1)光电隔离技术

光电耦合器对干扰信号具有良好的隔离性能,一是它的输入阻抗很小,约为100fl-lldl,而干扰源内阻则很大,通常为105Q~108Q,因此能分压到光电耦合器输入端的噪声很小;二是光电耦合器输入部分的发光二极管是在电流状态下工作的,即使干扰噪声有较高的电压幅度,但由于能量小,不能提供足够的电流使发光二极管发光而被抑制掉;三是光电耦合器的输入回路与输出回路之间分布电容极小,绝缘电阻很大,回路一边的干扰很难通过光电耦合器馈送到另一边去。因此,采用光电耦合器可将单片机与前向通道、后向通道及其他部分从电气上隔离开来,能有效地防止干扰信号的侵入。(2)接地技术

本系统既有模拟电路又有数字电路,因此数字地与模拟地要分开,最后只在一点相连,如果两者不分,则会互相干扰。(3)输入输出信号线采用屏蔽双绞线

屏蔽双绞线对于静电干扰和电磁干扰有很好的抑制作用,有条件的话应尽量采用。但使用中应注意:

 线缆敷设时不要过分用力或使电缆打结、避免弯曲超过900、避免过紧地缠绕电缆,以保护双绞47线的扭绞状态;

 做线时,避免损坏线缆的外皮、不要切坏线缆内的导线;  接线时,双绞线的开绞长度尽量小,不要超过20mm;  双绞线的屏蔽层采用设备端单端接地方式。系统软件设计

本系统程序使用模块化的程序设计思想,主程序通过调用子程序以实现各部分功能。先进行软件的总体设计,然后进行各功能模块设计。

4.1 主程序设计

电子秤需要有数据采集、处理、存结果、送显示的运行过程。根据这一要求,电子秤的信息采集与处理分三个阶段:在微处理器的控制下,经传感器转换的电压信号通过输入电路送入A/D转换器处理,存入到数据存储器中;微处理器对采集的测量数据进行必要的数据处理,把数据信号处理为显示所要求的信号格式,通过输出接口电路输出并显示。主流程图见图4-1所示:

开始单片机初始化、LM4229进入欢迎界面、ADC0832初始化载物台是否有重物Y单片机存储ADC0832采样值N是否输入商品代码按键Y单片机执行计算并将结果送LM4229显示N测量结束键是否按下Y结束N

图4-1 主程序流程图

4.2 LM4229液晶显示驱动程序

开始写入控制字写入初始行Y是否换行?N全部数据已写完?Y结束N

图4-2 LM4229液晶显示驱动程序流程图

LM4229液晶能够显示比较复杂的汉字和图形,首先必须对其写入控制操作字,包括图形的显示方式,字体的模式。然后写入初始行地址,指针自动左移,直到写完全部数据为止。

write_data(place&0xff);//写入地址高位 write_data(place/256);//写入地址低位 write_com(0x24);//地址设置 write_com(0xb0);//设置数据自动写

write_data(ASC_MSK[(c1-0x20)*16+k]);/*---例如:0的ASCII码为0x30, 在ASC_MSK中的位置为0x10*16---16字节字码依次写入LCD---*/ write_com(0xb2);//自动复位 place=place+30;

4.3 ADC0832采样程序

开始拉低CS、拉高CLKDATA右移八位?Y拉高CS、拉低CLK,返回数据N结束

图4-3 ADC0823采样程序流程图

单片机通过拉低CS、拉高CLK来启动ADC0832进行外部压力传感转换后的电压信号进行采样,每产生8个CLK脉冲,DATA获得一位完整的8bit数据,此时MCU发送中断请求,拉高CS,拉低CLK,并将数据DAT返回。

4.4 键盘程序

本设计中采用了4×4矩阵式键盘,单片机定时进行查询。首先单片机发送行扫描代码,然后进行列扫描,当发现某一列出现了低电平时,即返回相应的键盘值。若没有发现则说明当前行没有键按下,行扫描右移一位,继续执行列扫描。

开始发送行扫描码发送列扫描码右移一位右移一位列扫描完毕?NYN行扫描完毕?Y返回键值结束图4-4 键盘程序流程图

系统仿真

在系统硬件与软件全部设计完成的情况下,将系统在protues7.5环境下进行了软件仿真,以确保本设计方案的可行性与准确性。因为在仿真时不能实际的把物体放到称重台上,所以在仿真时采用直接输入模拟电压信号的方法,来代替信号的采集。

5.1 欢迎界面的仿真

开始仿真时,先将用C语言编写的程序用Keil软件进行编译,生成可执行程序,然后装入单片机中进行仿真,按开始按钮,单片机及其他各部分电路开始工作,单片机调用内部存储数据对各部分接口电路初始化。200ms后LM4229进入欢迎界面,如图5-1所示。

图5-1 电子秤欢迎界面仿真

5.2 无重物情况仿真

欢迎界面过后,电子秤进入称重界面。此时,ADC0832不断对外部数据进行采样交给单片机进行处理,一旦有物品放入载物台,ADC0832立即发送中断请求,并将本次采集数据交给单片机进行处理。调节压力传感模拟电路电压,将电压设为0.00表示此时载物台上没有物体。此时LM4229显示指示“实用电子秤,名称······单价:0.000元/千克,总重量:0.000千克,总价:00.000元”。如图5-2所示。

图5-2 无重物称重界面仿真

5.3 称量物体仿真

上调压力传感电压,表示已有商品放在载物台上,ADC0832立即发送中断请求,并将本次采集的数据交给单片机进行处理,之后送入LM4229显示相应数据量。在此过程中,键盘不断进行扫描,一旦有键按下,单片机便对其数据进行相应处理,然后将对LM4229进行写操作。此时,按下键盘,选择相应的商品。如按下3号键,选择草莓,此时LM4229上显示“名称:草莓,单价:3.6元/千克,总重量:2.499千克,总价:“8.999元”(实际3.6×2.499=8.999元)。达到基本要求。如图5-3所示。当要称量下一种不同商品的时候,只需按下0键,选择商品代码,再按下相应商品键。

图5-3 称重情况仿真

5.4 最大量程仿真

将称重传感器调节到最大,显示最大称量,其结果如图5-4所示。由于元件及系统的误差,使得最大量程不能达到预定的5Kg,而是4.980Kg,这是在误差允许范围内的,符合要求。因为本设计添加了超重报警模块,所以在称量的过程中,一旦物体自身的重量超出电子秤的称量范围,蜂鸣器立即会发出“滴滴····”,警报声告诉工作人员,所称量物品超重。

图5-4 最大量程仿真

5.5 仿真总结与问题补充

5.5.1 仿真总结

以上,我们进行了几种基本情况的仿真,总结仿真的过程,我们可以得出以下结论:

1、该电子秤设计简单,操作方便,可以很容易的进行称量;

2、由于元件设置的原因,使电子秤的量程未达到预设的范围;

3、各商品的价格已在程序中设定好,既给称量带来了方便,也带来了麻烦,使得称量其他物品时需要修改程序。

5.5.2 问题补充

因为本设计采用软件仿真的方法,而不能进行实际的称量,所以采用了直接输入电压信号的方式代替了传感器采集的信号。但是经传感器采集的信号通常很小,需要通过前端信号处理电路进行准确的线性放大。放大后的模拟电压信号经过滤波电路和A/D转换电路转换成数字信号才被送入到主控电路的单片机中进行处理。在实际称量中,可以加入放大滤波电路如图5-5所示。

图5-5 放大滤波电路

图5-5为放大滤波电路的设计。放大器采用放大芯片AD620电容C1、C3用来滤除

采样信号电压中的低频噪声,选用22uF的普通独石电容;电容C2、C4用来滤除采样信号电压中的高频噪声,选用0.1uF的普通独石电容。因为采样信号电压值只有毫伏级,所以电阻R1、R2选用较小的阻值,否则导致放大器由于输入电流太小而放大效果不明显。微弱信号Vi1和Vi2被分别放大后从AD620的第6脚输出。

总结与展望

电子称重器是贸易市场中的常见的称重计量仪器。本文先说明了称重器的设计思路,并介绍了几种设计方案,选择了其中一种简单可行的方案。然后从电子秤的核心部件称重传感器的介绍开始,逐个进行各个模块器件的论证与选择。后面详细介绍了电子秤的硬件以及软件设计。

本设计为小量程(0~5Kg)称量器件,可以广泛应用于商店、菜市场等场合。在硬件部分设计过程中选用了A/D转换芯片ADC0832和LM4229液晶显示,大大简化了硬件电路及软件编程,并提高了系统的准确性和稳定性。人机界面部分由液晶显示与4×4位矩阵键盘组成,可以由键盘控制显示商品名称、重量和价格等信息,操作简单方便。软件设计中使用了C语言编程,便于修改和应用。

本次设计的电子称重器还存在一些缺点与不足,主要以下这两点:一是量程仅是5Kg,从而限制了该电子秤的使用范围。可采用大量程的称重传感器,但同时需要提高A/D转换芯片的位数,以保持精度。二是商品的种类与价格已编入程序,给称量其它的商品带来不便。三是本次设计没有完成实物的制作,从而不能预见商业产品开发中的所有问题,需要进一步研究。

通过这次电子秤的设计,我对所学的专业课知识有了更深的理解,尤其是单片机方面。在设计过程中,查阅了大量的中外文资料,解决了不少难题。另外本次设计提升了我分析问题解决问题的能力,增强了对学习的信心,相信这对我以后的工作和学习有重要的帮助。

附录程序

#include #include #include #include #include #define uchar unsigned char #define uint

unsigned int sbit ADCS =P3^5;sbit ADDI =P3^7;

sbit ADDO =P3^7;

sbit ADCLK =P3^6;

uint x1,y1,z1=0,w1;uchar ad_data,k,n,m,e,num,s;

//采样值存储 uint temp1;sbit beep =P3^0;

char press_data;

//标度变换存储单元 float press;unsigned char ad_alarm,temp;

//报警值存储单元unsigned char abc[5]={48,46,48,48,48};unsigned char price_all[6]={48,48,46,48,48,48};float price_unit[10]={5.5,2.8,3.6,4.5,2.4,4.2,3.8,6.0,1.5,0};

//商品初始单价 uchar price_danjia[5]={48,46,48,48,48};float price;uint price_temp1,price_temp2;

//商品总价 uchar Adc0832(unsigned char channel);

void alarm(void);void data_pro(void);void delay(uint k);void keyscan();

void disp_init();void price_jisuan();/************ 主函数

************/ void main(void){

delay(500);

//系统延时500ms启动

//ad_data=0;

//采样值存储单元初始化为0

lcd_init();

//显示初始化

disp_init();

//开始进入欢迎界面

delay(1000);

//延时进入称量画面

clear_lcd(0,4,40);

clear_lcd(16,0,100);

clear_lcd(28,0,40);

clear_lcd(44,0,100);

clear_lcd(56,0,40);

clear_lcd(72,0,100);

clear_lcd(84,0,40);

clear_lcd(100,0,100);

clear_lcd(112,0,40);

write_lcd(0,8,“实用电子秤”);

while(1)

{

ad_data =Adc0832(0);

//采样值存储单元初始化为0

alarm();

data_pro();//读取重量

keyscan();//查询商品种类

write_lcd(40,0,“------------------------------”);

write_lcd(56,0,“单 价:”);

write_lcd(56,11,price_danjia);

write_lcd(56,20,“元/千克”);

write_lcd(72,0,“总重量:”);

write_lcd(72,11,abc);

write_lcd(72,20,“千克”);

write_lcd(88,0,“总 价:”);

price_jisuan();

//计算出价格

write_lcd(88,10,price_all);

write_lcd(88,20,“元”);

write_lcd(112,0,“设计学生:1210401038 谢玉夏”);} } /************ 读ADC0832函数 ************/

//采集并返回

uchar Adc0832(unsigned char channel)

//AD转换,返回结果 {

uchar i=0;

uchar j;

uint dat=0;

uchar ndat=0;

if(channel==0)channel=2;

if(channel==1)channel=3;

ADDI=1;

_nop_();

_nop_();

ADCS=0;//拉低CS端

_nop_();

_nop_();

ADCLK=1;//拉高CLK端

_nop_();

_nop_();

ADCLK=0;//拉低CLK端,形成下降沿1

_nop_();

_nop_();

ADCLK=1;//拉高CLK端

ADDI=channel&0x1;

_nop_();

_nop_();

ADCLK=0;//拉低CLK端,形成下降沿2

_nop_();

_nop_();

ADCLK=1;//拉高CLK端

ADDI=(channel>>1)&0x1;

_nop_();

_nop_();

ADCLK=0;//拉低CLK端,形成下降沿3

ADDI=1;//控制命令结束

_nop_();

_nop_();

dat=0;

for(i=0;i<8;i++)

{

dat|=ADDO;//收数据

ADCLK=1;

_nop_();

_nop_();

ADCLK=0;//形成一次时钟脉冲

_nop_();

_nop_();

dat<<=1;

if(i==7)dat|=ADDO;

}

for(i=0;i<8;i++)

{

j=0;

j=j|ADDO;//收数据

ADCLK=1;

_nop_();

_nop_();

ADCLK=0;//形成一次时钟脉冲

_nop_();

_nop_();

j=j<<7;

ndat=ndat|j;

if(i<7)ndat>>=1;

}

ADCS=1;//拉搞CS端

ADCLK=0;//拉低CLK端

ADDO=1;//拉高数据端,回到初始状态

dat<<=8;

dat|=ndat;

return(dat);

//return ad k

}

void data_pro(void){

unsigned int;

if(0

{

int vary=ad_data;

press=(0.019531*vary);

temp1=(int)(press*1000);

//放大1000倍,便于后面的计算

abc[0]=temp1/1000+48;

//取压力值百位

abc[1]=46;

abc[2]=(temp1%1000)/100+48;

//取压力值十位

abc[3]=((temp1%1000)%100)/10+48;

//取压力值个位

abc[4]=((temp1%1000)%100)%10+48;//取压力值十分位

}

} /*****************报警子函数*******************/

void alarm(void){

if(ad_data>=256)

beep=0;

//则启动报警

else

beep=1;

}

void delay(uint k){

uint i,j;

for(i=0;i

for(j=0;j<100;j++);}

//开机欢迎界面 void disp_init(){

write_lcd(0,8,“欢迎使用电子秤”);

write_lcd(16,0,“------------------------------”);

write_lcd(28,0,“设计学生:谢玉夏”);

write_lcd(44,0,“------------------------------”);

write_lcd(56,0,“班级学号:1210401038”);

write_lcd(72,0,“------------------------------”);

write_lcd(84,0,“指导老师:刘志芳”);

write_lcd(100,0,“------------------------------”);

write_lcd(112,0,“设计日期:2014年12月”);

}

//键盘服务程序 void keyscan(){

P1=0xfe;

temp=P1;

temp=temp&0xf0;

while(temp!=0xf0)

{

delay(5);

temp=P1;

temp=temp&0xf0;

while(temp!=0xf0)

{

temp=P1;

switch(temp)

{

case 0xee:num=1,price=price_unit[0], write_lcd(24,0,“名

break;case 0xde:num=2,price=price_unit[1],write_lcd(24,0,”名

break;case 0xbe:num=3,price=price_unit[2],write_lcd(24,0,“名

break;case 0x7e:num=4,price=price_unit[3],write_lcd(24,0,”名

break;

}

while(temp!=0xf0)

{

称:

杏称:

李 称:

草 称:

仁“);子”);莓“);萄”);

temp=P1;

temp=temp&0xf0;

}

}

}

P1=0xfd;

temp=P1;

temp=temp&0xf0;

while(temp!=0xf0)

{

delay(5);

temp=P1;

temp=temp&0xf0;

while(temp!=0xf0)

{

temp=P1;

switch(temp)

{ case 0xed:num=5,price=price_unit[4],write_lcd(24,0,“名

break;case 0xdd:num=6,price=price_unit[5],write_lcd(24,0,”名

break;case 0xbd:num=7,price=price_unit[6],write_lcd(24,0,“名

break;case 0x7d:num=8,price=price_unit[7],write_lcd(24,0,”名

break;

}

while(temp!=0xf0)

{

temp=P1;

temp=temp&0xf0;

}

}

}

P1=0xfb;

temp=P1;

temp=temp&0xf0;

称:

西称:

苹称:

雪称:

51单片机课程设计作业 篇6

/*********************//注释,还可用//注释掉一行Filename:P_test.c

Chipname:STC89C51RCClockfrequency:1.20MHz***********************/#include“reg52.h”//预处理命令,文件包含预处理命令,后缀名都是.h,标准的MCS-51单片机头文件为”reg51.h”,STC89系列单片机头文件为”reg52.h”#defineunitunsignedint//宏定义预处理命令sbitBZ=P3`7;sbitkey=P1`0;voiddelay(unitms){

uniti;

while(ms--){

for(i=0;i<120;i++);}}

voidmain(void){

while(1)

{

if(key==0)

{

BZ=0x0;delayms(10);BZ=0x1;delayms(50);P0=0xFF;}else{

P0=~P0;

delayms(500);}}}

2.C51的数据类型

C51的数据类型

构造类型

位变量型bit字符型无符号字符型unsignedchar

有符号字符型signedchar

整数型无符号整数型unsignedint

有符号整数型signedint

长整数型无符号长整数型unsignedlongint

有符号长整数型signedlongint

实数型(浮点型)单精度浮点型float

双精度浮点型double

数组类型array结构体类型struct共用体union枚举enum

表3-1类型

指针类型空类型(void)

C51基本数据类型的长度和值域

长度/bit18816163232323224

单字节单字节双字节双字节四字节四字节四字节四字节三字节长度/byte

范围0,10-255-128-1270-65536-32768-32767

位变量型bit

无符号字符型unsignedchar有符号字符型signedchar无符号整数型unsignedint有符号整数型signedint

无符号长整数型unsignedlongint有符号长整数型signedlongint单精度浮点型float双精度浮点型double一般指针类型

3.C51的标识符和关键字

标识符是由字母、数字和下划线组成的字符串,第一个字符必须是字母或下划线,不超过32个字符。

表3-2C51中的关键字关键字autobdatabreakbitcasechar

用途

存储种类声明存储器类型说明程序语句位变量语句程序语句数据类型的声明

说明

用来声明局部变量

可位寻址的内部数据存储器退出最内层循环体

位变量的值是1(true)或0(flase)switch语句中的选择项单字节整数型或字符型数据

关键字codeconstcontinuedatadefaultdodoubleelseenumexternfloatforgotoidataifintinterruptlongpdataregisterreentrantreturnsbitshortsignedsizeofSfrSfr16staticstructswitchtypedefunionunsignedusingvoidvolatilewhilexdata

用途

存储器类型声明存储类型说明程序语句存储器类型说明程序语句程序语句数据类型说明程序语句数据类型说明存储类型说明数据类型说明程序语句程序语句存储器类型说明程序语句数据类型说明中断声明数据类型说明存储器类型说明存储类型说明再入函数说明程序语句位变量声明数据类型说明数据类型说明运算符

特殊功能寄存器声明特殊功能寄存器声明存储类型说明数据类型说明程序语句数据类型说明数据类型说明数据类型说明寄存器组定义数据类型说明数据类型说明程序语句存储器类型说明

说明程序存储器

在程序执行过程中不可修改的变量值退出本次循环,转向下一次循环直接寻址的内部数据存储器Switch语句中的失败选择项构成do...while循环结构双精度浮点数构成if...else选择结构枚举

在其他程序模块中声明了的全局变量单精度浮点型构成for循环结构构成goto循环结构间接寻址的内部数据存储器构成do...while循环结构基本整数型定义一个中断函数长整数型

分页寻址的内部数据存储器使用CPU内部的`寄存器变量定义一个再入函数函数返回

声明一个可位寻址的变量短整数型

有符号数,二进制的最高位位符号位计算表达式或数据类型的字节数声明一个特殊功能寄存器声明一个16位的特殊功能寄存器静态变量结构类型数据构成switch选择语句重新进行数据类型定义联合数据类型无符号数据

定义芯片的工作寄存器无符号数据

声明该变量在程序执行中可被隐含改变构成while和do...while循环语句外部数据存储器

4.C51的常量和变量1)常量

常量就是在程序运行过程中,其值不能改变的数据,包括整型常量、字符常量、字符串常量、实数常量、位标量等。

(1)整型常量:可以用二进制、八进制、十进制、十六进制表示。

无符号整数常量在一个数字后面加上“u”或“U”表示。长整数型常量在后面加上“l”或“L”,无符号长整数型常量在数字后面加上“ul”或“UL”,实数型常量在后面加“f”或“F”。

(2)字符常量:单引号内的字符,不可以显示的控制字符在前加“”组成专用转义字符。(3)字符串常量:双引号内的字符,当双引号内没有字符时是空字符串。在C语言中,字符串常量是作为字符类型数组来处理的,在存储字符串时,系统在字符串尾部加上转义字符“o”,作为该字符串的结束符。

(4)实数常量:有十进制和指数两种表示形式。指数表示的实数为“[±]数字[.数字]e[±]数字”,[]中的内容为可选项

(5)位标量:位标量的值是一个二进制数。2)变量

变量就是在程序运行过程中,其值可以被改变的数据。必须先用标识符作为变量名,并指出所用的数据类型和存储模式,这样编译系统才能为变量分配相应的存储空间。定义变量的格式:[<存储模式>]<类型定义>[存储器类型]<标识符>;类型定义和标识符是必要的。存储模式有四种,自动(auto)、外部(extern)、静态(static)和寄存器(register),默认类型为自动(auto)。

表3-3C51存储类型与MCS-51单片机存储空间的对应关系及其大小存储类型databdataidatapdataxdatacode

与存储空间的对应关系

直接寻址片内数据存储区,访问速度快(128B)

可位寻址片内数据存储区,允许位与字节混合访问(16B)

间接寻址片内数据存储区,可访问片内全部RAM地址空间(256B)

分页寻址片外数据存储区,由MOVX@Ri访问

寻址片外数据存储区(64KB),由MOVX@DPTR访问

寻址代码存储区(64KB),由MOVC@DPTR访问

长度/bit88881616

长度/byte111122

存储范围0-2550-2550-2550-2550-655350-65535

如果在变量定义时省略了存储类型标识符,则编译器会自动选择默认的存储类型。默认的存储类型进一步由SMALL、COMPACT、和LARGE存储模式指令限制。

存储模式决定了变量的默认存储类型、参数传递区和无明确存储类型说明变量的存储类型。在SMALL模式下,参数传递是在片内数据存储区中完成的。

★ 单片机实验报告的心得体会

★ 实验报告

★ 实验报告 范文

★ 实验报告格式

★ 51短信

51单片机课程设计作业 篇7

关键词:溶解氧,温度,测控系统

1. 引言

目前, 国内外市场上虽有多种型号多种档次的环境参数分析控制仪, 但普遍存在着国产仪器性能单一, 使用寿命断, 可靠性低, 标定校准操作复杂的问题, 而进口仪器虽然精度高可靠性好, 但价格过于昂贵, 功能单一, 性价比低。鉴于目前国内基于单片机的智能仪器的开发水平与国外并无多大差距, 开发集检测与控制功能于一体的多参数测控系统, 与化学传感器直接配套, 具有广阔的市场。

2. 设计思路及测控系统框图

本文研究基于MCS—51单片机的多环境参数测控系统的检测和策略主要研究内容包括:

1) 设计单片机外围接口硬件电路, 能够用此处理器来采集和处理多环境参数;

2) 实现多环境参数复合校准、补偿, 推出溶解氧、温度等环境参数的测量算法, 因各种参数不断改变无法建模, 决定采用比较成熟的自校正PID控制来实现环境参数的实时控制;

系统设计框图如图1所示:

3. 溶解氧和温度的检测

1) 溶解氧浓度作为一项重要的环境指标, 传统的碘量法因分析精度高, 重现性好, 但其操作复杂, 耗时长, 不能对水样连续测定。采用电极 (YS15739型溶解氧电极) 测量具有快速、准确和可连续测定的特点, 更易于实现自动化和计算机控制。当金电极与银电极间加0.7V左右的极化电压时, 水中溶解氧透过薄膜, 在阴极上还原, 产生稳定的扩散电流。溶氧量越大, 则测得电流I越大, 对应的输出电压越大Uo, 即溶氧电压Uo, 反应电流I和氧浓度Oxy成正比关系。检测电路图如图2所示。

在溶解氧检测过程中, 相同氧浓度在不同温度下的传感器输出值是不同的, 从饱和溶氧电压与温度测量出发, 在气压恒定的条件下, 对蒸馏水溶氧量进行不同传感器的比较实验, 得出相同温度下不同传感器的电压值也不尽相同, 但同一传感器的饱和氧电压在不同温度下成确定的比例关系, 根据这一关系对采集的溶氧电压进行温度补偿。

2) 温度的检测采用一个带带负温度系数10K电阻作为传感元件, 其变换电路如图3所示。Rt为负温度系数电阻, 温度t越高, Rt越小, 对应温度电压UG越小, 此信号作为过程变量进行线性补偿后送往CPU作PID处理, 以保持温度恒定。

负温度系数热敏电阻的线性化模型使用范围有限, 在一定的温度范围内或是小范围内, 输出基本上是线性的。但在宽温范围内, 这种非线性将带来测量上的不便, 并在某些应用中产生较大的误差。所以补偿热敏电阻的非线性特性, 也就成为测量仪器设计的重要环节, 并能够增强设计的可移植性。补偿的原理就是通过电路中参数的调节, 将指数部分消去, 从而实现电压——温度的线性化, 线性化补偿的原理图如图4所示。

4. 溶解氧和温度的控制

本系统对溶解氧含量及温度的控制分贝采取模糊控制以及带有滞后补偿的数字PID控制方法, 推理得出模糊控制规则, 对数字PID控制器试验得到满意的参数并进行了仿真。

1) 溶解氧含量的控制很难建立一个精确的数字模型对其进行控制, 而模糊控制不需要了解系统的数学模型及参数, 对于未知模型的系统具有很大的实用价值。以溶解氧含量的偏差和变化率作为作为输入变量, 以调节变频器输出频率的控制量作为输出, 三个变量各自的范围由映射关系y=12[x-0.5 (a+b) ]/ (b-a) 界定为[-6, 6]之间的连续变化量, 在论域上分别考虑三个变量对应的模糊子集, 根据模糊规则表, 总结出模糊关系, 求出的模糊控制量采用加权平均法进行模糊判决, 得出模糊控制表, 将此表存于单片机中, 经过简单的查表, 即可得到控制量的论域元素, 再乘以相应的比例因子, 就可得出精确的控制量。

2) 数字PID控制器是普遍采用的控制方法, 综合了关于过去、现在和未来三方面的信息, 为广大工程技术人员所采用。由于计算机控制是一种采样控制, 它只能根据采样时刻的偏差计算控制量, 因此积分和微分项不能直接准确计算, 只能通过数值计算的方式逼近, 在采样时刻, PID控制规律可通过数值公式计算。增量式控制算法中不需要累加, 增量只与最近几次采样的输入值有关, 容易获得较好的控制效果。在工业生产过程中, 由于能量传输的延迟, 常常存在着纯滞后现象, 对象的纯滞后性质常引起系统的振荡, 为此使用史密斯预估器来进行滞后的补偿以达到较好的控制效果。PID控制策略的参数常常通过试验来确定, 逐步凑试, 逐步凑试, 得出整定的PID参数为:P=13, Ti=360s, Td-90s, 对温度的控制打到满意的控制效果。采用MATLAB平台下的SIMULINK进行仿真, 得出PID及Smith控制定植阶跃扰动下响应曲线如图5所示:

5. 结束语

多参数测控系统的研究难点是对各测量参数进行校准以及提高测量精度, 从而增强设计的可移植性, 本文介绍了重要环境参数——溶解氧、温度的检测及补偿方法, 并采用相应的控制策略, 可以通过数据通信及人机交互界面的设计实现多参数的实时测控。

参考文献

[1]李正军.计算机测控系统设计与应用[M].山东工业大学出版社

51单片机课程设计作业 篇8

现代信息化社会高速发展,大屏幕向消费类多媒体应用渗透。数字化的多媒体内容将在信息世界中占据主流,大屏幕显示设备将代替传统的显示设备成为中心。伴着电子行业的飞速发展,越来越多的电子爱好者,对于光立方产生了很浓厚的兴趣。有绝大部分的人把光立方研究作为一种职业,光立方的技术也在不断的成熟,不仅具有了学习价值同时也具备了商业价值。

光立方最早在2009年10月1日天安门广场举行的国庆联欢晚会上面世,是一种基于LED发展基础上所衍生的产物。目前国内成功案例有很多效果也各有千秋,例如有显示图形图案的,有显示动态图案的,还有的具有音频AD效果等。一般都是主控采用STC12C5A60S2,驱动采用74HC573以及ULN2803达林顿管。光立方主要是引用了LED外发光技术,我国LED经过这几年的发展,主要在华东,华北,华南区域形成了一批具有一定规模的企业,LED在规模发展的同时,技术推陈出新,目前约20余家研究机构和企业在进行LED的研究和开发,但与国外的差距还是比较大的。主要原因是目前在投入資金、设备和人才均无法和国外相比,而且研究机构也相对的分散。但一些科研所如中国科学院物理所和长春光机与物理所、北京大学、石家庄十三所等单位也相继展开了这方面的研究,并取得了可喜的进步,不断缩减与国外的差距。

1.设计的总体要求和方案选择

本次设计制作一个8*8*8的光立方,能通过编写程序来实现对每个发光二极管的亮灭控制,从而可以显示多种多样的图案。同时在这个基础上加以创新,添加了红外遥控模式。

借鉴单片机控制LED点阵显示的原理,通过系统分析,确定该系统具有哪些功能,哪些模块,各个模块之间是怎样连接的,以及怎样组合电路是最合理的,即硬件方案设计。编写硬件电路的相应软件程序部分,利用仿真软件对程序进行测试修改。电路系统焊接完毕后,测试整个系统模块的功能,看各个功能是否能正常运行,并依据测试结果找出错误加以调整至测试成功达到毕业设计要求。

2. 光立方设计的主要内容

(1)初步整体方案的选择和论证搜索和光立方关的相关资料,参照目前通用的设计思想和设计方法拟定2套设计方案进行比较:第一套是以STC12C5A60S2为核心控制器件,以74HC595为驱动芯片,LED选用512。第二是以C51为核心控制器件,以74HC573为驱动芯片,LED同样选用512。基于对C51的理解和节省成本的前提下,最终选定了第二套方案。

(2)方案的实现。根据第二套设计方案通过protel99se设计相应的原理图。同时进行512LED的灯架焊接和最小系统的搭建。

(3)软件的编写。根据硬件特点和设计要求,再通过对“邵士媛,徐维祥.C语言程序设计”和“郭天祥.新概念51单片机C语言教程”的查阅.软件选用C语言编程。程序按功能分静态,红外遥控等多个相对独立的模块,然后按照所划分的模块一一编程,最后整合起来。

(4)验证与测试。测试分为硬件测试,软件测试和系统联合测试。硬件测试:测试LED塔架的焊接,有无漏焊,虚焊,阳极阴极有无焊错,74HC573芯片的测试等。软件测试:检验程序的对错。统联合测试:检测作品有无达到设计的要求。

(5)总结。设计作品完成后对设计过程中所遇到的困难,经验教训进行总结分析。

二、系统总体方案设计

1.系统总体硬件选择

3D显示屏核心控制器采用51单片机,单片机是集成了CPU、ROM、RAM和I/0口的微型计算机具有很强的接口性能,非常适合于工业控制,且品种齐全,型号多样CPU从8、16、32到64位,多采用RISC技术,片上I/O口丰富集成有A/D,PWM,显示驱动,函数发生器,键盘控制等。除此之外还具有低电压和低功耗的特点。电路电源直接采用5V电源、LED发光二极管选取单色蓝光LED作为本次设计显示色彩、I/O口扩展芯片选取带有有数据锁存功能的74HC573芯片。

二、系统总体软件方案的选择

编辑语言采用简洁灵活,兼容性高,编译简单,执行效率高,对于循环使用方便的C语言

三、光立方的制作

1. 3DLED光立方工作原理

利用单片机控制LED点阵显示的原理和控制技术,来控制光立方显示。通过编写程序控制不同的LED显示,显示所要显示的内容。

2.3DLED光立方的搭建

(1)由点到线。准备一块洞洞板,一些排针做一个简易的磨具所示,将折弯好的LED分别插入一排插入以后,其阳极正好可以搭接在一起,进行焊接,实现共阳极的操做。

(2)由线到面。将焊好的一条一条LED放在磨具上,实现共阴极的焊接。

(3)由面到体。将垂直各面依次插到洞洞板上面,将露出的阳极引脚横向折90°,使其可以前后同一高度,最后稍微调整一下各个垂直面之间的间距,再通过漆包线实现各层的阴极相连。

四、系统硬件的设计

单片机最小系统,包括时钟电路和复位电路。红外遥控模块由红外发射和红外接收两部分组成,发射电路部分主要实现红外信号的编码产生以及发射,接收电路部分主要实现红外信号的接收、解码等。液晶显示屏采用串口HMI,直接调用模块。74HC573驱动模块和74LS573的管脚一样。器件的输入是和标准CMOS输出兼容的;加上拉电阻,它们能和LS/ALSSTTL输出兼容。

五、系统软件的设计

系统软件采用 C语言编写,按照模块化的思路设计程序。首先分析程序所要实现的功能,程序要实现静态显示,动态显示等。通过按键控制程序选择不同的显示程序进行显示。主程序的工作流程图如图 1所示:

图1主程序工作流程图

六、系统检测及结果分析

nlc202309090534

硬件测试对照电路图和实际线路检查是否正确,包括错接、少接、多接等;用万用表检查焊接和接插是否良好:元器件之间是否存在短、二极管正负极有无弄反、电源地有无接错。

将电源接入电路,用万用表电压档检测电源电压,观察有无异常现象。如冒烟、异常气味、元器件发烫等。

软件测试在程序的编写中用keil编写,keil软件可以生成.HEX文件我们用到的下载软件是PROGISP这个软件,这个软件可以识别.HEX文件,只有.HEX文件可以寫入单片机。在程序的编写过程中全是采用C语言编程。

联合测试将所有焊接好的模块用杜邦线连接起来,载入程序观察是否可以达到预计的效果。

七、 结论

本次设计预期要求:LED显示屏各点亮度均匀,可显示图形或文字,而且显示图形或文字显示稳定、清晰无干扰。

通过对单片机最小系统模块、红外遥控模块、液晶显示屏模块(HMI),74HC573驱动模块的添加,硬件件和软件的运行还算比较稳定,所呈现的动画与程序中预期的效果吻合,符合设计的要求

然而本次设计还存在许多不足的地方和可以改进的部分例如:还可以在本设计的基础上增加音频等功能,还可以在串口HIM的页面设计上做的更好一点做到控制光立方每一个led的的亮灭,当然,要增加这些功能51单片机的IO口是不足的,所以要用到其它开发板如89S52。

参考文献:

[1]周灵彬,任开杰,张靖武.基于Proteus的电路与PCB设计.北京:电子工业出版社,2010.

[2]邵士媛,徐维祥.C语言程序设计.第2版.化学工业出版社,2006.

[3]郭天祥.新概念51单片机C语言教程.电子工业出版社.

[4]陈强.电子产品设计与制作.北京:电子工业出版社,2010.

[5]关积珍.LED显示屏发展状况及趋势[J].世界电子元器件.

[6]郑刚,李雨成。LED大屏幕显示系统[J].北方工业大学学报,2001.

[7]李元生.LED光柱专用驱动器[J].家庭电子,2005.

[8]文哲雄,用单片机控制LED显示屏[D].佛山:佛山科学技术学院,1995.

[9]肖红斌.跟我学用单片机[M].北京航空航天大学出版社,2002.

[10]张洪润,刘秀英,张亚凡.单片机应用设计200例(下).北京:北京航空航天大学出版社,2006.

作者简介: 吴特威(1995-8-31),男,汉族,籍贯浙江乐清,信息技术系学生,专科,研究方向:电子信息技术。

上一篇:九年级全一册英语听力下一篇:外国语学院学生会2011年度主要工作成绩