教室人数统计Word格式文档下载.docx
《教室人数统计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《教室人数统计Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
掌握外部中断和LED显示的设置以及相应的传感器原理。
通过此次课程设计能够将单片机软件结合起来,对程序进行编辑,校验。
1.2设计内容
设计教室人数统计系统,人员进入时系统进行加计数,人员离开时系统进行减计数并能够通过LED实时显示教室内的人数。
1.3设计要求
统计出教室内上课人数并能够通过LED显示出来。
2.硬件电路设计
2.1设计思路
教室前门不开,只通后门。
利用两个光敏二极管传感器,当有人从后门进出的时候,将产生电压脉冲,再利用单片机的外部中断功能进加减计数,最终显示出教室中的实际人数。
设计电路利用89C51通过8155及74LS138扩展4只共阴极LED数码管的接口电路,并结合了所查的资料进行了光敏二极管的理论研究(开关中以开关替代)。
图中8155的B扣和所有LED的a~h引线相连,故B口为字形扣;
各LED的位选线和8155的C口相连,故C口为字位口。
2.2单片机电路如图
图1Proteus模拟电路图
2.3光敏二极管传感器(程序中利用开关了进行仿真)
结构原理:
光敏二极管的结构与一般二极管相似。
它装在透明玻璃外壳中,其PN结装在管的顶部,可以直接受到光照射。
工作原理:
光敏二极管在电路中一般是处于反向工作状态,在没有光照射时,反向电阻很大,反向电流很小,反向电流称为暗电流,当光照射在PN结上,光子打在PN结附近,使PN结附近产生光生电子和光生空穴对,它们在PN结处的内电场作用下作定向运动,形成光电流。
光的照度越大,光电流越大因此光敏二极管在不受适当波长光照射时处于截止状态,受适当波长光照射时处于导通状态,如图2。
图2光敏二极管工作电路图
装置结构:
将两个光敏二极管安装于同学们进出的过道一侧,并间隔一定的距离L,在相对的一侧安装两个激光发射器,如图3。
图3装置结构图
工作过程:
当过道中无人员经过时,激光照射光敏二极管,使二极管导通,则图2中的电路导通,电阻RL两端高电压。
当过道中有人员通过时,二极管截止,RL两端低电压。
将两个传感器电路中RL电压变化产生的电压脉冲信号分别接入单片机的外部中断输入端/INT0与/INT1,触发中断程序,在中断程序中进行相应的操作,即可实现人数的加减计数。
注:
为满足单片机工作电平要求,图2电路中,电源E取5V,R取适当值。
3.软件电路设计
3.1工作原理
89C51单片机可以响应外部中断中断请求,外部中断源的中断请求信号可以从P3.2和P3.3(即/INT0和/INT1)引脚上输入,有电平或负边沿两种引起中断的触发方式。
本系统中利用负边沿触发方式,光敏二极管1电路中RL电压信号接/INTO,光敏二极管2电路中RL电压信号接/INT1。
进入--当有人员进入教室时,光敏二极管l首先被隔断,/INT0端首先产生负脉冲信号,引发单片机中断,在相应的中断程序中对计算人数的存储器R2进行加l计算,同时在程序中关闭/INTl的中断使能,这样就不会引起/INT1触发中断,并开始定时,在隔一定时间后利用定时中断打开/INT1中断使能。
出去--当有人员离开教室时,光敏二极管2光线首先被隔断,/INTl端首先产生负脉冲信号,引发单片机中断,在相应的中断程序中对计算人数的存储器R2进行减l计算,同时在程序中关闭/INT0的中断使能,这样就不会引起/INT0触发中断,并开始定时,在隔一定时间后利用定时中断打开/INT0中断使能,最终通过相应的LED显示程序显示的人数即当前教室里的人数了。
3.2程序流程图
3.2.1程序主流程图:
3.2.2加法流程图:
3.2.3减法流程图:
3.3汇编程序
ORG0000H
LJMPMAIN
ORG0003H
LJMPCT1
ORG000BH
LJMPYS
ORG0013H
AJMPCT2
GWEQU20h
SWEQU21H
BWEQU22H
QWEQU23H
MOV20H,#00H
MOV21H,#00H
MOV22H,#00H
MOV23H,#00H
MOVR2,#00H
MAIN:
SETBEX0;
开INT0
SETBEX1;
开INT1
SETBEA
JIA:
MOVR4,#00H;
加法运算
MOVSP,#60H
MOVDPTR,#2100H
MOVA,#0EH
MOVX@DPTR,A
ACALLFB
LOOP1:
ACALLDIR
MOVA,R2
CJNEA,52H,BACK1
SJMPLOOP1
JIAN:
MOVR4,#00H;
减法运算
MOVSP,#60H
MOVDPTR,#2100H
MOVA,#0EH
MOVX@DPTR,A
ACALLFB2
LOOP2:
ACALLDIR
MOVA,R2
CJNEA,52H,BACK
SJMPLOOP2
CT1:
CLREX1
MOV52H,R2;
关INT1
INCR2
MOVTMOD,#01H;
T0选择定时器方式1工作
MOVTH0,#0BH;
装入初值
MOVTL0,#0DCH
SETBET0;
开T0中断
SETBTR0;
启动中断
BACK2:
MOVA,P3
CJNEA,#0FFH,BACK2;
判断按键是否弹开,避免1人多次计数
LJMPJIA
BACK:
RETI
CT2:
CLREX0;
关INT0
MOV52H,R2
DECR2
MOVTMOD,#01H
MOVTH0,#0BH
SETBET0
SETBTR0
BACK3:
CJNEA,#0FFH,BACK3
LJMPJIAN
BACK1:
YS:
SETBEX0
SETBEX1
FB:
MOVR1,#79H
MOVR3,#02H
LP2:
CJNER2,#10,JIN;
加法进位程序
INCSW
MOVA,SW
CJNEA,#10,JIN
MOVSW,#00H
INCBW
JIN:
MOVA,R2;
加法显示程序
ANLA,#0FH
MOV@R1,A
INCR1
MOVA,SW
MOVA,BW
MOVA,QW
ANLA,#0FH
RET
FB2:
LP22:
CJNER2,#0FFH,TUI;
减法借位程序
MOVR2,#09H
DECSW
CJNEA,#0FFH,TUI
MOVSW,#09H
DECBW
MOVA,BW
DECQW
TUI:
MOVA,R2;
减法显示程序
MOV@R1,A
MOVA,GW
INCR1
MOVA,QW
DIR:
MOVR0,#79H;
LED显示控制程序
MOVR5,#20H
MOVA,R5
LD0:
MOVDPTR,#2103H
MOVA,#00H
MOVDPTR,#2102H
MOVA,@R0
ADDA,#14H
MOVCA,@A+PC
DIR1:
MOVDPTR,#2103H
MOVR7,#02H
ACALLDL
INCR0
JBACC.0,LD1
RRA
MOVR5,A
AJMPLD0
LD1:
DSEG0:
DB3FH,06H,5BH,4FH,66H,6DH
DSEG1:
DB7DH,07H,7FH,6FH
DL:
MOVR6,#0FFH
DL6:
DJNZR6,DL6
DJNZR7,DL
END
4.电路调试
1.接通电源,观察LED初值是否显示“0000”。
2.把INT0开关置低电平,进行人员进入教室模拟统计,观察LED显示是否能进行加一计数并稳定显示。
3.把INT1开关置高电平,进行人员外出教室模拟统计,观察LED显示是否能进行减一计数并稳定显示。
4.进行多人数统计的模拟,即多次点击INT0开关,来检验十位、百位乃至千位的进位、退位程序是否正确。
5.仿真结果
6.实验感想
开始阶段的第一项工作就是相关资料的查阅以及仿真软件的调试,并大致决定了电路的相关设计。
第二项工作是自学proteus进行电路仿真和keil程序调试。
第三项工作是将所查资料进行仿真,程序和电路图分别正确,将程序导进电路图中时就出现错误,而这时候就需要我们去反复看程序,真正动脑子去思考如何解决这些难题,而这也是与平时做作业、听课完全不同的学习方式,能够真正让人受益,学到更多。
7.参考文献
[1]张俊谟.单片机中级教程-原理与应用[M].北京:
北京航空航天大
学出版社,2002;
[2]张肃文.高频电子线路[M].北京:
高等教育出版社,1984:
50-51
[3]MAXIN公司.MAX038技术资料[Z].2002.
[4]丁元杰.单片微机原理及应用[M].北京:
机械工业出版社,2005:
25-39
[5]常新华.高频信号发生器原理[M].北京:
电子工业出版社,2007:
32-43
[6]解月珍.信号产生电路[J].电子应用技术,2003,19(3):
5-12
[7]聂汉平.高频精密函数波形发生器设计[J].国外电子元器件
2001
(1):
63-66.
[8]李琳.单片高频函数发生器MAX038及其应用[J].现代电子技
术,2003,12
(2):
15-17.
[9]沈红卫.单片机应用系统设计实例与分析[M].北京:
航空航天大
学出版社,2011:
29-37
[10]江太辉.高频波形发生器的特性[J].信息技术报,2009,6(3):
10-31