教室人数统计系统,单片机课程设计

上传人:飞*** 文档编号:30190597 上传时间:2018-01-27 格式:DOC 页数:16 大小:437KB
返回 下载 相关 举报
教室人数统计系统,单片机课程设计_第1页
第1页 / 共16页
教室人数统计系统,单片机课程设计_第2页
第2页 / 共16页
教室人数统计系统,单片机课程设计_第3页
第3页 / 共16页
教室人数统计系统,单片机课程设计_第4页
第4页 / 共16页
教室人数统计系统,单片机课程设计_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《教室人数统计系统,单片机课程设计》由会员分享,可在线阅读,更多相关《教室人数统计系统,单片机课程设计(16页珍藏版)》请在金锄头文库上搜索。

1、- 1 - 1 -微机原理与接口技术微机原理与接口技术课程设计说明书课程设计说明书课程名称: 微机原理与接口技术综合实验 设计题目: 教室人数统计系统(第 68 组) 院 系: 机械与电子控制工程学院 班 级: 设 计 者 :指导教师: 实验设计时间: - 2 - 2 -机电学院 微机原理与接口技术 课程设计任务书设计要求:扩展两个光电传感器和一块 8*8 点阵 LED 显示器,控制系统需要实现:1. 检测教室里的人数。 并在 8*8 点阵 LED 显示器显示出来;2. 设置一个按键实现复位清零。3. 用发光二极管模拟电灯, 当教室有人时, 发光二极管发光,无人时发光二极管不发光。4.工作计划

2、安排:在初期大体上我们组细化为五个部分1.对硬件器材的学习与认识2.硬件电路板的焊接3.程序设计与调试4.系统软硬件知识的综合学习与研究5.试验总结及实验报告的书写我组组员工作的具体分工如下卢航:主程序设计与过程调试张沈汇:显示程序设计与过程调试李明华、森达:辅助程序设计及过程调试金晓东、郑斌:实验报告的撰写及程序设计调试在本次实验中,我组齐心协力,共同研究与学习,虽各有分工,但又互相帮助,互相学习。做到每一个人各有侧重点的同时,又对总体的每一步有所参与,对总体的设计与调试都有所掌握。- 3 - 3 -目录一,系统基本功能和实施方案(第 4 页)二,设计思路及硬件部分(第 4-8 页)三,程序

3、流程图(第 9-11 页)四,系统制作过程及结果(第 11-12 页)五, 调试程序(第 12-15 页)六, 心得体会(第 15-16 页)七, 参考文献- 4 - 4 -一、 系统基本功能和实施方案1、设计目的:如果在进自习室前就能知道教室里有多少人,是否满员,而不用推门进去才知道,将会节省自习同学的很多时间,同时也节省管理人员的很多时间,带来很大的方便,不会更多的影响自习的同学。因此我们小组选择了设计这个教室人数统计系统,利用 51 单片机系统和两个光电对管器件统计教室进出的人数,最后把教师当前人数显示在一个 8*8LED 显示器上,方便想要自习的同学选择教室,以及管理人员的管理工作。2

4、、基本功能的实施方案:模拟教室人员的进出,在出入口安装两个光电对管 GK102,分别 G1 和 G2;一块 8*8LED 显示教室目前人数;一个发光二极管显示教室人数是否为零;还有一个复位按键显示器清零。当有人进去时,先响应 G1,后响应 G2,此时将人数加一并显示出来;当有人出去时,先响应 G2,后响应 G1,此时将人数减一并显示出来。如果人数为零则发光二极管熄灭。如检测到复位按键按下则熄灭发光二极管,同时将人数变成零并显示出来。二、1)设计思路本程序分主程序、两中断程序、显示子程序与延时子程序四部分。各部分功能如下:1、主程序:主程序完成相应存储单元和标志位的清零、8155 的设置、开机界

