自制质量检验计数报警器.docx
- 文档编号:5266647
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:13
- 大小:175.08KB
自制质量检验计数报警器.docx
《自制质量检验计数报警器.docx》由会员分享,可在线阅读,更多相关《自制质量检验计数报警器.docx(13页珍藏版)》请在冰豆网上搜索。
自制质量检验计数报警器
常熟理工学院
单片机项目
设计说明书
题目:
自制质量检验计数报警器
班级:
ZB02131
姓名:
鲍峰
学号:
ZB0213101
老师:
卢振力
2013年12月8日
目录
前言
*背景介绍
1.课题介绍
1.课程设计
2.课题名称
3.课程设计要求
2.系统设计
1.系统总体方案设计
2.系统硬件设计
3.系统软件设计(程序流程图)
3.系统仿真
1.工具软件简介
2.系统仿真模型的建立
3.keil和proteus的联合调试
4.系统仿真结果
4.附加:
c语言程序
5.参考文献
设计背景
摘要:
近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。
在我们的生活生产中,当我们在检查计数时怎么样做到心中有数呢?
所以想制作一个小的设计来实现这一功能,通过所学知识及查阅相关资料向同学老师学习等终于想到并制作了这一程序并通过proteus仿真实现了。
本系统采用MSC-51系列单片机AT89C51和可编程并行I/O接口芯片自检计数报警器控制器,实现了能根据实际需要手动通过8051芯片的P3口设置开关的功能实现数码管计数LED等的循环闪亮及报警器的发声。
本系统实用性强、操作简单、扩展功能强。
关键词:
单片机流水灯报警器检测产品计数器
一课题介绍
1.课题名称
自制质量检验计数报警器
2.课题要求
(1)上电时,数码管显示为00。
(2)利用单片机来制作一个手动计数器,单片机的管脚上接一个轻触开关,作为手动计数按钮,用单片机的I/O口接数码管,作为计数器,进行加计数显示。
(3)计数器计数到99后,再按计数按钮,则数码管从00重新开始计数。
(4)在P1口接8个数码管,计数时流水灯亮,每次逢十报警且流水灯全亮。
3.课程设计要求
(1)根据课题要求,确定设计方案;
(2)在Proteus软件中,绘制系统原理图;
(3)在keil中编写单片机程序,结合原理图进行系统调试;
(4)记录系统运行结果,书写课程设计报告。
二系统设计
1.系统总体方案设计
单片机
数码管一
数码管二
报警器
8位LED组成的流水灯
开关
2.系统硬件设计
(1)AT89C51单片机最小系统设计
时钟电路+复位电路+电源=单片机最小系统
(2)数码管的设计(3)开关的设计(4)报警器(5)流水灯设计
3.系统软件设计
(1)主程序流程图:
利用单片机来制作一个手动计数器,在单片机的管脚上接一个轻触开关,单片机的P0口、P2口作为输出端,来控制数码管的显示,实现00-99计数功能,子程序实现将高低电位转换为数码管的十进制数字,初始值为00,通过手动开关发脉冲信号实现计数,即按键识别成功就自动加一,在计数器上显示加后的数值,当一直加到99时,在手动给脉冲时,回到初始状态00,从而实现00-99加计数。
(2)延迟10ms子程序流程图
(3)流水灯设计流程图
三、系统仿真
1.工具软件简介
(1)Proteus
Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
(2)Keil
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
2.系统仿真模型的建立
100以内的手动计数器硬件系统主要由AT89C51单片机,数码管,电容,电源等元件组成,利用单片机的P0口、P1口作为输出端,来控制数码管的显示,通过单片机输入程序,然后利用P3.7口作为输入端,通过电动控制实现开关量的控制和技术,然后再通过数码显示器显示出来,通过调试仿真从而00-99计数。
仿真模型建立过程简介:
(1)打开Proteus软件
(2)仿真原件的添加
1):
at89c51的添加
2)电源以及接地的添加过程
3)原件添加完成之后便可以开始建立仿真图
4)连线
将鼠标放到连接点位置鼠标指针变为笔的形状后单击,然后移动到下一个接点,单击鼠标便可完成接线
3.Keil和Proteus的联合调试
(1)Keil与Proteus连接,连接开始必须在roteus安装目录下VDM51.dll文件复制到Keil安装目录的\C51\BIN目录中
(2)修改keil安装目录下Tools.ini文件
(3)在合适的位置新建一个文件夹来存放Keil工程文件
运行Keil选择Project→NewProject→找到刚新建的文件→填写工程的名称→保存→是
点击确认→是然后点击按键
写入程序点击保存,
打开在proteus里DEBUG-->useremotedebugmonitor
打开KeiluVision3选择
进行联合调试
根据现象修改程序或者原理图。
4.系统仿真结果
四.附加c语言程序:
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharcodeDSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
ucharCount=0,c;inti;
sbitP32=P3^2;
sbitP34=P3^4;
sbitBUZZ=P3^0;
voiddely500()
{
unsignedchari;
for(i=250;i>0;i--)
{
_nop_();
}
}
voiddelay(unsignedintms)
{
unsignedinti;
unsignedintj;
for(i=0;i {for(j=0;j<1827;j++);} } voidmain() {BUZZ=0; P0=0x00; P2=0x00; TMOD=0x06;//计数器T0方式2 TH0=TL0=256-1;//计数值为1 ET0=1;TR0=1; EX0=1;IT0=1; EA=1;//允许CPU中断 IP=0x02;//ET0为高级中断 while (1) {P0=DSY_CODE[Count/10]; P2=DSY_CODE[Count%10]; if(Count%10==0) {P1=0; for(c=200;c>0;c--) { BUZZ=~BUZZ; dely500(); } for(c=200;c>0;c--) { BUZZ=~BUZZ; dely500(); dely500();}} if(P34==0) {P1=0xfe; for(i=0;i<8;i++) {P1=_crol_(P1,1); delay(10);} } if(P32==0) {P1=0xfe; for(i=0;i<8;i++) {P1=_cror_(P1,1); delay(10);} }}} //T0计数器中断函数 voidET0_Int()interrupt1 {Count=(Count+1)%100;} //INT0中断函数 voidEX0_Int()interrupt0 {Count=0;} 参考文献 [1]林华兵编著.MCS-51单片机原理及应用.武汉: 华中科技大学出版社,2003.6 [2]南建辉、熊鸣、王军茹编著.MCS-51单片机原理及应用实例.清华大学出版社,2004.3 [3]白驹珩、雷晓平编著.单片计算机及其应用.成都: 电子科技大学出版社,1997.12 [4]徐爱钧彭秀华编著.单片机高级C51应用程序设计.电子工业出版社,1998.6 [5]网络资源: 十天学会单片机(郭天祥) 单片机资源网
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自制 质量检验 计数 报警器