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

上传人:精*** 文档编号:855916 上传时间:2023-09-17 格式:DOC 页数:15 大小:362.50KB
下载 相关 举报
教室人数统计系统 单片机课程设计.doc_第1页
第1页 / 共15页
教室人数统计系统 单片机课程设计.doc_第2页
第2页 / 共15页
教室人数统计系统 单片机课程设计.doc_第3页
第3页 / 共15页
教室人数统计系统 单片机课程设计.doc_第4页
第4页 / 共15页
教室人数统计系统 单片机课程设计.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、- 15 - 机电学院微机原理与接口技术课程设计任务书 设计要求:扩展两个光电传感器和一块8*8点阵LED显示器,控制系统需要实现:1. 检测教室里的人数。 并在8*8点阵LED显示器显示出来;2. 设置一个按键实现复位清零。3. 用发光二极管模拟电灯, 当教室有人时, 发光二极管发光,无人时发光二极管不发光。4. 工作计划安排: 在初期大体上我们组细化为五个部分1.对硬件器材的学习与认识2.硬件电路板的焊接3.程序设计与调试4.系统软硬件知识的综合学习与研究5.试验总结及实验报告的书写 我组组员工作的具体分工如下卢航:主程序设计与过程调试张沈汇:显示程序设计与过程调试李明华、森达:辅助程序设

2、计及过程调试金晓东、郑斌:实验报告的撰写及程序设计调试 在本次实验中,我组齐心协力,共同研究与学习,虽各有分工,但又互相帮助,互相学习。做到每一个人各有侧重点的同时,又对总体的每一步有所参与,对总体的设计与调试都有所掌握。目录一, 系统基本功能和实施方案(第4页)二, 设计思路及硬件部分(第4-8页)三, 程序流程图(第9-11页)四, 系统制作过程及结果(第11-12页)五, 调试程序(第12-15页)六, 心得体会(第15-16页)七, 参考文献一、 系统基本功能和实施方案1、设计目的:如果在进自习室前就能知道教室里有多少人,是否满员,而不用推门进去才知道,将会节省自习同学的很多时间,同时

3、也节省管理人员的很多时间,带来很大的方便,不会更多的影响自习的同学。因此我们小组选择了设计这个教室人数统计系统,利用51单片机系统和两个光电对管器件统计教室进出的人数,最后把教师当前人数显示在一个8*8LED显示器上,方便想要自习的同学选择教室,以及管理人员的管理工作。2、基本功能的实施方案:模拟教室人员的进出,在出入口安装两个光电对管GK102,分别G1和G2;一块8*8LED显示教室目前人数;一个发光二极管显示教室人数是否为零;还有一个复位按键显示器清零。当有人进去时,先响应G1,后响应G2,此时将人数加一并显示出来;当有人出去时,先响应G2,后响应G1,此时将人数减一并显示出来。如果人数

4、为零则发光二极管熄灭。如检测到复位按键按下则熄灭发光二极管,同时将人数变成零并显示出来。二、1)设计思路本程序分主程序、两中断程序、显示子程序与延时子程序四部分。各部分功能如下:1、主程序:主程序完成相应存储单元和标志位的清零、8155的设置、开机界面显示、中断设置、对按键按下方式的检测和处理等工作。按键按下方式及系统相应完成的功能如下:系统起始功能:显示教室中人数并根据人数控制发光二极管亮灭。2、中断程序:两中断程序分别对人数增减标志位(R0)进行赋1和-1的操作。两中断响应先后决定对人数增减标志位(R2)进行赋1还是-1。具体实现方式为:在一个中断程序中加入对另一中断是否响应的判断。如另一

5、中断没有响应,则进行赋1或-1的操作。3、显示子程序:显示子程序采用定行值,扫描列值的方法。具体见8*8LED原理的介绍。4、延时子程序:(一个)本程序中有两个延时子程序,分别完成2ms的延时。以上各部分程序的具体实现方式见程序流程图和源程序。2)硬件部分系统电路原理图:主体元件工作原理如下:1、8*8 点阵LED的工作原理: 图(1)为88点阵LED外观及引脚图,其等效电路如图(2)所示,只要其对应的X、Y轴顺向偏压,即可使LED发亮。例如如果想使左上角LED点亮,则Y0=1,X0=0即可。应用时限流电阻可以放在X轴或Y轴。图1:88点阵LED外观及引脚图图2:88点阵LED等效电路图3:8

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

