基于单片机的打分系统的设计

2014-08-14 00:11刘凤
电脑知识与技术 2014年19期
关键词:串口单片机

摘要:该系统主要采用多片AT89C52单片机作为子机,通过串口和主机进行通信,主机采集到数据后,使用特定算法得到最后的结果,然后通过LED显示器显示。

关键词:单片机;AT89C52;串口;LED

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)19-4454-03

A Scoring System Design Based on MCU

LIU Feng

(Shijiazhuang University of Economics, Shijiazhuang 050000, China)

Abstract: This system mainly adopts AT89C52 MCU as a children machine, it communicates with the main machine by the serial port, after collected the data, using a specific algorithm it produces the final result, and then display the result by LED monitor.

Key words: MCU; AT89C52; Serial port; LED

当前社会有很多的竞赛,比赛活动,为了显示比赛的公正性,选手的成绩一般会现场给出,可是使用人工的方法进行收分,核分,公布分数,使得选手从比赛结束到成绩公布要等很长时间,而且有了人工的参与,使得选手对公正公平性带有疑问。该文所设计的基于单片机的打分系统,很好的解决了以上的问题,使得评分具有实时性和自动化的特点。

本系统是一个通过串口的有线评分系统,整个系统由两大块构成,硬件设计模块和软件设计模块,其中硬件设计主要完成评分端子机和主机之间的数据传送,软件设计主要是实现数据的传送和显示。评分端子机数目可以根据评委的个数灵活添加或删除。

1 功能分析

在选手比赛结束后,评委打分时,需要主机发送一个开始打分的指令,否则认为打分无效。

打分时,有多个评委,每人一个评分子机,通过总线与主机相连。评委在接到开始打分的指令时,可以给选手打分。在打分后,确认传送之前,可以修改评分。

多个评委的分数由评分子机传送到主机。主机统计分数并进行存储,最后将分数传送给显示子机,显示子机将最后得分显示在LED显示器上。

为了保证主机和评分子机的通信可靠性及有序性,他们之间要有一个通信协议的约定:

1) 给各评分子机编址,将地址存放于各评分子机的R1寄存器中。

2) 规定主机对所有评分子机都起作用的复位命令0FFH,命令使各评分子机的SM2位为1。

3) 规定主机和各评分子机的数据长度为一字节,校验方式为偶校验。

4) 制定主机发送的有效的命令代码,各评分子机收到命令后,先检测命令的有效性,再执行命令。

5) 设置评分子机的工作状态字,说明现在评分子机工作状态,包括:初始状态,评分状态,确认状态。

系统模型如图1所示[1]:

图1 打分系统模型图

2 硬件设计

通过对以上的功能进行分析,本系统采用总线结构的串行通信方式,主要需要以下硬件设施。

1) AT89C52单片机

之所以选用AT89C52单片机,是因为自从单片机流行起来以后,MCS-51系列的单片机一直处于主流地位,它的性价比是其它系列无法比拟的,近年来,AT系列芯片以它的型号齐全,性能优良,价格低廉等优势有取代MCS-51系列单片机的趋势,AT系列和MCS-51系列一起被誉为“控制领域中最佳8位微机”,它内部的中断系统,定时器,串行口,存储空间等部件完全可以满足本系统的开发[2]。

2) LED显示器

本系统中评分子机的LED显示接口电路采用静态的显示方式,使用两位共阳极七段LED显示器,其中个位数LED显示器连接一个BCD码到七段译码器转换的芯片74LS47的输出端,74LS47的另外一端和P1口的P1.0到P1.3相连,十位数LED显示器连接另一片74LS47芯片的输出端,74LS47的输入端和P1口的P1.4到P1.7相连。当有按键被按下时,经过译码后,被按下的数字键的段码会输送到个位LED显示器中显示,当再次有按键被按下时,将P1端口的数据左移四位,然后和新按下的键的键码相或,得到新的值后,送P1口输出,经译码,这时LED显示器中显示的是两位数,即十位数和个位数。显示电路图如图2所示:

