教室人数统计系统仿真

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于80C51教室人数统计
系统仿真
组长:
目录
1.实验摘要
1.1内容摘要
1.2关键词
2.目的和意义
2.1设计目的及意义
2.2系统实现的功能
3.硬件电路设计
3.1设计思路
3.2单片机电路(proteus模拟电路)
4.软件电路设计
4.1工作原理
4.2程序流程图
4.3汇编程序
5.电路调试
6.结题感受
7.参考文献
1.实验摘要
1.1内容摘要
教室人数技术器系统设计,通过Proteus软件模拟教室人员的出入,当有同学进入时进行加计数,当有同学外出时进行减计数,并把现在教室人数通过LED 显示出来。

通过这个程序,教室可以很好的了解教室内的学生人数,既方便了学生的人数统计,同时也方便了老师的教学进展。

1.2关键词
单片机 89C51 8155 人数统计 LED显示
2.目的和意义
2.1设计目的及意义
教室人数统计对于一些人数比较大的课堂一直是个比较困难的问题。

于是,基于单片机80C51我们设计了一个教室人数自动统计系统。

通过本次课程设计加深了对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。

掌握外部中断和LED显示的设置以及相应的传感器原理。

通过此次课程设计能够将单片机软件结合起来,对程序进行编辑,校验。

2.2系统实现的功能
(1)检测教室里百位以内的人数,并在8*8点阵LED显示器上显示出来;
(2)设置按键复位清零;
(3)用发光二级管模拟点灯,当教室有人时,发光二极管发光;当教室无人时,发光二极管不发光。

3.硬件电路设计
3.1设计思路
教室门上安置两个光电对管GK102,当有人进入时,INT0先产生中断并置1 INT1响应标志位,INT1后发生中断,在响应标志位为1情况进行加法计数,外出时与之相反,最终显示出教室的实际人数。

注:使用proteus仿真时,将光电对管用开关按键代替。

测试系统硬件框图如下图所示:
光电对管GK102
80C51单片机LED显示光电对管GK102
3.2单片机电路(proteus模拟电路)
4.软件电路设计
4.1工作原理
8051单片机可以响应外部中断中断请求,外部中断源的中断请求信号可以从P3.2和P3.3(即INT0和INT1)引脚上输入,有电平或负边沿两种引起中断的触发方式。

本系统中利用负边沿触发方式。

光电对管1(开关1)电路中电压信号接INTO,光电对管2(开关2)电路中电压信号接INT1。

工作过程:教室门上安置两个光电对管GK102,当有人进入时,INT0先产生中断并置1 INT1响应标志位,INT1后发生中断,在响应标志位为1情况进行加法计数,当有人外出时,INT1先产生中断并置1 INT0响应标志位,INT0后发生中断,在响应标志位为1情况进行减法计数,最终通过相应的LED显示程序显示的人数即当前教室里的人数了。