7、第一列线代码到P0端口,同时置P3端口第一列线P3.0为“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

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

9、无人时发光二极管不发光。本系统存在的问题:有时反应不灵敏五、调试程序ORG0000HAJMPMAINORG0003HAJMPPINT0ORG0013HAJMPPINT1ORG0100HMAIN:ACALLFUWEI;复位SETBEA;开所有中断SETBPX0;令INT0中断为高优先级SETBPX1;令INT1中断为高优先级SETBIT0;令INT0中断为负边沿触发SETBIT1;令INT1中断为负边沿触发SETBEX0;开INTO中断SETBEX1;开INT1中断LOOP:JNBP1.0,DONE;扫描P1.0电平,判断是否复位ACALLFUWEI;若P1.0为高电平,调用复位程序DONE:A

10、CALLFB;调用分半程序,将要显示的两位数分离ACALLXS;调用显示程序,显示人数SJMPLOOP;返回LOOP,循环扫描、显示;显示程序XS:MOVDPTR,#0100H;8155命令口地址送DPTRMOVA,#03H;方式控制字送AMOVXDPTR,A;方式控制字送8155命令口CLR C;清除标志位cyCJNER2,#10,FULL;R2和10比较,判断是否人满,并形成标志位cyFULL:JCXS0;人数少与10人,则显示人数MOVR0,#72H;人数等于或超过10人,显示人满标志符号XMOV72H,#0AH;人满标志符号字形码送显示缓冲区MOV73H,#0BHAJMPXS1XS0:

11、MOVR0,#70H;显示缓冲区起始地址送R0XS1:MOVR4,#0FEH;字位码始值送R4ACALLXSZ;嵌套调用显示子程序,显示十位数INCR0;修正显示缓冲区指针,指向71H单元地址ACALLXSZ;嵌套调用显示子程序,显示个位数RET;返回主程序;显示子程序XSZ:MOVR3,#04H;循环控制量始值送R3MOVA,R0;显示缓冲区中的数送ARLA;A中值扩大两倍RLA;A中值再扩大两倍MOVR5,A;偏移量修正值送R5,暂存LP:MOVA,R5INCR5;修正偏移量MOVDPTR,#ZXTB;字形码表格地址送DPTRMOVCA,A+DPTR;查表得字形码MOVDPTR,#0101

12、H;A口地址送DPTRMOVXDPTR,A;字形码送A口INCDPTR;B口地址送DPTRMOVA,R4;字位码送AMOVXDPTR,A;字位码送B口RLA;字位码左移一位MOVR4,A;字位码暂存在R4ACALLDL;延时1msDJNZR3,LP;显示下一个数码RETZXTB:DB0C1H,0BEH,0BEH,0C1H;字形表DB0FFH,0BDH,080H,0BFHDB8DH,0B6H,0B6H,0B9HDB0DDH,0B6H,0B6H,0C9HDB0F3H,0F5H,80H,0F7HDB0B0H,0B6H,0B6H,0CEHDB0C1H,0B6H,0B6H,0CDHDB0FCH,0FEH

13、,82H,0FCHDB0C9H,0B6H,0B6H,0C9HDB0D9H,0B6H,0B6H,0C1HDB0BEH,0DDH,0EBH,0F7H ;人满了,显示XDB0F7H,0EBH,0DDH,0BEH;延时程序DL:MOVR7,#02H;大循环控制量初值送R7DL1:MOVR6,#0FFH;小循环控制量初值送R6DL2:DJNZR6,DL2;未完成则DL2,否则跳出小循环DJNZR7,DL1;未完成则DL1,否则跳出大循环RET ;分半程序FB:MOVR0,#70H;R0指向70H单元地址MOVA,R2;人数送AMOVB,#0AH;除数10送BDIVAB;人数的十位数送A,个位数送BMOV