5、面显示、中断设置、对按键按下方式的检测和处理等工作。按键按下方式及系统相应完成的功能如下:系统起始功能:显示教室中人数并根据人数控制发光二极管亮灭。2、中断程序:两中断程序分别对人数增减标志位(R0)进行赋 1 和-1 的操作。两中断响应先后决定对人数增减标志位(R2)进行赋 1 还是-1。具体实现方式为:在一个中断程序中加入对另一中断是否响应的判断。如另一中断没有响应,则进行赋 1 或-1 的操作。3、显示子程序:显示子程序采用定行值,扫描列值的方法。具体见 8*8LED 原理的介绍。4、延时子程序:(一个)本程序中有两个延时子程序,分别完成 2ms 的延时。以上各部分程序的具体实现方式见程

6、序流程图和源程序。2)硬件部分系统电路原理图:- 5 - 5 -主体元件工作原理如下:1、8*8 点阵 LED 的工作原理:图(1)为 88 点阵 LED 外观及引脚图,其等效电路如图(2)所示,只要其对应的 X、Y 轴顺向偏压,即可使 LED 发亮。例如如果想使左上角 LED 点亮,则 Y0=1,X0=0 即可。应用时限流电阻可以放在 X 轴或 Y 轴。- 6 - 6 -图 1:88 点阵 LED 外观及引脚图图 2:88 点阵 LED 等效电路- 7 - 7 -图 3:88 点阵 LED 电路原理点阵 LED 扫描法介绍点阵 LED 一般采用扫描式显示,实际运用分为三种方式:(1)点扫描;

7、 (2)行扫描;(3)列扫描。若使用第一种方式,其扫描频率必须大于 1664=1024Hz,周期小于 1ms即可。若使用第二和第三种方式,则频率必须大于 168=128Hz,周期小于 7.8ms即可符合视觉暂留要求。此外一次驱动一列或一行(8 颗 LED)时需外加驱动电路提高电流,否则 LED 亮度会不足。如图 3 所示。本程序采用第三种方式。其对应的字形编码如下:如下图所示,假设显示数字“00”- 8 - 8 -12 3 4 56 7 8 7CH 82H 82H 7CH 7CH 82H 82H 7CH送显示代码过程如下所示:送第一列线代码到 P0 端口,同时置 P3 端口第一列线 P3.0

8、为“0” ,P3 口的其它列线为“1” ,延时 2ms 左右。送第二列线代码到 P0 端口,同时置 P3 端口第二行线 P3.1 为“0” ,P3 口的其它列线为“1” ,延时 2ms 左右。如此下去,在显示完十位后,接着扫描显示个位,直到送完最后一列代码,又从头开始送。同理可得“0”到“9”的字形代码。如:DB 7CH,82H,82H,7CH;DB 00H,42H,0FEH,02H;DB 4EH,92H,82H,62H;DB 44H,92H,92H,4CH;DB 18H,28,0FEH,08H;DB 0F2H,92H,92H,4CH;DB 7CH,92H,92H,4CH;DB 0C0H,80

9、H,0BEH,0C0H;DB 6CH,92H,92H,6CH;DB 64H,92H,92H,7CH;三、流程图- 9 - 9 - 10 - 10 - 11 - 11 -四、系统制作过程及结果1、制作过程(1)电路板的焊接:直接用的是成品(2)程序编写:在所有组员都懂得程序原理的前期下,为尽早完成任务,我们将程序分为主体部分和细节部分两个方面分别由不同人员进行编写。其中主体部分由组长及卢航编写。细节部分由其他组员共同编写。- 12 - 12 -2.调试结果:本系统完成了所有的基本功能并扩展了部分功能,具体总结如下:a 检测教室里的人数并在 8*8 点阵 LED 显示器显示出来;b 设置一个按键实

10、现复位清零。C 用发光二极管模拟电灯, 当教室有人时, 发光二极管发光,无人时发光二极管不发光。本系统存在的问题:有时反应不灵敏五、调试程序ORG 0000HAJMP MAINORG 0003HAJMP PINT0ORG 0013HAJMP PINT1ORG 0100HMAIN: ACALL FUWEI ;复位SETB EA ;开所有中断SETB PX0 ;令 INT0 中断为高优先级SETB PX1 ;令 INT1 中断为高优先级SETB IT0 ;令 INT0 中断为负边沿触发SETB IT1 ;令 INT1 中断为负边沿触发SETB EX0 ;开 INTO 中断SETB EX1 ;开 I