4.2程序流程图
4.3汇编程序
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP CT0
ORG 0013H
AJMP CT1
ORG 0100H
MAIN: MOV 20H,#0FEH
START: MOV A,#00H
MOV DPTR,#0101H ;渐变式显示,表示开机界面 MOVX @DPTR, A
MOV DPTR, #0102H
MOV A, 20H
MOVX @DPTR, A
MOV R4, #03H ;延时约1S左右
DEL: ACALL DELAY
DJNZ R4, DEL
MOV R5, #00H
MOV A, 20H
RL A
MOV 20H, A
JB ACC.0, START ;用于控制渐变式显示ACALL RSET ;复位
SETB EX0 ;开INT0
SETB EX1 ;开INT1
SETB EA ;开中断
SETB IT0 ;令INT0中断为负边沿触发
SETB IT1 ;令INT1中断为负边沿触发
LOOP: JNB P1.0, DONE ;扫描P1.0电平,判断是否复位
ACALL RSET ;若P1.0为高电平,调用复位程序DONE: ACALL FB ;调用分半程序,将要显示的两位数分离ACALL DISP ;调用显示程序,显示人数
SJMP LOOP ;返回LOOP,循环扫描、显示
DISP: MOV DPTR, #0100H ;8155命令口地址送DPTR
MOV A, #03H ;方式控制字送A
MOVX @DPTR,A ;方式控制字送8155命令口
CLR C ;清除标志位cy
CJNE R2, #100, FULL ;判断是否人满,并形成标志位cy FULL: JC DISP0 ;人数少于100人,则显示人数
MOV R0, #72H ;人数等于或超过100人,显示人满标志
MOV 72H,#0AH
MOV 73H,#0BH ;人满标志符号字形码送显示缓冲区
AJMP DISP1
DISP0: MOV R0, #70H ;显示缓冲区起始地址送R0
DISP1: MOV R4, #0FEH ;字位码始值送R4
ACALL DISPZ ;嵌套调用显示子程序,显示十位数
INC R0 ;修正显示缓冲区指针
ACALL DISPZ ;嵌套调用显示子程序,显示个位数
RET ;返回主程序
DISPZ: MOV R3, #04H ;循环控制量始值送R3
MOV A, @R0 ;显示缓冲区中的数送A
RL A ;A中值扩大4倍
RL A
MOV R5, A ;偏移量修正值送R5,暂存LP: MOV A, R5
INC R5 ;修正偏移量
MOV DPTR, #TAB ;查表得字形码
MOVC A,@A+DPTR
MOV DPTR, #0101H ;A口地址送DPTR
MOVX @DPTR, A ;字形码送A口
INC DPTR ;B口地址送DPTR
MOV A, R4
MOVX @DPTR, A ;字位码送B口
RL A ;字位码左移一位
MOV R4, A ;字位码暂存在R4
ACALL DELAY ;延时1ms
DJNZ R3,LP ;显示下一个数码
RET
;字形表
TAB: DB 7CH,82H,82H,7CH ;0
DB 00H,42H,0FEH,02H ;1
DB 4EH,92H,82H,62H ;2
DB 44H,92H,92H,6CH ;3
DB 18H,28H,0FEH,08H ;4
DB 0F2H,92H,92H,8CH ;5
DB 7CH,92H,92H,4CH ;6
DB 0C0H,80H,0BEH,0C0H ;7
DB 6CH,92H,92H,6CH ;8
DB 64H,92H,92H,7CH ;9
DELAY: MOV R7, #02H ;大循环控制量初值送R7 DELAY1: MOV R6, #0FFH ;小循环控制量初值送R6 DELAY2: DJNZ R6, DELAY2 ;未完成则DELAY2,否则跳出小循环DJNZ R7, DELAY1 ;未完成则DELAY1,否则跳出大循环
RET
RSET: MOV R2, #00H ;人数清零
CLR 5EH ;INTO中断响应标志置"0"
CLR 5FH ;INT1中断响应标志置"0"
CLR P1.1 ;小灯熄灭
RET
FB: MOV R0, #70H ;R0指向70H单元地址
MOV A, R2 ;人数送A
MOV B, #0AH ;除数10送B
DIV AB ;人数的十位数送A,个位数送B
MOV @R0, A ;十位数送显示缓冲区50H地址单元
MOV A, B ;个位数送A
INC R0 ;修正缓冲区指针,指向51H单元地址
MOV @R0, A ;个位数送显示缓冲区51H地址单元
RET
CT1: JB 5EH, JIA ;若INT0响应标志为1,人数加一SETB 5FH ;将INT1响应标志置"1"
RETI ;返回主程序
JIA: INC R2 ;人数加一
SETB P1.1 ;小灯亮
CLR 5EH ;将INT0响应标志置"0"
CLR5F: CLR 5FH ;将INT1响应标志置"0"
RETI
CT0: JB 5FH, JIAN ;若INT1响应标志为1,人数减一
SETB 5EH ;将INT0响应标志置"1"
RETI
JIAN: DEC R2 ;人数减一
CJNE R2, #0FFH, NEXT1
ACALL RSET ;人数为255(-1)时,复位NEXT1: CLR C
CJNE R2,#00H,NEXT ;若人数大于零,NEXT
CLR P1.1 ;若人数为零,小灯熄灭NEXT: CLR 5FH ;将INT1响应标志置"0"
CLR5E: CLR 5EH ;将INT0响应标志置"0"
RETI
END
5.电路调试
1.接通电源,观察LED初值显示是否为“00”;
2.把INT0开关、INT1开关先后置低,进行人员进入教室模拟统计,观察LED 显示是否能进行加一计数并稳定显示;
3. 把INT1、INT0开关先后置低,进行人员外出教室模拟统计,观察LED 显示是否进行减一计数。

4.进行多人数统计的模拟,即多次进行2、3步骤,来检验十位、退位程序是否正确;
5.进行按键复位清零,看是否正确。

6.结题感受
经过近两周的的时间的努力,教室人数统计系统设计的仿真终于完成啦,这期间包括我们每个人对程序电路图和汇编程序的单独研究,也包括在一起的研究与讨论,遇到了各种各样简单与复杂的问题,画程序图、编程序时都出现了各种问题;将汇编语言程序导入到proteus执行时,又出现了很多的问题,这就需要反复的看程序,不断地去调试、思考,最终解决出现的问题。

通过对教室人数统计系统设计仿真的学习与研究,我们认识到:对于设计等科研的项目,不是简简单单的说说就可以的,它需要你不断的去思考去改正。

不可以一种散漫的态度去对待,只有付出了真正的汗水,才会有实实在在的收获。

通过这次的仿真的研究学习,我们不仅锻炼了自主学习能力,更加锻炼了动手实践能力。

7.参考文献
[1]蒋万君.再论循环时序电路的接口技术[J].机电一体化,2005第5期
[2]赵嘉尉,张家栋,霍凯肖燕彩.单片机原理与接口技术[M].北京:清华大学出版社,2010
[3]胡汉才.单片机原理及接口技术(第二版)[M].北京:清华大学出版
社,2004
人员分工。

相关文档
最新文档