图2 LED显示连接图

3) 键盘

本系统中评分子机的分数输入采用12键键盘,包括一个确定键,一个取消键,0到9十个数字键,构成一个4行3列的矩阵键盘。P2.0到P2.2为列线输入,P2.0到P2.2三根口线为列线输入,P2.4到P2.7四根口线为行线输出,将P2.0到P2.2三根口线作为与门的输入,与门的输出连接到P3.2口线,即外部中断0的输入端,当该引脚的电平由高到低产生跳变时,说明有键按下,计算键码值,送往cpu。 当键盘上有键按下时,可能会产生按键开关的抖动,本系统采用软件延时去抖。键盘电路图如图3所示[3]:

图3 键盘电路图

3 软件设计

硬件设计好以后就要进行软件的编程,本系统软件分为主机和评分子机两部分,采用串口多机通信。

1) 主机端软件

主机首先发送复位命令,使得各个评分子机的SM2=1.然后逐个发送评分子机的编号,例如,先发送一号子机的编号,然后等待一号子机传送数据,收到子机的确认信息后,开始接收数据,并存储数据,再发送2号子机的编号,一直到最后一个子机。等所有的子机的数据都接收到以后,采用去掉最高分,最低分,然后求平均值的算法,求出最后成绩,最后主机驱动LED显示电路,显示最后的成绩,驱动电路图类似图2所示。主机程序流程图如图4所示[4]。

2) 评分子机端软件

在串口通信时,子机端接收主机发送来的复位命令,使SM2=1,子机端一方面将按键的数字显示在LED显示器上,一方面等待向主机传送数据,当主机呼叫本子机时,被呼叫子机使自己的SM2=0,等待接收主机命令,子机接收到命令后,查表验证命令的正确性,然后进行相应的操作,一般是向主机传送分数操作。子机端部分程序段如下:

LOOP1:JNB RI,$;等待接收

CLR TI

MOV A,SBUF;取接收的主机呼叫地址,

CJNE A,R1,LOOP1;与本机地址不符转LOOP1

CLR SM2;相符,清SM2位

JNB RI,$;等待接收主机命令

CLR RI;如果RI为1,不能接收数据,会丢失

MOV A,SBUF;取命令

3) 按键程序

在按键模块中,根据硬件电路连接,P2.4到P2.7四根口线为输出线,P2.0到P2.2三根口线为输入线,三根输入线最初均输入高电平。为判断是否右键按下,最先四根线均输出低电平,只要有键按下,则对应的输入线就会变为低电平,所以就会产生外部中断0中断信号,至于是输入低电平列的哪个键被按下,可以在中断程序中逐行扫描,进行判断,识别出来按键后,查表得到该键的键值,进入相应的显示子程序进行LED显示。按键识别流程图和相应程序段因篇幅原因就不再多做描述。

4 软硬件测试

在本系统开发完毕后,我们进行了软硬件的测试,硬件方面,我们在做电路板时本着少使用芯片,少连接线路的原则,进行了最小系统的设计,考虑到使用到了定时器,为了定时比较精准,晶振的频率选择了11.0592MHZ。软件方面,因为采用了汇编语言,虽然扩展不是很方便,但是驱动硬件更有效,程序更精简。

5 结论

本系统设计的实时打分系统主要是为了在本校毕业设计答辩时可以公平公正迅速的给出学生的成绩,所以功能简单,易于实现,价格低廉。但是本系统只要是在类似的比赛场合都可以使用,而且功能可靠,性能稳定,后期可以按照要求进行扩展,例如,可以在主机和子机的RS-232串口上各加一个无线发射模块,做成无线的数据传输,可以在主机中开发数据库程序,实现信息管理系统,那么适合的场合就会更加的广泛。

参考文献:

[1] 张毅刚.新编MCS-51单片机应用设计[M].哈尔滨:哈尔滨工业大学出版社,2004.