14、R0,A;十位数送显示缓冲区70H地址单元MOVA,B;个位数送AINCR0;修正缓冲区指针,指向71H单元地址MOVR0,A;个位数送显示缓冲区71H地址单元RET;复位程序FUWEI:MOVR2,#00H;人数清零CLR7EH;INTO中断响应标志置“0”CLR7FH;INT1中断响应标志置“0”CLRP1.1;小灯熄灭RET;INT0中断子程序PINT0:JB7FH,DCR2;若INT1响应标志为1,人数减一JB7EH,CLR7E;若INT0响应标志为1,将其置“0”SETB7EH;若INT0、INT1响应标志均为0,则将INT0响应标志置“1”RETIDCR2:DECR2;人数减一CJ

15、NER2,#0FFH,NETT1ACALLRSET;人数为255(-1)时,复位NEXTT1:CLRC;cy标志清零CJNER2,#00H,NEXT;若人数大于零,NEXTCLRP1.1;若人数为零,小灯熄灭NEXT:CLR7FH;将INT1响应标志置“0”CLR7E:CLR7EH;将INT0响应标志置“0”RETI;INT1中断子程序PINT1:JB7EH,INCR2;若INT0响应标志为1,人数加一JB7FH,CLR7F;若INT1响应标志为1,将其置“0”SETB7FH;若INT0、INT1响应标志均为0,则将INT1响应标志置“1”RETI;返回主程序INCR2:INCR2;人数加一S

16、ETBP1.1;小灯亮CLR7EH;将INT0响应标志置“0”CLR7F:CLR7FH;将INT1响应标志置“0”RETI ;中断返回END六、心得体会:我们所实践的这门课,使我们机电类本科生教学的主要基础课之一,课程紧密结合机电大类专业特点,围绕单片机原理和应用主题,系统介绍单片机的基本知识,基本组成,体系结构和工作模式等,从而让我们能清楚地了单片机的结构与工作流程,建立起系统的概念,为以后的更深层次的研究打下坚实基础。 这次微机原理课程设计历时约十天完成,在这些天里,我们发扬团队合作的精神,共同克服了很多难题,在较长的时间里成功完成了本次实验,看着我们的劳动成果,我们每个人都觉得自己的付出

17、得到了回报。虽然很累,但可以说得是苦多于甜,真理源于实践,用在这里似乎有些张扬,但此刻,我们的感受却很相似,在这段时间里,我们通过自己亲自动手去操作,主动去思考,去解决现实的问题,我们获得了很多,学到了很多。不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。以前在上课的时候,把老师的种种忠告抛之脑后,而在本次实践中,我们才体会到有些在上课不曾注意过的东西在现实中是多么重要,就比如说老师经常强调在写一个程序的时候,一定要事先把程序总体原理方框图化出来,但是我开始总觉得这样做没必要,而且浪费时间,但是,这次课程设计完全改变了我以前的那种错误的认识。还有就是,老师曾强调程序的格式

18、,以及程序的细节符号等,由于以前我接触的那些程序都是很短、很基本的东西,所以出错了很容易检查并对其进行修改,但是在课程设计中,一个程序那么长,那么繁琐,出错之后需要费很大的努力才能校正,这就需要我们对其更加认真与仔细!以前对于编程工具的使用还处于一知半解的状态上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个寄存器的内容以确保程序的正确性上都有了很大程度的提高。通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,就比如在这次实践中,我们部分同学虽然对理论掌握得很不错,但在开始那段时间还是不能得心应手地进行设计与实践,这就是实

19、践与理论的联系的过程,我们体会到了所谓的“纸上谈兵”,因此只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。通过本次课程设计,我们能够更深层次地了解和掌握单片机的基本知识和基本的编写程序,也更加深入地了解单片机这么课程,掌握汇编语言的设计和调试方法,熟悉设计的流程及程序的组合、调用和系统的调试。总之,我们默对单片机的应用有所了解,这对我们以后的研究与学习会有很大帮助!这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在老师以及学长的指导下,我们最终得到了很好的解决方案。在此,我代表我组所有成员,感谢老师的指导与帮助,我们会更加努力地的去学习工作!七、参考文献1、 胡汉才单片机原理及其接口技术北京:清华大学出版社 2004.22、胡汉才 单片机在电子电路设计中的应用 北京:清华大学出版社 20063、赵嘉蔚 张家栋 霍凯 肖燕彩 单片机原理与接口技术 北京:清华大学出版 2010- 15 -

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

当前位置:首页 > 技术资料 > 课程设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922