单片机控制电影院人数显示
学 院: 机械工程
姓 名: 杨
学 号: S2012007002
指导教师: 魏教授
一、题目要求 某电影院可容纳99人,分别有一个入口和一个出口。设计一个单片机控制装置,要求时刻显示院内的人数,超过90人时报警提示,可以手动操作清除显示、可以手动改变报警阀值在70——90之间变化。 设计对应的单片机系统、供电系统、进出人的计数传感装置,报警的形式。现实人数的显示方式。 二、使用方法 1、通电后显示“00” 2、设置报警阈值(70—90):按第一个按钮是加,按第二个按钮是减 3、两对红外发光二极管与光敏二极管,一个进人,即挡上红外二极管时数码管显示加一;个出人,即挡上红外发光二极管时数码管显示减一。而当计数值大于等于设定的报警阈值时,蜂鸣器开始响。 4、如果你想重新计数,可以按第三个按钮实现手动清零 三、调试 1、确定设计思路,采用调用中断的方式来计数 2、熟悉电路知识,进行电路设计:①片机的复位电路采用自动复位;②振荡电路设计;③数码管显示电路如果用P0口的话,必须有上拉电阻,其他口不用;④比较电路设计;⑤蜂鸣器的驱动电路 3、熟悉Proteus软件,在Proteus中绘制电路原理图 4、熟悉C语言相关的知识,在Keil uVision3中进行编程、编译,看有没有错误,同时编译时要记得生成一个Hex文件,在仿真时用。 5、把生成的Hex文件调入Proteus中的单片机中,看程序能否实现所要求功能。遇到的问题:①起初数码管没显示,是因为我程序中没给它赋初值“00”;② 点仿真按钮后,数码管总显示“80”,经检查发现P0口没有接上拉电阻;③计数进位时,总有一个数不显示,检查发现比较条件不合理;④报警时就响一声,而不是一直报警,把程序的条件语句改了一下;⑤蜂鸣器一开始只和一电阻串联不工作,之后换做了三极管驱动 6、通电后,数码管显示“88”,经检查连接线路,复位电路没有接地 7、检查单片机工作电压,晶振是否工作,都正常 8、在单片机电源与地之间接上一个1uF的电容,避免电磁干扰 9、线路有虚焊的地方,又重新连接 10、振荡电路的晶振和电容排布的离单片机太远有干扰,又重新调整 11、比较器的电阻过小,又换了一个47k大电阻 12、单片机的EA引脚没有接高电平,这样对于AT系列的单片机会一会儿高电平一会儿低电平,工作不稳定 13、检测光敏二极管在通断时的电压,看是否有高低变化,如果没有,说明电阻不合适,在断时不能将电压拉下来,换了一个47K电阻;还是不通,调整了一下红外发光二极管与光敏二极管的对射位置,通了 四、所需器材 AT89C52单片机、晶振6MHZ、电解电容、LM339比较器、74HC245、数码管(共阴极)、按钮、三极管、蜂鸣器、红外发光二极管、光敏二极管、电阻、电容、导线 五、所需软件 Proteus、Keil uVision3、Altium Designer 六、电路原理图 七、制板图 八、实物图 九、工作源程序
完整的Word格式报告51黑下载地址:
单片机作业.doc
(2.22 MB, 下载次数: 24)
|