[2] The Development of a VXIbus-based 3cm Single Generator[EB/OL].http://www.elecfans.com/tags/单片机设计/,1999.

[3] 吴新杰.AVR单片机项目教程[M].北京:北京航空航天大学出版社,2011.

[4] 何立民.MCS-51单片机应用系统设计系统配置与接口技术[M].北京:北京航空航天大学出版社,1992.endprint

图3 键盘电路图

3 软件设计

硬件设计好以后就要进行软件的编程,本系统软件分为主机和评分子机两部分,采用串口多机通信。

1) 主机端软件

主机首先发送复位命令,使得各个评分子机的SM2=1.然后逐个发送评分子机的编号,例如,先发送一号子机的编号,然后等待一号子机传送数据,收到子机的确认信息后,开始接收数据,并存储数据,再发送2号子机的编号,一直到最后一个子机。等所有的子机的数据都接收到以后,采用去掉最高分,最低分,然后求平均值的算法,求出最后成绩,最后主机驱动LED显示电路,显示最后的成绩,驱动电路图类似图2所示。主机程序流程图如图4所示[4]。

2) 评分子机端软件

在串口通信时,子机端接收主机发送来的复位命令,使SM2=1,子机端一方面将按键的数字显示在LED显示器上,一方面等待向主机传送数据,当主机呼叫本子机时,被呼叫子机使自己的SM2=0,等待接收主机命令,子机接收到命令后,查表验证命令的正确性,然后进行相应的操作,一般是向主机传送分数操作。子机端部分程序段如下:

LOOP1:JNB RI,$;等待接收

CLR TI

MOV A,SBUF;取接收的主机呼叫地址,

CJNE A,R1,LOOP1;与本机地址不符转LOOP1

CLR SM2;相符,清SM2位

JNB RI,$;等待接收主机命令

CLR RI;如果RI为1,不能接收数据,会丢失

MOV A,SBUF;取命令

3) 按键程序

在按键模块中,根据硬件电路连接,P2.4到P2.7四根口线为输出线,P2.0到P2.2三根口线为输入线,三根输入线最初均输入高电平。为判断是否右键按下,最先四根线均输出低电平,只要有键按下,则对应的输入线就会变为低电平,所以就会产生外部中断0中断信号,至于是输入低电平列的哪个键被按下,可以在中断程序中逐行扫描,进行判断,识别出来按键后,查表得到该键的键值,进入相应的显示子程序进行LED显示。按键识别流程图和相应程序段因篇幅原因就不再多做描述。

4 软硬件测试

在本系统开发完毕后,我们进行了软硬件的测试,硬件方面,我们在做电路板时本着少使用芯片,少连接线路的原则,进行了最小系统的设计,考虑到使用到了定时器,为了定时比较精准,晶振的频率选择了11.0592MHZ。软件方面,因为采用了汇编语言,虽然扩展不是很方便,但是驱动硬件更有效,程序更精简。

5 结论

本系统设计的实时打分系统主要是为了在本校毕业设计答辩时可以公平公正迅速的给出学生的成绩,所以功能简单,易于实现,价格低廉。但是本系统只要是在类似的比赛场合都可以使用,而且功能可靠,性能稳定,后期可以按照要求进行扩展,例如,可以在主机和子机的RS-232串口上各加一个无线发射模块,做成无线的数据传输,可以在主机中开发数据库程序,实现信息管理系统,那么适合的场合就会更加的广泛。

参考文献:

[1] 张毅刚.新编MCS-51单片机应用设计[M].哈尔滨:哈尔滨工业大学出版社,2004.

[2] The Development of a VXIbus-based 3cm Single Generator[EB/OL].http://www.elecfans.com/tags/单片机设计/,1999.

[3] 吴新杰.AVR单片机项目教程[M].北京:北京航空航天大学出版社,2011.

