1、基于单片机的篮球计时计分器基于单片机的篮球计时计分器(完整资料)完整资料)(可以直接使用,可编辑 优秀版资料,欢迎下载)摘要摘要 单片机,亦称单片微电脑或单片微型计算机。它是把中央处理器(C)、随机存取存储器(AM)、只读存储器(ROM)、输入/输出端口(I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机.计算机的产生加快了人类改造世界的步伐,但是它毕竟体积大。微计算机(单片机)在这种情况下诞生了,它为我们改变了什么?纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的
2、各种智能 I卡、电子 宠物等,这些都离不开单片机。本设计是篮球计时计分器,主要在篮球比赛中用于记录整个赛程的比赛时间和显示甲、乙两队在比赛过程中的比分情况。该计时计分器有部分组成:一部分用来实现计时功能,其基本原理和定时闹相似;另一部分用来实现计分功能,其基本原理和计数器相似,只不过所要记录和显示的对象是按键按下的次数,每按下一次计数值加一.主控芯片采用 AT8C51,采用汇编语言进行编程,编程后利用 Keil uVison3 来进行编译,再生成的X 文件装入芯片中,采用 proteu软件来仿真,检验功能是否能够正常实现。该设计能够实现计时和计分功能,采用共阴极数码管进行动态显示,加分的部分用
3、按键来完成,每按一次发送一个计数脉冲,计数值加一.但是效果病不是很完美,计时显示部分有时候会出现不稳定的情况,通过对晶振和电容值调整后仍然没有改变效果,而且该设计最大遗憾是没有实现中场时交换比分和结束时进行报警的功能。目录目录 概述概述错误!未定义书签。发展背景错误错误!未定义书签。未定义书签。12 系统的功能错误错误!未定义书签。未定义书签。2 2 系统总体方案及硬件设计系统总体方案及硬件设计错误!未定义书签。2.1 系统组成错误错误!未定义书签。未定义书签。2。2 系统定时控制部件设计错误错误!未定义书签。未定义书签。2.3 系统的复位电路设计错误错误!未定义书签。未定义书签。.4 显示系
4、统的设计错误错误!未定义书签。未定义书签。3 3 软件设计软件设计错误!未定义书签。3。1 程序流程图错误错误!未定义书签。未定义书签。3。2 计时部分设计错误错误!未定义书签。未定义书签。3。3 加分部分设计错误错误!未定义书签。未定义书签。3。4 显示子程序设计错误错误!未定义书签。未定义书签。35 延时子程序设计错误错误!未定义书签。未定义书签。4 Prot4 Protusus 软件仿真软件仿真错误!未定义书签。4。1 不工作状态仿真图错误错误!未定义书签。未定义书签。4。2 计时、计分工作状态仿真图错误错误!未定义书签。未定义书签。5 5 课程设计体会课程设计体会错误!未定义书签。参考
5、文献参考文献 1515 附附 1 1 生成机器代码生成机器代码错误!未定义书签。附附 2 2 源程序代码源程序代码错误!未定义书签。附附 3 3 系统原理图系统原理图:错误!未定义书签。1 1 概述概述 1。1 发展背景 体育比赛计时记分系统是对体育比赛过程中所产生的时间、比分等数据进行快速采集记录、加工处理、传递利用的信息系统.根据不同运动项目的不同比赛规则要求,体育比赛的计时记分系统包括测量类、评分类、命中类、制胜类、得分类等多种类型.篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,足球比赛的计时记分系统是一种得分类型的系统。篮球比赛的计时记分系统由计时器、记分器等多种电
6、子设备组成。同时,根据目前高水平足球比赛要求,完善的足球比赛计时记分系统设备应该能够与现场成绩处理、现场大屏幕、电视转播车等多种设备相联,以便实现提高比赛现场感、表演娱乐观众等功能。1。系统的功能 随着科技的迅猛发展,单片机在计算机应用领域中起到了越来越重要的作用.单片机体积小,功能强,集成了微型机的各部件,大大缩短了系统内信号传送的距离,从而提高了系统的可靠性及运行速度。该系统主要是线以下两种功能:错误错误!计分:能同时显示甲、乙两队比分,最大计分数为99。能分别对甲、乙两队比分进行加分.错误错误!计时:从比赛开始时启动计时工作方式,初始时间为0,最大计时为99 分钟,经过修改后应该还能实施
7、计时暂停,还能设定为倒计时。错误错误!哨音提示:设定的比赛时间到了,能自动哨音提示比赛结束.系统系统总体方案及硬件设计总体方案及硬件设计 2系统组成 篮球比赛计分的准确性和计时的精确度是要求很高的,而单片机在这方面有着出色的表现。本系统采用频率为1 MH 的芯片,整个系统由按键、计时显示、计分显示等部分组成:该系统组成方框图如图1 所示:图1:系统原理框图 单片机是该系统电路的核心组成部分,系统的各种功能都是在单片机内通过编程来实现.单片机选用AME 公司的AT 51。AT1 是一个内含4 K 字节FLSH R(闪速存储器)、2 字节RAM 和32 条I/O 口线的 位单片微处理器。AT8C1
8、 的的X1(1 脚)和X2(8 脚)外接6HZ 晶振,为单片机提供时钟信号.晶振两引脚各串一个瓷片电容,容值为205P,用于提高晶振频率的稳定性。2。2 系统定时控制部件设计 定时控制部件是在规定的时刻发出各种操作所需的全部内部和外部控制信号,使各功能元件协调工作,完成指令所规定的功能。主要任务是产生一个工作时序,其工作需要时钟电路提供一个工作频率。MS内部有一个用于构成震荡器的高增益反向放大器,此放大器的输入端和输出端分别是XT1和XTA2,在XAL1和TL2上外接时钟源可构成时钟电路。单片机的生产工艺不同,时钟的产生方式也不同有内部和外部时钟产生两种时钟方式。按 钮 单 片 机芯 片 时间
9、显示 比分显示 C12u2C22u2X1CRYSTAL 图2 内部时钟产生方式 本系统采用的是内部时钟产生方式,如图2所示:在XTAL1和XT2两端跨接晶体或陶瓷谐振器,于内部反向器构成稳定的自激振荡器。其发出的脉冲直接送入片内的定时控制部件。2.系统的复位电路设计 P1.0P1.1P1.2C322pR17k5R37k5 图 3 上电加按钮电平复位 MCS5单片机通常采用上电复位、按钮电平复位、外部脉冲复位、上电加按钮电平复位、程序运行监视复位等方式.我采用的是上电加按钮电平复位,电路图如图所示,是上电自动复位与按钮电平复位的组合。上电复位利用电容充电来实现,即上电瞬间ST/Vpd端的电位与V
10、c相同,随着充电电流的减少,RT/Vpd的电位下降,最后被钳位在0伏,按钮电平复位,当按钮按下后,电源Vc同过电阻施加在单片机复位端ST/V上,实现单片机的复位.。4 显示系统的设计 根据系统设计要求,为了显示比赛的时间及比分,采用了8个段LED显示器,其中4个用于显示比赛时间,其余4个用于显示主队和客队的分数。P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.0P0.1P0.2P0.3P0.4P0.5P0.6P1.4P1.5P1.2P1.3P1.0P1.1P3.0P2.0P2.3P3.1P3.2P3.3P3.4P3.5P3.6P3.7P3.0P3.1P3.2P3.3P3.4P3.
11、5P3.6P2.1P2.2P3.0P3.1P3.2P3.3P3.4P3.5P3.6P2.0P2.1P2.2P2.3P0.7红队红队蓝队蓝队计时部分计时部分 图4 显示部分电路图 8位动态LED显示器由2个位并行的控制端口(PA72A0,P72P0)进行控 制,其中一个控制段选码,一个控制位选码.由于所有位的段选皆由一个I/O口控 制,因此,在任一瞬间;位LED显示器要么全部或多位显示同一个字符,要么只 在一个指定位上显示该字符,这取决于位选控制I端口的状态。可使显示器和各 位轮流依次显示一瞬间,在此瞬间,从段选口送出该位的段选码,如此循环反复,只要保证每秒钟对所有位的循环在0次以上,由于人眼的
12、视觉暂留效应,就会看到显示器的各位“同时显示各自的内容.3 3 软件设计软件设计 3.1 程序流程图 3。2 计时部分设计 MN:LCL FLSH LCL FLAS2 主程序采用长条转指令进入计时部分,第一步跳转将所有计数初值清零,再一次跳转进入计时循环.LAH1:STB IT0 ET EA V ONE,#0 OV T,00 MV THE,00 V FIVE,00 OV SIX,00 RET Y:M A,NE MOV,#I AB O 11H,A;将商放在1H 中 OV,B MOV 1H,A LCL DP ;调显示子程序 IN ONE OV A,ONE CJNE A,60,DAY;当累计到 60
13、 时,进一位 此程序为显示计时秒部分,首先对缓存区 ONE 清零,然后采用IV 指令,将其拆分成分别显示的十位与个位,并分别将两个内容送入不同缓存去,通过长跳转指令进入显示部分,当显示过后,再一次将显示秒的缓存区加一,然后与0相比,判断是否相等,当相等时程序顺序执行,程序进入显示分部分,若不等,程序返回,再次对秒位进行判断控制,实现循环.OV E,00 MO,ONE V,00 CLR IN TWO MOV A,TWO MO,DIV AB OV 21,A;显示分计数的十位 MOV A,B MO 2H,A CL S;调显示子程序 OV,TWO JE A,#9,DY1;当分累计到 6时向时进位 此段
14、为显示分的部分,通过秒的进位进行判断控制,当秒每累计到 60 次时,程序通过JNE 指令顺序执行,对分进行操作,同样通过除指令,分别送入不同缓存去,进行显示,并与 6相比,若相等程序顺序执行进入显示小时部分,若不等,程序跳转返回到秒位显示部分,继须等待 60 次.V TWO,0 IC THREE MOV A,HEE OV B,10 DV AB MOV 31H,A MOV A,MV 2H,A CALL DP;调显示子程序 OV,THREE JNE A,4,AY;当时累计到时,进入循环 MO NE,#00 M T,0 MV THRE,00 AMP MIN RET 此段程序为计时部分显示小时的部分,
15、当分位累计到60次时,程序顺序执行,对小时位进行操作,同样通过跳转进入显示程序,并与4相比,若不等,程序跳回显示秒位,等待其进位,从而等待分进位,再次判断与60关系,进入小时部分,从而进行循环,若相等,程序将所有秒,分,时的缓存区清零。并返回主程序。加分部分设计 CTV:LAL DISPLAY JN E1,1 JN SET2,S2 1:LCALL DELAY JB ET1,RETUE NC FIE LM DISPLA S2:LCALL DEAY J T2,RETUE INC SI LJMP DSPLA J:JB T1,REE LCL DISPLAY J:B ET,RTUE LALL DISPL
16、 TUNE:RE 加分部分,首先同过主程序部分的清零,对初值进行显示,并为零,然后通过JNB指令,判断是否有键按下,若有责跳转到指定部分,通过JB指令判断是否松开从而进行操作,若没有,程序将要显示加分的队的缓存区内容加一。并通过长跳转指令返回到显示子程序。3。显示子程序设计 DSP:MV,11 O DR,B MOC,+DTR CLR P1。0 O P0,;显示妙计数的十位 CAL DELA;调延时子程序 SE P1。0 MV,H MOC,A+DPTR CL P1。1 MOV P0,A;显示妙计数的个位 ALL DEAY1;延时子程序 SEB 11 MO A,21H MOV DPR,#TB MO
17、VC A,A+DT CLR P.2 MO P0,;显示分计数的十位 LCLL DL;调延时子程序 SETB P1 MOV,22H MOV A,AP CR P1。3 MV P0,A;显示分计数的个位 CLL LY3;延时子程序 SETB P.3 MO A,1H MOV PTR,#TA MOVC,A+PTR LR P1.4 MOV P0,;显示时计数的十位 LALL DELAY4;调延时子程序 T P1。V A,2H MOVC A,APTR CL P1.MV 0,;显示时计数的个位 LCALL ELAY5;延时子程序 ETB P1。LALL CTV RE 显示部分通过P0口外加上拉电阻进行显示,数
18、码管采用段共阴极数码管,通过查表指令进行显示,首先将要显示的缓存单元,送入累加器中,通过累加器进行查表,将要显示的数值存储起来,然后通过位选信号,将要显示的位的数码管打开,进行现实.并通过延时子程序进行延时,使其显示的数值稳定下来.然后再通过位选信号,将显示的数值关断,从而显示下一个数值。但当显示完一圈后程序跳出,等待下一个跳进来的指令,再次进行现实.35 延时子程序设计 DELA:MO R1,0EFH;延时子程序 :MOV A,R MOV R0,#0FEH AA:EC R JZ R0,DE R1 CJ A,,T RET 延时子程序采用DJNZ指令实现循环,首先对两个缓存单元送入不同数值,此处
19、设计时老是跳不出,经常出现死循环,后与同学一起商量,终于发现原来是跳转标志位出错了.程序中首先对其中一个缓存单元的数值减一,直到其减到零为止,程序进行下一步操作,对另一个缓存单元减一,并与相比,若不等则返回,继续将第一个缓存单元送入数值,然后重复上一次操作,直到第二个缓存单元与零相等,延时程序跳出。4 Pro4 Proeueu软件仿真软件仿真 41 不工作状态仿真图 P1.0P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.0P0.1P0.2P0.3P0.4P0.5P0.6P1.4P1.5P1.2P1.3P1.0P1.1P1.1P1.2P1.3P1.4P1.5P0.0P0.1P0.
20、2P0.3P0.4P0.5P0.6P3.0P2.0P2.3P3.1P3.2P3.3P3.4P3.5P3.6P3.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P2.1P2.2P3.0P3.1P3.2P3.3P3.4P3.5P3.6P2.0P2.1P2.2P2.3P3.0P3.1P3.2P3.3P3.4P3.5P3.6P0.7P0.7XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.2
21、3P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51C12u2C22u2X1CRYSTALC322p23456781RP1RESPACK-723456781RP2RESPACK-7红队加分红队加分蓝队加分蓝队加分红队红队蓝队蓝队计时部分计时部分R17k5R37k5LS1
22、SOUNDER 4.2 计时、计分工作状态仿真图 P1.0P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.0P0.1P0.2P0.3P0.4P0.5P0.6P1.4P1.5P1.2P1.3P1.0P1.1P1.1P1.2P1.3P1.4P1.5P0.0P0.1P0.2P0.3P0.4P0.5P0.6P3.0P2.0P2.3P3.1P3.2P3.3P3.4P3.5P3.6P3.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P2.1P2.2P3.0P3.1P3.2P3.3P3.4P3.5P3.6P2.0P2.1P2.2P2.3P3.0P3.1P3.2P3.3P3.4P3.
23、5P3.6P0.7P0.7XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A12
24、25P2.5/A1326P2.6/A1427U1AT89C51C12u2C22u2X1CRYSTALC322p23456781RP1RESPACK-723456781RP2RESPACK-7红队加分红队加分蓝队加分蓝队加分红队红队蓝队蓝队计时部分计时部分R17k5R37k5LS1SOUNDER 5 5 课程设计体会课程设计体会 经过将近两周的单片机课程设计,终于完成了我的足球计时计分器的设计,虽然没有完全达到设计要求,但从心底里说,还是高兴的,毕竟这次设计做了出来,高兴之余不得不深思呀!在本次设计的过程中,我发现很多的问题,虽然以前还做过这样的设计但这次设计真的让我长进了很多,单片机课程设计重
25、点就在于软件算法的设计,需要有很巧妙的程序算法,虽然以前写过几次程序,但我觉的写好一个程序并不是一件简单的事,举个例子,以前写的那几次,数据加减时,我用的都是CD 码,这一次,我全部用的都是 16 进制的数直接加减,显示处理时在用除法去删分,感觉效果比较好,有好多的东西,只有我们去试着做了,才能真正的掌握,只学习理论有些东西是很难理解的,更谈不上掌握。我做的是篮球比赛计时计分器,电路中 RP1 上拉电阻的目的是让计时显示器变得更亮,没有 r1 计时显示器不能点亮。而 RP2 上拉电阻是让计分显示器变得更亮,当去掉它时也可以,只是变得不太清楚而已,单片机的频率必须是 12MHz.从这次的课程设计
26、中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次课程设计中的最大收获。参考文献参考文献 1余发山单片机原理及应用技术.徐州:中国矿业大学出版社,2003.2佟云峰,等.单片机原理及其应用.重庆:重庆大学出版社,2004,1 3吴金戌,等.0单片机实践与应用北京:清华大学出版社,201,8 4刘瑞新。单片机原理及应用教程.北京:机械工业出版社,200.5聂毅。宏汇编语言程序设计教程。北京:电子工业出版社,198。6周航慈。单片机应用程序设计技术北京:北京航空航天大学出版社,202
27、.附附 1 生成机器代码生成机器代码:03000000006F5:00030000163200C12002D28D2AF107 :100230084F51E5FF:10033001050B4C775100E5107400E4052EA:10040E52075F0A85215F5220082D 50B:003004F531E5FF:10007300B417A5007005300012253 929F58012013D90E51263:100930093C95812012D291E290931:1000C29F5801202FD29E52293C29F580A:10B02CD23E53190189
28、294F58123:10C30049294E53293C95F58012015D29537:100D02E07F0A893CAFB0120113251:100000E5F09A1F:1002F2A155075F0A8493C22FB012184:10030013D2A2E5F03C23F501013D2A3226:1013079E98FE7FF1D8FD9B40F4294F:0120FF978A0188FD1900F62279FE9731:08013300648DFD1B0F6:1003B0229EFE978FE18D8F940F629F91:10014B0E978FE18D8FDB4F622
29、7F978FA:015B0018DFD9B006222D439097C:1001B0B20132091C0540000D41201120:117B009711000200D4209691200D4209703:0E18B00120D223F5BF66DD077F62A:000001F 附附 2 2 源程序代码源程序代码 SET IT P。ET2 BIT P1.ON EQU 0H TWO EQU 20H RE EQU 0H IVE QU 40H ;计分控制 IX EQU 5H ;计分控制 OG 0000H LJMP IN OG 03H LJP CTV AI:LCAL FLASH LCALL FL
30、SH2 FLA1:SEB IT0 SET EA O OE,00 V TW,00 MOV THRE,#0 O FIVE,#0 MO SI,#00 RET LASH2:A1:DAY2:DAY:MOV A,ON MOV B,0 DV MOV 1,A;将商放在 11 中 MV A,B O 12,A CALL DP ;调显示子程序 INC ONE MOV A,O CJE,#0,DA;当累计到 60 时,进一位 MOV E,00 M A,OE MOV A,#00 CLR INC WO MV A,TWO MV B,10 DIV A OV 21H,A;显示分计数的十位 O A,B MOV 2H,A CALL
31、DP;调显示子程序 MV A,TO CJNE A,#5,;当分累计到0 时向时进位 MOV TWO,00 I THR V A,HEE OV B,IV AB MV H,A V A,B MOV 32H,A LCAL DSP;调显示子程序 MOV A,THE CJN A,#23,DAY2;当时累计到4 时,进入循环 OV ONE,#00 MOV TW,0 M TRE,#00 AJM AIN RET DS:MOV A,H OV PT,T MOC A,A+PTR CLR 1。0 MOV P,A;显示妙计数的十位 LCALL DLAY;调延时子程序 SEB P1.OV A,12 MOV A,A+TR LR
32、 P1.1 V 0,A;显示妙计数的个位 LCALL DELAY1;延时子程序 SET 1.1 OV A,2H MOV DPTR,TA MVC A,ADPT CLR 1。2 MOV 0,A;显示分计数的十位 LAL DEY2;调延时子程序 ETB 1。2 OV A,22 MOV A,A+DPT R 13 O P0,A;显示分计数的个位 CALL DELAY;延时子程序 STB P1.MV A,1H M PTR,TA MOVC A,APTR CR P.P0,;显示时计数的十位 LCLL EL4;调延时子程序 E P1.4 MOV,32 MOVC A,+DPTR L P1。MOV P0,A;显示时
33、计数的个位 LCAL DLA5;延时子程序 ST P。5 LCAL C T DISLAY:MO A,FVE ;显示红队计分 MOV B,10 DV AB MOV A,A+DPT CLR P2。0 MOV P3,A LL DLAY LCA ELAY LL DELY SET P2。0 MOV,MOV A,ADTR R P2.1 MO P3,A LCALL DELY LLL ELA1 LCALL DLAY2 SETB 1 MV A,SIX ;显示蓝队计分 MOV B,0 IV B OVC,A+DPR L P22 OV,A ELAY LCLL L1 CALL ELA2 SET P2。2 MOV A,B
34、 MOC A,A+DPTR LR P2.3 MV,A LCAL EL LCALL DELAY LCLL ELAY2 ETB 2.3 T DEA:MOV 1,#0EH;延时子程序 T:O A,1 MOV 0,#0F R7,#0F AA:DC R JNZ R0,DEC R1 CN A,#00,T RET ELAY1:MV R,0EFFF;延时子程序 B:MOV A,R1 MOV R0,100000 CC:DEC 0 DJNZ R,CC DE 1 CJNE A,#00,B RE DELAY2:MV R,#0EFFH;延时子程序 D:MV A,1 MV R0,1000 E:D R DJNZ R0,EE
35、 DE 1 CNE A,#00,DD RET A3:OV,#0EFH;延时子程序 FF:MV A,1 MOV R0,#0FEH GG:DE R DJNZ 0,GG E R1 CJNE A,#00,FF RET DELAY4:MO 1,#0EFH;延时子程序 H:MOV A,R OV R,FEH I:C R0 DJZ 0,II DE R1 CNE A,#0,H RT DAY5:MOV R1,#0EFH;延时子程序 LL:MOV,R1 MOV,0FEH MM:DEC R0 JN R,M D 1 CJNE A,#0,LL ET C:LCL DISPAY JNB T1,S1 JN SET2,S2 S1
36、:LALL DEAY JB SE1,RTUNE INC FIVE LMP DISLY S2:LALL EAY SE2,RETU INC SI LJMP DISAY 0:JB SET1,REUN LCLL IPA 1:JB ST2,REUNE LCALL DPLAY RTNE:RET A:DB 3FH,6H,5BH,4FH,6,6DH,7H,H,7F,6FH 附附 3 系统原理图系统原理图:P1.0P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.0P0.1P0.2P0.3P0.4P0.5P0.6P1.4P1.5P1.2P1.3P1.0P1.1P1.1P1.2P1.3P1.4P1.5
37、P0.0P0.1P0.2P0.3P0.4P0.5P0.6P3.0P2.0P2.3P3.1P3.2P3.3P3.4P3.5P3.6P3.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P2.1P2.2P3.0P3.1P3.2P3.3P3.4P3.5P3.6P2.0P2.1P2.2P2.3P3.0P3.1P3.2P3.3P3.4P3.5P3.6P0.7P0.7XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.
38、01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51C12u2C22u2X1CRYSTALC322p23456781RP1RESPACK-723456781RP2RESPACK-7红队加分红队加分蓝队加分蓝队加分红队红队蓝队蓝队计时部分计时部分R1
39、7k5R37k5LS1SOUNDER基于基于 C C与单片机与单片机串口通信的投票器串口通信的投票器 李浩东李浩东0093100093104 4 周守悦周守悦 20200 031010123101012 一作品的设计概述 我们知道每年每个班都需要班委换届,有很多同学积极参加竞选,然而每一次竞选投票都是大家拿出一张纸,然后再纸上写上自己心目中班委的名字,然后交给监票读票记票,这个过程不仅大大浪费了大家的宝贵时间,还有可能出现漏票等情况,体现不了公平公正公开。本设计是通过按钮给班委竞选人投票,每个候选人都对应一个按钮,投票人如果想投票给某个人可以按下其对应按钮,每按下一次改竞选人的票数就会自动增加
40、 1,每个人只能按下一次,电脑显示屏将通过柱形图动态的呈现每个候选人获得票数竞争的情况以及通过框图显示总票数,不仅使得投票结果更加公开公正,而且也大大节省了大家的时间.本设计的创新点是通过柱形图动态显示整个投票过程,而不是直接显示到最后投票结果,更加体现公正公开。二作品的设计与分析 1.主要功能与分析 主要使用单片机和 PC 机之间的串口通信,在单片机硬件上设置七个按键,其中四个键是用来给 A,,,四个人投票的,这四个按键每按下一次就自动增,记录这四个按键按下的总次数u1,u2,nm,nu4,并把四个数按顺序不断循环通过串口发给 PC 机,PC 机通过串口把这些数据存储下来,并读出来,通过 C
41、#编程,把这四个人所获得的总票数在ctureox 控件上面的柱形图动态呈现出来,通过 time 控件,不断更新这个人所获得的票数,让投票人通过柱形图更加形象直观的看出每个被投票人的竞争情况,同时在柱形图下方有着这四个人获得总票数的真实数目。还有一个按键是票数清零,如果这次投票已经完成或者无效可以按下这个按键,此时 A,B,C,D 四个人的总票数将变成零。还有一个按键作用是停止投票,如果需要停止这次投票可以按下此键,这时候那四个投票的按键将不可用。最后一个按键的作用是继续投票,如需继续投票,可按此键。其系统设计图如下:数据传输 .串口通信规则 单片机与PC机为了可以进行通信,必须要遵守一定的通信
42、规则,这个共同的规则就是通信端口的初始化。通信端口的初始化有以下几项必须设置:()数据的传输速率 传输双方通过传输线的电压改变来交换数据,但传输线的电压改变的速度必须和接收端的接收速度保持一致,R2通常用于异步传输,即双方并没有一个可参考的同步 单片机 A B C D 清零 暂停 继续 PC 机 图像显示 时钟作为基准。由于没有一个参考时钟,双方所发送的高低电位到底代表几个位就不得而知了,要使得双方的数据读取正常,就要考虑到传输速率波特率,其所代表的意义是每秒钟所能产生的最大电压状态改变率,或者说是每秒钟可以振荡的次数.原始信号经过不同的波特率取样后,所得的结果完全不一样。取样速度只有原来的一
43、半时,信号被跳着取样,数据因此产生错误。因此通信双方获得相同的通信速度是首先要做的事情.(2)数据的发送单位 一般串行通信端口所发送的数据是字符类型的,若用来传输文件,则会使用二进制的数据类型。当使用字符类型时,通常使用SCI码,ASCI码中8个位形成一个字符.以实际的RS232传输来看,由于大多数应用只是发送文字码,因此只要个位就可以将CII码的1号字符表达出来,所有的可见字符都在这个范围内,所以只要个数据位就足够了.不同的情况下,会使用到不同的发送单位,但使用多少个位合成一个字节必须先行确定.(3)起始位及停止位 由于异步串行通信中并没有使用同步脉冲作为基准,故接收端完全不知道发送端何时将
44、进行数据的发送,而当发送端准备要开始发送数据时,发送端会在所送出的字符前后分别加上高电位的起始位(逻辑0)及低电位的停止位(逻辑),它们分别是所谓的起始位和停止位。当发送端要开始发送数据时,便将传输在线的电位由低电位提升至高电位,而当发送结束后,再将电位降至低电位.接收端会因起始位的触发(因电压由低电位升至高电位)而开始接收数据,并因停止位的通知(因电压维持在低电位)而确切数据的字符信号已经结束。(4)校验位的检查 为了预防错误的产生,因此使用校验位作为检查的机制;校验位是用来检查所发送数据正确性的一种核对码,其中又分成奇校验位和偶校验位两种方式,分别是检查字符码中 I 的数目是奇数或偶数。以
45、偶校验位为例,A 的 ASCII 码1001(二进制),其中 1 的数目是三个,因此校验位便是 1,使 1 的数目保持偶数。同理,校验位是奇校验位时,A的校验位便是,使 1 的数目保持奇数。3.串口通信协议 由于本设计主要从单片机串口发送数据,所以因此有关串口通信的原理的介绍都是围绕单片机讲解的。(1)0C51 串行口的控制寄存器(1.)特殊功能寄存器 SCO SC 是一个特殊功能寄存器,用以设定串行口的工作方式、接收/发送控制以及设置状态标志,字节地址为 98H.SCON 寄存器的各位定义如表-1 所示。位 7 6 4 3 2 1 0 字节地址:8H SM SM1 SM RE TB8 RB8
46、 T RI SCN 表 31 SCN 寄存器 SM0 和 SM为工作方式选择位,可选择四种工作方式,如表2 所示.SM SM1 方式 说明 波特率 0 0 移位寄存器 fo/12 0 1 10 位异步收发器(8 位数据)可变 1 0 2 11 位异步收发器(9 位数据)fsc/6或 foc/32 1 3 11 位异步收发器(9 位数据)可变 表-串口通信 4 种工作方式 SM2 为多机通信控制位,主要用于方式和方式 3。当接收机的 SM2=时可以利用收到的RB8 来控制是否激活(RB=时不激活,收到的信息丢弃;B1 时收到的数据进入,并激活 R,进而在中断服务中将数据从 SBU读走)。当 S2
47、=0 时,不论收到的 RB8 为 0 和 1,均可以使收到的数据进入 SBUF,并激活 R(即此时 RB8 不具有控制 RI 激活的功能)。通过控制 SM2,可以实现多机通信。在方式 0 时,S2 必须是 0.在方式 1 时,若M1,则只有接收到有效停止位时,RI 才置 1。RN 为允许串行接收位。由软件置 REN=1,则启动串行口接收数据;若软件置 RE=0,则禁止接收。TB8 用在方式 2 或方式中,是发送数据的第九位,可以用软件规定其作用。可以用作数据的奇偶校验位,或在多机通信中,作为地址帧/数据帧的标志位(在方式和方式 1 中,该位未用).RB8 用在方式 2 或方式中,是接收到数据的
48、第九位,作为奇偶校验位或地址帧/数据帧的标志位。在方式时,若M0,则 RB8 是接收到的停止位。TI,发送中断标志位.在方式 0 时,当串行发送第 8 位数据结束时,或在其它方式,串行发送停止位的开始时,由内部硬件使 T置 1,向 CPU 发中断申请。在中断服务程序中,必须用软件将其清,取消此中断申请。I,接收中断标志位。在方式 0 时,当串行接收第 8 位数据结束时,或在其它方式,串行接收停止位的中间时,由内部硬件使 RI 置 1,向 CPU 发中断申请。也必须在中断服务程序中,用软件将其清 0,取消此中断申请7。(12)特殊功能寄存器CON PCON 的字节地址为 8H,它的第位 SOD
49、是与串口通信波特率的设置有关的选择位。SOD(CON.)为波特率倍增位。在串行口方式 1、方式、方式 3 时,波特率与 SOD有关,当 SMOD=时,波特率提高一倍.复位时,SD=0。(2)8C5单片机串行口的工作方式(2.1)方式 0 设置 SON 寄存器的 S0、SM1 0 时,串行口工作于方式 0。此时,串行口为同步移位寄存器的输入输出方式。主要用于扩展并行输入或输出口。数据由 RX(P3.)引脚输入或输出,同步移位脉冲由XD(P1)引脚输出。发送和接收均为位数据,低位在先,高位在后。波特率固定为 fsc1。其中 fs为时钟频率.(.2)方式 1 设置CN 寄存器的 SM0、M0 时,串
50、行口工作于方式 1.方式 1 是 10 位数据的异步通信口。T为数据发送引脚,RD 为数据接收引脚,传送一帧数据的格式如图所示。其中 1 位起始位,8 位数据位,1 位停止位。用软件置 REN 为 1 时,接收器以所选择波特率的 1倍速率采样 RX引脚电平,检测到D 引脚输入电平发生负跳变时,则说明起始位有效,将其移入输入移位寄存器,并开始接收这一帧信息的其余位。接收过程中,数据从输入移位寄存器右边移入,起始位移至输入移位寄存器最左边时,控制电路进行最后一次移位。当 RI0,且M2=0(或接收到的停止位为 1)时,将接收到的 9 位数据的前 8 位数据装入接收 SBF,第 9 位(停止位)进入
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100