资源描述
毕 业 论 文(设计) 论文(设计)题目: 光电计数器的设计 系 别: 专 业: 学 号: 姓 名: 指导教师: 时 间: 毕 业 论 文(设 计) 开 题 报 告系别: 专业:学 号姓 名论文(设计)题目光电计数器的设计命题来源教师命题 学生自主命题 教师课题选题意义(不少于300字):目前,市场上各种各样的计数器技术层出不穷,如温度计数器,触摸计数器等,其电路复杂 ,元件昂贵,体积大,且外观不好看,计数效果不好,不能在各种不同的环境中工作。而采用光电传感器制作的光电式电子计数器能适应各种不同的工作环境,且具有易于实现自动化控制、计数精确、非接触式、反应快、直观性比较好、具有一定的抗干扰能力等优点,因而广泛应用于工业生产、实时监测、自动化控制等领域。而本次设计的光电计数器主要用作工厂流水线上的产品计数,它对提高企业生产管理水平有着重要意义。在光电计数器的设计过程中,所涉及到的知识有模拟电子技术知识、数字电子技术知识、光电传感技术知识、单片机编程知识以及Protel 99SE绘图知识等,这些课程都是电子类专业的知识,在专业课学习过程中都有初步的学习。选择这毕业设计题目是对我大学四年所学知识的综合运用和检验,也使我对电路设计流程有了更进一步的了解。研究综述(前人的研究现状及进展情况,不少于600字):电子计数器是一种基础测量仪器,到目前为止已经有30多年的发展史。早期,设计师们追求的目标主要是扩展测量范围,提高测量精度、稳定度等,目前这些基本技术已日益完善,成熟。应用现代技术可以轻松地将电子计数器的测频上限扩展到微波频段。随着科学技术的发展,用户对电子计数器也提出了新的要求。对于低档产品要求使用方便,量程(足够)宽,可靠性高,价格低。对于中高档产品,则要求有高分辨率,高精度,高稳定度,高测量速率;除通常计数器所具有的功能外,还要有数据处理功能,统计分析功能,时域分析功能等等,或者包含电压测量等其它功能。这些要求有的已经实现,有的部分实现了。21世纪以来,随着生产自动化、设备数字化和机电一体化的发展,很多企业在生产过程中,大量使用各种智能化的仪器,以提高生产管理水平,因此具有自动化和智能化的计数器将在现代化工业中占主导地位。而采用光电传感器制作的光电式电子计数器具有易于实现自动化控制、计数精确、直观性比较好、具有一定的抗干扰能力等优点,加上单片微型计算机技术以其体积小、功能强、可靠性高、性能价格比高等特点,成为实现工业生产技术进步和开发机电一体化和智能化测控产品的重要手段,因此,基于单片机技术开发的光电计数设备和产品广泛应用到工业生产、实时监测、自动化控制等领域。研究的目标和主要内容(不少于400字)研究目标:1. 实现09999范围计数,能在超出最大值后报警。2. 要求发射级与接收级有1米以上的间距。3. 能在设定值报警,能在报警后延时3秒钟自动关闭报警并自动重新计数;也可手动清除报警。4. 用单片机编程实现对计数系统及报警系统的智能控制。5. 有抗干扰技术,防止背景光或物件抖动时产生误差。6. 画出完整的电路原理图(包含电源部分)和PCB图。研究内容:1. 学习传感器的基本理论,了解传感器的结构与感测原理。2. 学习光电控制系统技术及其应用,掌握光电效应的基本理论知识。3. 学习单片机基础知识,了解单片机芯片引脚功能,掌握C语言编写程序的方法。4. 究怎样提高电路的抗干扰能力。5. 掌握用Protel绘制PCB图的方法。6. 掌握电路设计的基本流程。拟采用的研究方法1. 学习MCS51单片机显示器接口技术,掌握LED显示原理;2. 查找资料,了解红外线、激光的特性,选取更合适该设计的光源;3. 学习MCS51单片机指令系统及MCS51单片机键盘接口和键功能的实现;4. 学习MCS51单片机基础知识,了解芯片引脚功能,掌握C语言编写单片机程序的方法;5. 学习光电传感器的感测原理,通过查找资料了解影响光发射接收的主要因素并找出好的解决方案;6. 学习Protel99SE原理图与PCB设计教程,掌握Protel绘图方法。研究工作的进度安排12010年1月1日-2010年1月10日:查找相关资料,准备开题报告;22010年1月11日-2010年1月20日:确定毕业设计整体方案;32010年1月21日-2010年2月28日:查找光电传感器及单片机相关资料,确定毕业设计电路原理图; 42010年3月1日-2010年3月28日:基本完成硬件制作部分;52010年3月29日-2010年4月30日:完成硬件制作以及论文初稿;62010年5月1日-2010年5月31日:完成毕业论文,准备好答辩材料。参考文献目录(作者、书名或论文题目、出版社或刊号、出版年月日或出版期号)1 华成英,童诗白.模拟电子技术基础M.高等教育出版社,2006.12 康华光,邹寿彬,秦臻.电子技术基础数字部分M.高等教育出版社,2005.73 李广弟,朱月秀,王秀山.单片机基础M.北京航空航天大学出版社,2001.74 韩兵.光电控制系统技术与应用M.电子工业出版社,2009.25 吴金波.数字式光电计数器设计J.中小企业管理与科技,2008(34)6 高明华.简易数字频率计的设计J.大众科技,2006(2)指导教师意见 签名: 年 月 日教研室主任意见 签名: 年 月 日目 录摘要1关键词1引言11 设计目标及基本要求12 系统方案论证23 光电计数器的系统设计23.1 系统硬件设计23.1.1 单元电路分析33.1.2 主要芯片元器件引脚图及功能介绍73.2 系统软件设计94 总结与展望17参考文献17Abstract18Key words18致谢18附录A总程序调试19图1 电源PCB图25图2 计数系统PCB图26表1 元件清单26河池学院2010届本科毕业设计光电计数器的设计电子信息工程专业 李艳秋 指导教师:何奇文摘要介绍一种光电感应计数系统,它采用光源与计数器分立设计的方式,主要由激光光源、脉冲形成电路和计数系统三部分构成。其中激光光源采用半导体点光源激光发射器,光敏电阻实现光电转换,经比较器比较形成脉冲,计数系统主要采用单片机最小系统实现对外部信号的采集、报警值设定、计数、显示及报警的功能。该光电计数器可实现自动化控制,计数精确、直观性好,有一定的抗干扰能力,且电路简单,可靠。关键词AT89S52单片机;激光;光电转换;计数器引言 电子计数器是一种基础测量仪器,到目前为止已经有30多年的发展史。早期,设计师们追求的目标主要是扩展测量范围,提高测量精度、稳定度等,目前这些基本技术已日益完善,成熟。随着生产自动化、设备数字化和机电一体化的发展,很多企业在生产过程中,大量使用各种智能化的仪器,以提高生产管理水平,因此具有自动化和智能化的计数器将在现代化工业中占主导地位。本设计制作的是一个最常用的光电式电子计数器,它广泛应用于工业生产、实时监测、自动化控制等领域。1 设计目标及基本要求该设计制作一种最常用的光电计数器,它以AT89S52单片机为控制核心,通过光的发射和接收进行计数,主要实现计数、数码显示、报警等功能,通常用作流水线作业工件计数。其主要技术指标及要求如下:(1)实现09999范围计数,能在超出最大值后报警;(2)要求发射级与接收级之间有1米以上的间距;(3)能在设定值报警,能在报警后延时3秒钟自动关闭报警并自动重新计数,也可手动清除报警;(4)有抗干扰技术,防止背景光或物件抖动时产生误差;光电一体化(5)画出完整的电路原理图(包含电源部分)和PCB板图。2 系统方案论证通过查找各种资料,经过探讨发现此电路最关键的是如何选择光源,因此下面主要从光源的选择方面对系统进行方案论证。方案1:采用红外发射管和接收管设计光电计数器,红外发光二极发射的红外线距离短,不适合体积大的固件计数,其信号采样电路灵敏度稍差,且其稳定性不高,抗干扰能力弱。因此不采用此方案。方案2:采用半导体点光源激光发射器设计光电计数器,由激光发出的光线在透镜汇聚成激光束后,可以传输到很远的距离,其精度高,方向性好,能量集中,稳定性高,抗干扰能力强,可以对大体积固件计数,并且电路简单可靠,可以提供理想的计数值。激光弥补了红外光源的不足,能更好满足该设计的要求,因此选择激光发射器完成光电计数器的设计。3 光电计数器的系统设计3.1 系统硬件设计系统的硬件电路主要由电源、激光光源、脉冲形成电路、计数系统(含单片机最小系统、数码管显示电路、报警电路、键盘控制电路)四部分组成。电源电路为各部分电路提供+9V或+5V电压。激光光源发射光信号,光敏电阻作为光电检测元件检测光信号的变化(光可通过或光被阻挡),并将光信号转换为电信号,经比较器进行比较形成计数脉冲,然后送入单片机外部中断“0”口,由单片机完成对外来脉冲进行计数。计数系统部分以单片机最小系统为控制核心,通过数码显示电路显示计数值,键盘控制电路设定报警上限值,报警电路完成报警功能。系统整体框图如图1所示:单片机最小系统脉冲形成电路显示电路激光光源报警电路键盘控制电路电源图1 系统整体框图3.1.1 单元电路分析 (1)电源电路 220V交流电经过变压器降压成12V,经过桥式整流器整流,电容C3、C4滤波,然后分别经过三端稳压集成电路LM7809、LM7805稳压,再分别经电容C1、C2和电容C5、C6滤波,分别形成+9V、+5V直流稳压电源。二极管D2、D6分别对稳压芯片LM7809和LM7805起保护作用。+9V直流稳压电源作为发射部分电源,+5V直流稳压电源作为脉冲形成电路部分和计数系统的电源。电源电路原理图如图2所示:图2 电源电路(2)激光光源 该系统设计的计数光源采用半导体点光源激光发射器,它是由发光管芯,聚光透镜、铜可调套铜三部分组装而成的。激光本质上是一种频率极纯、极高的电磁流,其方向性好、能量集中、稳定性高且抗干扰能力强。由激光发出的光线在透镜汇聚成激光束后,可以传输到很远的距离,且精度高。激光发射器接一限流电阻后接入+9V电源即可使用。(3)脉冲形成电路 在脉冲形成电路部分主要用到光敏电阻器和LM393比较器。比较器部分的工作原理:电阻R1、R3是分压电阻,主要是为运放的提供2.5V的基准比较电压。R2为上拉电阻,由于LM393本身没输出高电平的能力,接上拉电阻R2是为了让A端能输出高电平。当输入信号电压高于2.5V时比较器输出高电平,反之,输出低电平。光敏电阻在无光照射时成高阻态,因此输入到比较器LM393信号脚的电压低于2.5V,比较器输出低电平;当有光照射时,光敏电阻阻值迅速减小,则LM393信号脚电平高于2.5V,比较器输出高电平。本电路是利用光可通过(没有计数物)及光被阻挡(有计数物)来产生高低电平,形成计数脉冲。脉冲形成电路如图3所示:图3 脉冲形成电路(4)计数系统 该系统由单片机最小系统、数码管显示电路、键盘控制电路、报警电路构成。它采用AT89S52单片机作为计数系统的控制核心,并带有USB-ISP下载端口便于随时下载调试。计数脉冲从单片机外部中断“0”口(P3.2口)引入,通过P0口(数码管的位选)、P2口(数码管的段选)输出计数结果,并由数码管显示(显示范围00009999)。键盘控制信号从单片机P1.1P1.4口输入实现对计数上限值设定功能。当接收到脉冲信号时,系统都会将计数值与预设上限值进行比较,若没有超出计数上限值则继续计数,若超出计数上限值,则P1.0(报警口)跳变为低电平,三极管Q1导通驱动发光二极管D1发光,蜂鸣器报警,并且系统自动复位并重新计数;也可通过单片机的复位电路手动清除除报警,系统复位并重新计数。下面分别对各组成部分的工作原理及相应电路进行概述。单片机最小系统 单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。单片机最小系统如图4所示:图4 单片机最小系统显示电路 显示电路使用一个四位一体共阴数码管成4*8动态扫描电路,由于单片机的驱动能力不够,使用上拉电阻接在段选端作为驱动,提供电流。P00-P03对应数码管的位选,P20-P27对应数码管段选。数码管显示电路如图5所示:图5 数码管显示电路报警电路 报警电路由一个PNP型三极管、一个蜂鸣器及1K、10K的电阻和LED指示灯组成。当计数值超出预设的溢出值时,产生的溢出信号经三极管PNP放大,驱动发光二极管D1发光,蜂鸣器发出报警信号。其电路原理图如图6所示:图6 报警电路键盘控制电路 键盘控制电路由四个独立的按键和四个限流电阻组成。其具体实现是:按键S1接入单片机的P1.1口,用于设定报警值;按键S2接入单片机的P1.2口,用于确定设定值;按键S3接入单片机P1.3口,用于增加设定值;按键S4接入单片机的P1.4口,用于减小设定值。溢出值的设定由这四个按键共同完成。其电路原理图如图7所示:图7 键盘控制电路3.1.2 主要芯片元器件引脚图及功能介绍 (1)运算放大器LM393的引脚图及功能介绍。其引脚图如图8所示:图8 LM393引脚图功能介绍:LM393为双电压比较器,LM393系列由两个偏移电压指标低达2.0的独立精密电压比较器构成。可以双电源供电,也可以单电源供电,且电压适用范围广;而且无论电源电压大小,电源消耗的电流都很低。它还有一个特性是即便是单电源供电,比较器的共模输入电压范围接近地电平。LM393系列可以直接与TTL及CMOS电路逻辑电路接口。无论是正电源还是负电源操作,当低电耗比标准比较器的优势明显时,LM393系列便与MOS逻辑电路直接接口。(2)AT89S52单片机引脚图及功能介绍。其引脚图如图9所示:图9 AT89S52引脚图功能介绍: AT89S52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。(3)四位一体共阴数码管引脚图及功能介绍。其引脚图如图10所示:图10 四位一体共阴数码管引脚图功能介绍:每个LED显示器由7个发光二极管组成,因此也称之为七段(A、B、C、D、E、F、G)LED显示器,此外,显示器中还有一个圆点型发光二极管(在图中以DP表示),用于显示小数点。通过七个发光二极管亮暗的不同组合,可以显示多种数字、字母以及其它符号。上图中A、B、C、D、E、F、DP为段引脚,6、8、9、12分别表示四个数码管的位。3.2 系统软件设计软件需要完成的工作有:检测脉冲,对脉冲计数,显示计数结果,预设溢出初值,比较脉冲数与预设初值,产生溢出信号。综上所述本系统的软件设计框图如图11所示:是否产生溢出信号,计数值清0开始初始化单片机预设溢出值是否有脉冲信号计数值+1计数值不变是否超出溢值?出值?显示否是图11 软件设计框图系统主程序如下所示:main() flag=0; beer=1; P0=0Xff; /初始化P0口 P2=0Xff; Int_Init(); Start_Count(); while(1) key_init(); if(flag=1) if(count/2)alarm)/大于设定值就报警 count=0;/重新计数beer=0;/报警delay(1200); /报警时间beer=1;/关报警 display(qian,bai,shi,ge); /调用显示函数 3.2.1 单元程序的设计 (1)中断程序 该设计采用外部中断0完成计数功能,外部中断请求为脉冲触发方式。在这种方式下,CPU在两个相邻机器周期对中断请求引入端(P3.2口)进行的采样中,如前一次为高电平,后一次为低电平,即为有效中断请求,计数值(count)加1。该设计使用光敏电阻作为检测元件,考虑到光敏电阻受到脉冲光照射时,光电流要经过一段时间才能达到稳定值,光照突然消失时,光电流也不立刻为零,即产生的计数脉冲由高电平跳变到底电平有一定的延迟,而单片机是在两个相邻机器对外部输入信号进行采样的,因此在程序中调用延时程序,以提高信号采样的精确度。void Int_Init(void) IT0=1; /下降沿触发 EA=1; EX0=0;void Start_Count() count=0; EX0=1; /开外部中断,用于计数,一个下降沿自增1void Stop_Count()EX0=0; void int0(void) interrupt 0/INT0 unsigned char val; EX0=0;delay_ms(20);val=sao;if(val=0) if(flag=1)count+;delay_ms(50);EX0=1;(2)按键设定程序 该设计采用四个按键作为键盘来对溢出值进行设定,程序设计为只有在对溢出值设定后计数器才可以进行计数工作。按键1的作用是确定要进行溢出值设定的操作,按键2的作用是对设定的溢出值进行确定,按键3的作用是对设定值进行加1的操作,而按键4的作用是对设定值进行减1的操作。具体程序如下所示:/*按键设定*/void key_init() if(key1=0)delay(20);if(key1=0)flag=0;alarm=0;qian=alarm%10000/1000;/显示千位bai=alarm%1000/100;/显示百位shi=alarm%100/10;/显示十位ge=alarm%10;/显示个位display(qian,bai,shi,ge); /调用显示函数 if(flag=0) if(key2=0) flag=1;if(key3=0)delay(20);if(key3=0)alarm+;if(alarm=9999) alarm=0;qian=alarm%10000/1000;/显示千位bai=alarm%1000/100;/显示百位shi=alarm%100/10;/显示十位ge=alarm%10;/显示个位display(qian,bai,shi,ge); /调用显示函数 if(key4=0)delay(20);if(key4=0)alarm-;if(alarm=0) alarm=9999;qian=alarm%10000/1000;/显示千位bai=alarm%1000/100;/显示百位shi=alarm%100/10;/显示十位ge=alarm%10;/显示个位display(qian,bai,shi,ge); /调用显示函数 (3)延时程序 延时程序是一个典型的循环程序,它是通过执行一个具有固定延迟时间的循环来实现延时的。在该设计中延时程序的作用主要有在单片机进行信号采样时,调用延时程序能使计数更加精确;在按键按下时,调用延时子程序起到一个消抖的作用;在数码管进行动态扫描时调用延时程序起到使显示图像稳定无闪烁的作用;还有就是调用该程序对报警时间进行设定。具体程序如下所示:void delay(unsigned int n) / 延时子程序 unsigned int a,b,c; / 定义各变量 for(c=n;c0;c-) / 第一层嵌套循环 for(b=10;b0;b-) / 第二层嵌套循环 for(a=30;a0;a-); / 第三层嵌套循环 void delay_ms(unsigned int ms)unsigned int i;while(ms-)for( i=0;ialarm)/大于设定值就报警 count=0;/重新计数beer=0;/报警delay(1200); /报警时间beer=1;/关报警 4 总结与展望本次毕业设计制作的光电计数器电路简单、可靠,计数精确,有一定的抗干扰能力且弥补了以往红外计数器与光电对射器件计数的不足,可实现对较大固件的计数,基本上达到了设计的基本要求。因为时间不足和精力不够的原因,光电计数器的设计还不够完善,在未来时间充裕、技术更成熟的情况下,设计可以更加完善;如可使电路线路排布及焊接工艺更加完美,电路稳定性更高,电路抗干扰能力更强,计数灵敏度、精度更高。参考文献1 陈君.浅析单片机的简易数字频率计J.硅谷,2008(3)2 迟宗涛,楚峻丰,张丽莹光电计数系统的研制J计算机应用与软件,2005(05)3 高明华简易数字频率计的设计J大众科技,2006(02)4 韩兵光电控制系统技术与应用M电子工业出版社,200925 华成英,童诗白模拟电子技术基础M高等教育出版社,200616 康华光,邹寿彬,秦臻.电子技术基础数字部分M高等教育出版社,200577 吴金波数字式光电计数器设计J中小企业管理与科技,2008(34)The design of photoelectric counter Major:Electronic and information engineering Liyanqiu Tutor:Heqiwen Abstract A photoelectric sensor counting system is introduced in the thesis,which designed in the way that separates the light source and the counter ,and the system mainly constitutes of Laser source, pulse forming circuit and counting system. In this system, Laser source uses semiconductor point source Laser transmitter to emission light, and photosensitive resistor changes light into electricity as well as through comparator,of that forming pulse,and also counting system which based on SCM Minimum System, makes a true of gaining external signal , seting alarm value, counting, displaying and alarming. The photoelectric counter can realize automation control ,count precisily , intuitive,and have a certain anti-interference ability .Besides the design of the circuit is simple, reliable, and it can draw a more accurate counting results. Key words SCM Laser Photoelectric conversion Counter致谢论文是在导师何奇文老师的悉心指导下完成的。导师渊博的专业知识,严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,严以律己、宽以待人的崇高风范,朴实无华、平易近人的人格魅力对我影响深远。不仅使我掌握了基本的研究方法,还使我明白了许多待人接物与为人处世的道理。本论文从选题到完成,每一步都是在导师的指导下完成的,倾注了导师大量的心血。在此,谨向何老师表示崇高的敬意和衷心的感谢!本次毕业设计的顺利完成还得到了同学和朋友们的帮助,谢谢同学、朋友们对我的鼓励、支持和帮助。同时我还要感谢我的母校和教导我的老师们四年来对我的培育,我得以顺利完成大学本科四年的学业离不开老师们的谆谆教导,同时老师们丰厚的知识积累和敬业精神,也给予了我很多的教益。附录A总程序调试/*/* 项目名称:光电计数器的设计 */* 制作者:李艳秋 */* 制作时间:2010年4月2日 */* 硬件连接:T0计数器,由P34(/T0)口输入 P1.0-报警口P1.1-按键1P1.2-按键2P1.3-按键3P1.4-按键4P3.2-信号输入口 */*/#include #define uchar unsigned char/宏定义#define uint unsigned int/宏定义 sbit beer=P10;/报警口sbit key1=P11;/按键1sbit key2=P12;/按键2sbit key3=P13;/按键3sbit key4=P14;/按键4sbit sao=P32;/信号输入口uint aa,bb,flag,qian,bai,shi,ge,qian,alarm,count;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;void display(uint qian,uint bai,uint shi,uint ge);void key_init(); void Int_Init(void);void Start_Count();void Stop_Count(); /* -延时子程序- */ void delay(unsigned int n) / 延时子程序 unsigned int a,b,c; / 定义各变量 for(c=n;c0;c-) / 第一层嵌套循环 for(b=10;b0;b-) / 第二层嵌套循环 for(a=30;a0;a-); / 第三层嵌套循环 void delay_ms(unsigned int ms)unsigned int i;while(ms-)for( i=0;i123;i+) ;main() flag=0; beer=1; P0=0Xff; /初始化P0口 P2=0Xff; Int_Init(); Start_Count(); while(1) key_init(); if(flag=1) if(count/2)alarm)/大于设定值就报警 count=0;/重新计数beer=0;/报警delay(1200); /报警时间beer=1;/关报警 display(qian,bai,shi,ge); /调用显示函数 /* -发生子程序- */*按键设定*/void key_init() if(key1=0)delay(20);if(key1=0)flag=0;alarm=0;qian=alarm%10000/1000;/显示千位bai=alarm%1000/100;/显示百位shi=alarm%100/10;/显示十位ge=alarm%10;/显示个位display(qian,bai,shi,ge); /调用显示函数 if(flag=0) if(key2=0) flag=1;if(key3=0)delay(20);if(key3=0)alarm+;if(alarm=9999) alarm=0;qian=alarm%10000/1000;/显示千位bai=alarm%1000/100;/显示百位shi=alarm%100/10;/显示十位ge=alarm%10;/显示个位display(qian,bai,shi,ge); /调用显示函数 if(key4=0)delay(20);if(key4=0)alarm-;if(alarm=0) alarm=9999;qian=alarm%10000/1000;/显示千位bai=alarm%1000/100;/显示百位shi=alarm%100/10;/显示十位ge=alarm%10;/显示个位display(qian,bai,shi,ge); /调用显示函数 /*显示子函数*/void display(uint qian,uint bai,uint shi,uint ge)P0=0xf7;/P0口是位选 P2=tableqian;/显示千位delay(3);P0=0xfb;/P0口是位选 P2=tablebai;/显示百位delay(3);P0=0xfd; /P0口是位选 P2=tableshi;/显示十位delay(3);P0=0xfe;/P0口是位选P2=tablege;/显示个位delay(3);void Int_Init(void) IT0=1; /下降沿触发 EA=1; EX0=0;void Start_Count() count=0; EX0=1; /开外部中断,用于计数,一个下降沿自增1void Stop_Count()EX0=0; void int0(void) interrupt 0/INT0 unsigned char val; EX0=0;delay_ms(20);val=sao;if(val=0) if(flag=1)count+;delay_ms(50);EX0=1;图1 电源PCB图图2 计数系统PCB图表1 元件清单元件名元件型号数量(1)单片机AT89S521激光发射器1四位共阴数码管D420361SR1运算放大器LM3931晶振12MHz1电解电容10UF1电解电容2200UF/50V1瓷片电容30P2瓷片电容1043排阻2K2电阻10K5电阻1K1电阻47010三极管S85501蜂鸣器1LED4按键5二极管40074二极管41482稳压芯片LM78051稳压芯片LM78091光敏电阻6KB JPG1
展开阅读全文