11、NT1 中断LOOP: JNB P1.0,DONE ;扫描 P1.0 电平,判断是否复位ACALL FUWEI ;若 P1.0 为高电平,调用复位程序DONE: ACALL FB ;调用分半程序,将要显示的两位数分离ACALL XS ;调用显示程序,显示人数SJMP LOOP ;返回 LOOP,循环扫描、显示;显示程序XS: MOV DPTR, #0100H ;8155 命令口地址送 DPTRMOV A, #03H ;方式控制字送 AMOVX DPTR,A ;方式控制字送 8155 命令口CLR C ;清除标志位 cyCJNE R2,#10,FULL ;R2 和 10 比较, 判断是否人满,并

12、形成标志位 cyFULL: JC XS0 ;人数少与 10 人,则显示人数MOV R0,#72H ;人数等于或超过 10 人,显示人满标志符号 X- 13 - 13 -MOV 72H,#0AH ;人满标志符号字形码送显示缓冲区MOV 73H,#0BHAJMP XS1XS0: MOV R0,#70H ;显示缓冲区起始地址送 R0XS1: MOV R4,#0FEH ;字位码始值送 R4ACALL XSZ ;嵌套调用显示子程序,显示十位数INC R0 ;修正显示缓冲区指针,指向 71H 单元地址ACALL XSZ ;嵌套调用显示子程序,显示个位数RET ;返回主程序;显示子程序XSZ: MOV R3

13、,#04H ;循环控制量始值送 R3MOV A,R0 ;显示缓冲区中的数送 ARL A ;A 中值扩大两倍RL A ;A 中值再扩大两倍MOV R5,A ;偏移量修正值送 R5,暂存LP: MOV A,R5INC R5 ;修正偏移量MOV DPTR,#ZXTB ;字形码表格地址送 DPTRMOVC A,A+DPTR ;查表得字形码MOV DPTR,#0101H ;A 口地址送 DPTRMOVX DPTR,A ;字形码送 A 口INC DPTR ;B 口地址送 DPTRMOV A,R4 ;字位码送 AMOVX DPTR,A ;字位码送 B 口RL A ;字位码左移一位MOV R4,A ;字位码暂

14、存在 R4ACALL DL ;延时 1msDJNZ R3,LP ;显示下一个数码RETZXTB: DB 0C1H,0BEH,0BEH,0C1H ;字形表DB 0FFH,0BDH,080H,0BFHDB 8DH,0B6H,0B6H,0B9HDB 0DDH,0B6H,0B6H,0C9HDB 0F3H,0F5H,80H,0F7HDB 0B0H,0B6H,0B6H,0CEHDB 0C1H,0B6H,0B6H,0CDHDB 0FCH,0FEH,82H,0FCHDB 0C9H,0B6H,0B6H,0C9HDB 0D9H,0B6H,0B6H,0C1HDB 0BEH,0DDH,0EBH,0F7H ;人满了,显

15、示 XDB 0F7H,0EBH,0DDH,0BEH- 14 - 14 -;延时程序DL: MOV R7,#02H ;大循环控制量初值送 R7DL1: MOV R6,#0FFH ;小循环控制量初值送 R6DL2: DJNZ R6,DL2 ;未完成则 DL2,否则跳出小循环DJNZ R7,DL1 ;未完成则 DL1,否则跳出大循环RET;分半程序FB: MOV R0, #70H ;R0 指向 70H 单元地址MOV A, R2 ;人数送 AMOV B, #0AH ;除数 10 送 BDIV AB ;人数的十位数送 A,个位数送 BMOV R0, A ;十位数送显示缓冲区 70H 地址单元MOV A, B ;个位数送 AINC R0 ;修正缓冲区指针,指向 71H 单元地址MOV R0, A ;个位数送显示缓冲区 71H 地址单元RET;复位程序FUWEI: MOV R2, #00H ;人数清零CLR 7EH ;INTO 中断响应标志置“ 0”CLR 7FH ;INT1 中断响应标志置“0”CLR P1.1 ;小灯熄灭RET;INT0 中断子程序PINT0: JB 7FH, DCR2 ;若 INT1 响应标志为 1,人数减一JB 7EH, CLR7E ;若 INT0 响应标志为 1,将其置“0”SETB 7EH ;若 INT0、INT1 响应标志均为 0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号