[4] 何立民.MCS-51单片机应用系统设计系统配置与接口技术[M].北京:北京航空航天大学出版社,1992.endprint

图3 键盘电路图

3 软件设计

硬件设计好以后就要进行软件的编程,本系统软件分为主机和评分子机两部分,采用串口多机通信。

1) 主机端软件

主机首先发送复位命令,使得各个评分子机的SM2=1.然后逐个发送评分子机的编号,例如,先发送一号子机的编号,然后等待一号子机传送数据,收到子机的确认信息后,开始接收数据,并存储数据,再发送2号子机的编号,一直到最后一个子机。等所有的子机的数据都接收到以后,采用去掉最高分,最低分,然后求平均值的算法,求出最后成绩,最后主机驱动LED显示电路,显示最后的成绩,驱动电路图类似图2所示。主机程序流程图如图4所示[4]。

2) 评分子机端软件

在串口通信时,子机端接收主机发送来的复位命令,使SM2=1,子机端一方面将按键的数字显示在LED显示器上,一方面等待向主机传送数据,当主机呼叫本子机时,被呼叫子机使自己的SM2=0,等待接收主机命令,子机接收到命令后,查表验证命令的正确性,然后进行相应的操作,一般是向主机传送分数操作。子机端部分程序段如下:

LOOP1:JNB RI,$;等待接收

CLR TI

MOV A,SBUF;取接收的主机呼叫地址,

CJNE A,R1,LOOP1;与本机地址不符转LOOP1

CLR SM2;相符,清SM2位

JNB RI,$;等待接收主机命令

CLR RI;如果RI为1,不能接收数据,会丢失

MOV A,SBUF;取命令

3) 按键程序

在按键模块中,根据硬件电路连接,P2.4到P2.7四根口线为输出线,P2.0到P2.2三根口线为输入线,三根输入线最初均输入高电平。为判断是否右键按下,最先四根线均输出低电平,只要有键按下,则对应的输入线就会变为低电平,所以就会产生外部中断0中断信号,至于是输入低电平列的哪个键被按下,可以在中断程序中逐行扫描,进行判断,识别出来按键后,查表得到该键的键值,进入相应的显示子程序进行LED显示。按键识别流程图和相应程序段因篇幅原因就不再多做描述。

4 软硬件测试

在本系统开发完毕后,我们进行了软硬件的测试,硬件方面,我们在做电路板时本着少使用芯片,少连接线路的原则,进行了最小系统的设计,考虑到使用到了定时器,为了定时比较精准,晶振的频率选择了11.0592MHZ。软件方面,因为采用了汇编语言,虽然扩展不是很方便,但是驱动硬件更有效,程序更精简。

5 结论

本系统设计的实时打分系统主要是为了在本校毕业设计答辩时可以公平公正迅速的给出学生的成绩,所以功能简单,易于实现,价格低廉。但是本系统只要是在类似的比赛场合都可以使用,而且功能可靠,性能稳定,后期可以按照要求进行扩展,例如,可以在主机和子机的RS-232串口上各加一个无线发射模块,做成无线的数据传输,可以在主机中开发数据库程序,实现信息管理系统,那么适合的场合就会更加的广泛。

参考文献:

[1] 张毅刚.新编MCS-51单片机应用设计[M].哈尔滨:哈尔滨工业大学出版社,2004.

[2] The Development of a VXIbus-based 3cm Single Generator[EB/OL].http://www.elecfans.com/tags/单片机设计/,1999.

[3] 吴新杰.AVR单片机项目教程[M].北京:北京航空航天大学出版社,2011.

[4] 何立民.MCS-51单片机应用系统设计系统配置与接口技术[M].北京:北京航空航天大学出版社,1992.endprint

猜你喜欢
串口单片机
浅谈AB PLC串口跟RFID传感器的通讯应用
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的便捷式LCF测量仪
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
Microchip推出两个全新PIC单片机系列
基于并行控制的FPGA多串口拓展实现