桥牌机设计 - 图文

更新时间:2024-01-01 00:18:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

四川师范大学本科毕业论文

全自动桥牌机设计

学生姓名 院系名称 专业名称 班 级 学 号 指导教师 完成时间

周琪俊 工学院

电气工程及其自动化 2008 级 1 班 2008180150 张晓逵 年 月 日

全自动桥牌机设计

内容摘要

桥牌是用英文Bridge(桥)的名字来称呼扑克牌的玩法,来源于英国莱斯特郡的一座古老的桥梁。随着时代的进步,科学技术的革新。各个领域都对科学技术进行开发和运用。桥牌作为一种高雅体育运动,越来越受到广大群众的喜爱。但是传统的桥牌计分过程十分的复杂,初学者很难理解桥牌的计分规则。这非常不利于桥牌运动的开展。因此开发一款全自动的桥牌机就有助于解决这一问题,不仅大大的简化的这一复杂的计分过程,更让参与者轻松惬意的体会到桥牌运动带给人们的无穷魅力。

本设计主要研究通过单片机设计全自动桥牌机实现定约叫牌后自动算分功能。首先分析了单片机的功能结构,然后提出了一个适合于单片机系统开发的方案,并提出了系统各个部分的解决方案。其次,对桥牌机实现这一功能的流程进行了设计,通过keil软件对单片系统的程序进行c语言编程。最后,通过protues仿真软件对设计提出的功能进行了仿真。

桥牌可以说是一项风靡全球,融汇多门学科知识的高智力竞技游戏。它与各类纸牌游戏一样,对手之间通过无尽变化的52张扑克牌进行竞技对抗。因其具有严谨和健全的竞赛规则、科学和系统的竞赛方法以及能够最大限度地减少运气对比赛结果产生影响的竞赛方式,得以使其成为最为普及的纸牌类竞赛项目。在西方被誉为 “至今为止,桥牌是智慧人士设计的一种最有乐趣,最聪明的游戏。”

关键词:桥牌 桥牌机 单片机 Keil Proteus显示电路 键盘电路 单片机

最小系统

- 2 -

Abstract

Bridge is the English Bridge ( bridge ) by the name of the poker game, derived from the British Leicestershire to the old bridge. With the progress of the times, science and technology innovation. Various areas of science and technology development and application. Bridge as an elegant sports, more and more by the broad masses of the favorite. But the traditional bridge scoring process is very complex, very difficult to understand bridge scoring rules. This is not conducive to bridge sports development. Therefore the development of a fully automatic bridge machine will help to solve this problem, not only greatly simplified the complicated scoring process, more let participants relaxed feel bridge brings people endless charm.

The design of the main research through the single-chip design of automatic bridge machine to achieve a bid automatically after the score function. First analysis of the function of single-chip structure, and then puts forward a suitable for single chip microcomputer system development plan, and puts forward the various parts of the system solution. Secondly, the bridge machine to realize the function of flow design, through the keil software for system on chip procedures for the C programming language. Finally, through Protues simulation software for design of the function of the simulation.

The bridge can be said to be a fashionable whole world, integrate many discipline knowledge of high intellectual games. It and various card games, competitors, through endless variations of the 52 cards were competitive against. Because of its strict and perfect competition rules, scientific and systemic method of competition as well as to minimize the chance to race results have implications for competition, to enable it to become the most popular solitaire race project. Known in the West as\so far, the bridge is wisdom person design is one of the most fun, the most clever game.\

Key words: bridge bridge machine single chip Keil Proteus display circuit,

keyboard circuit chip system

- 3 -

目录

内容摘要........................................................ - 2 - 1. 绪论 ........................................................ - 5 -

1.1. 课题研究背景、意义及特点 ............................... - 5 -

1.1.1. 课题研究背景...................................... - 5 - 1.1.2. 课题意义.......................................... - 6 - 1.1.3. 课题特点.......................................... - 6 - 1.2. 主要研究工作 ........................................... - 7 -

1.2.1. 了解本课题研究前沿................................ - 7 - 1.2.2. 掌握桥牌基本规则.................................. - 7 - 1.2.3. 查阅文献.......................................... - 7 - 1.2.4. 确定研究方向...................................... - 7 - 1.3. 论文的组织 ............................................. - 8 - 2. 桥牌相关规则综述 ............................................ - 8 -

2.1. 桥牌基本术语 ........................................... - 8 -

2.1.1. 搭档和方位........................................ - 8 - 2.1.2. 牌和发牌.......................................... - 8 - 2.1.3. 叫牌.............................................. - 9 - 2.1.4. 局况.............................................. - 9 - 2.1.5. 定约.............................................. - 9 - 2.1.6. 加倍和再加倍...................................... - 9 - 2.1.7. 打牌............................................. - 10 - 2.1.8. 清理墩数......................................... - 10 - 2.2. 桥牌计分规则 .......................................... - 10 -

2.2.1. 基本分........................................... - 10 - 2.2.2. 奖分............................................. - 10 - 2.2.3. 罚分............................................. - 11 -

3. 用户实际需求分析 ........................................... - 11 - 4. 桥牌机装置主干设计 ......................................... - 12 -

4.1. 装置主干模块 .......................................... - 12 - 4.2. 各模块的实现 .......................................... - 14 -

4.2.1. 键盘输入电路..................................... - 14 - 4.2.2. 显示电路......................................... - 23 - 4.2.3. 单片机算分程序................................... - 26 - 4.3. PCB与产品面板设计 .................................... - 33 -

4.3.1. PCB板设计 ....................................... - 33 - 4.3.2. 产品面板设计..................................... - 34 -

5. 展望与总结 ................................................. - 36 -

5.1. 展望 .................................................. - 36 - 5.2. 总结 .................................................. - 36 - 参考文献....................................................... - 37 - 致谢........................................................... - 38 -

- 4 -

全自动桥牌机设计

1. 绪论

桥牌可以说是一项风靡全球,融汇多门学科知识的高智力竞技游戏。它与各类纸牌游戏一样,对手之间通过无尽变化的52张扑克牌进行竞技对抗。因其具有严谨和健全的竞赛规则、科学和系统的竞赛方法以及能够最大限度地减少运气对比赛结果产生影响的竞赛方式,得以使其成为最为普及的纸牌类竞赛项目。在西方被誉为 “至今为止,桥牌是智慧人士设计的一种最有乐趣,最聪明的游戏。”

目前,在西欧北美等国家,桥牌已被列为高中的必修课程,我国许多高校也把其列为选修课。 第一届世界智力运动会于2008年 10月3日-18日在北京举行,桥牌项目是智运会的重点项目之一。现代桥牌被称为定约桥牌,是由一种叫“惠斯特”的纸牌游戏发展来的。与其他游戏相比,桥牌有以下的突出特点:

1) 打桥牌的乐趣主要在于少靠运气、多凭智慧而嬴牌。在打牌过程中,要

运用很多数学、逻辑学的知识,计算和记忆能力在桥牌中非常重要。 2) 桥牌对于改善人际关系和协调、配合能力大有益处。我们不难理解

“桥”字在桥牌中的重要,打好桥牌必须在搭档之间密切合作、齐心协力,才能实现目标。

3) 桥牌的基本过程类似于签订合同的全过程,所谓定约(contract)英语

中就是“合同”之意:投标、竞标,双方讨价还价,最后由一方签得合同,然后此一方为完成合同任务而制定计划,而另一方则为其设置障碍、阻止其完成计划。多劳多得和尽量减少损失等原则在桥牌中体现得非常充分。

4) 桥牌的趣味性还在于打桥牌时运气的成分不可避免,有时对手还会对你

实施心理战术。如果仅就一副牌而言,高手也不敢狂言一定赢初学者。另外,牌手在经过精密的计算和判断之后,以某种高级打法(如投入、挤牌等)完成了有难度的定约,那种快慰和兴奋是不言而喻的。 5) 桥牌当然还是一种高雅、文明的游戏。也有人称桥牌是“无声的战争”。

桥牌能够使您增长智慧、陶冶情操、完美性格、适应生活,帮助您遇事考虑全面、临危不乱,并改善您的人际关系??

1.1. 课题研究背景、意义及特点 1.1.1. 课题研究背景

当桥牌活动日益风靡世界的时候,人们开始对它的起源进行探讨。桥牌是由扑克牌发展而来的,只不过少两张王而已。那么扑克牌又是由谁最先发明的呢?公认的说法是,扑克牌的故乡在中国,它起源于中国古代的叶子戏。

叶子戏产生于中唐时代,距今已有1200年的历史。宋代大文豪欧阳修在他的《归田录》中说:“唐人藏书,皆作卷轴,其后有叶子,其制似今策子,凡文字有备检用者,卷轴难数,故以叶子写之。”这就是说,叶子起初象今天夹在书中的文字索引条一样,供检索卷轴中的内容用,后来文人们用这些叶子条条来做

- 5 -

文字游戏,渐渐发展为叶子戏。在中国“叶子戏”被逐渐演变成“推不倒的长城”麻将牌。而伟大的旅行家马可—波罗既从中国带走了东方文明的信息,也把叶子戏带到了欧洲。

叶子戏被传入欧洲不久,就被加以改造而演变为纸牌并广为流传。现代形式的扑克牌是由法国人设计的,四种花色分别代表一年中的四季,总和张数代表一年的52个星期,所有牌上数字总和为一年的365(4)天等。现代桥牌被称为定约桥牌,是一种叫“惠斯特”的纸牌游戏发展而来的。

桥牌是一种数字性概念很强的纸牌游戏。分两个阶段玩打——叫牌与打牌。桥牌不仅是一种饶有兴趣的游戏,而且还可以锻炼记忆力,增强独立思考能力,发挥紧密协作、团结一致的精神。把桥牌活动作为业余消遣,是一种积极性的休息,有助于消除劳动后的疲劳,换来旺盛的工作精力,并丰富文体生活。

现代桥牌的玩法有很多,计分也很复杂。如果了解了桥牌的玩法和规则就能体会到桥牌运动的魅力。 1.1.2. 课题意义

我选择这个课题的目的是:

首先,通过了解桥牌比赛和计分的基本规则,设计出能够用于桥牌比赛的叫牌显示、计分、总分的全自动桥牌机装置。而至于桥牌的发牌打牌过程由人工完成,该装置不予考虑。

再次,目前市场上还没有一台专门为桥牌设计的桥牌机,市面上有一些公司生产的只能实现随机的发牌功能,或者是纯粹的桥牌网页游戏。而并没有专门为桥牌运动比赛而设计的微处理器,不能对桥牌比赛进行实时的智能计分,并且没有联网功能。

所以在国际的比赛中,大多数还是人工计分,如果在参加人数很多的情况下,还是会耗费大量的人力物力去组织、经营比赛。这样一来不利于桥牌运动在社会的各个阶层开展和普及。为了实现整个桥牌比赛的智能化和为了让参与者近距离体验桥牌运动的魅力,为此我将对此进行研究,实现一种全自动的桥牌的机,大大的简化组织比赛的难度。让更多的人参与到桥牌运动中来,改善人们的人际关系和协调配合能力。本设计研究的重点就是利用现有的成熟的单片机理论和相关技术,设计开发符合桥牌规则的智能系统,为广大师生提供一个线下进行桥牌比赛的智能算分工具。本设计的研究成果具有很多进一步开发设计的潜力。此设计只是为桥牌比赛提供了一个基础的设计模型。可以进一步的开发,考虑更多的实际因素,为其商业化奠定基础。

本设计研究的思路是,首先分析了解桥牌的规则,包括叫牌规则,计分规则。在纸上简化计分过程,统计计分步骤,奖分规则。为在c语言上实现运算提供基础保障。然后利用技术成熟的51系列的单片机对既定的功能进行仿真实现。包括单片机的定时中断技术,LCD液晶显示屏静态显示技术,3*4矩阵键盘的扫描技术等。最重要的是采用单片机的c语言编程对功能的实现部分。最后利用keil软件编写c语言程序,并通过protues单片机仿真实现既定功能。 1.1.3. 课题特点

由于桥牌可以说是一项风靡全球,融汇各门学科知识的高智力竞技的游戏。在打牌过程中,要运用很多数学、逻辑学的知识,计算和记忆能力在桥牌中非常重要。所以该课题的研究是否符合社会发展、教育事业发展的需要,是否有利于提高教育质量,促进各个不同社会群体全面发展。

该选题具有科学的现实性。选题的现实性,集中表现为选定的问题要有科学

- 6 -

性,指导思想及目的明确,立论根据充实、合理。

该选题具有具体明确性。该选题由风靡全球的桥牌运动引出,结合实际要求设计出在桥牌中关于叫牌,计分,总分的制动装置。所以该选定的研究问题的方向是具体的,界限是清晰地,这就避免了研究问题方向的范围过大,内容太笼统。只有对选题有清晰透彻的了解,才能为建构指导研究方向的参照系提供最重要的依据。

该选题研究方向具有新颖,有独创性。目前市场上还没有一台专门为桥牌设计的桥牌机,市面上有一些公司生产的只能实现随机的发牌功能,或者是纯粹的桥牌网页游戏。而并没有专门为桥牌运动比赛而设计的微处理器,不能对桥牌比赛进行实时的智能计分。

该选题要还具有可行性。可行性集中表现在以下两个方面:客观条件,主观条件。客观条件是指除必要的资料、设备、时间、经费、技术、人力、理论准备等条件外,还有科学上的可能性,这就是恩格斯指出的:“我们只能在我们时代的条件下进行认识,而且这些条件达到什么程度,我们便认识到什么程度。”主观条件是指研究者本人原有知识、能力、基础、经验、专长,所掌握的有关这个 的材料以及对此课题的兴趣。 1.2. 主要研究工作

1.2.1. 了解本课题研究前沿

目前市场上还没有一台专门为桥牌设计的桥牌机,市面上有一些公司生产的只能实现随机的发牌功能。而并没有专门为桥牌运动比赛而设计的微处理器,不能对桥牌比赛进行实时的智能计分。所以目前在国际的比赛中,大多数还是人工计分,如果在参加人数很多的情况下,还是会耗费大量的人力物力去组织、经营比赛。这样一来不利于桥牌运动在社会的各个阶层开展和普及。

为了实现整个桥牌比赛的智能化,和为了让参与者近距离体验桥牌运动的魅力,为此我将对此进行研究,实现一种全自动的桥牌的机,大大的简化组织比赛的难度。让更多的人参与到桥牌运动中来,从而让更多的人享受到桥牌运动中的无限乐趣。

1.2.2. 掌握桥牌基本规则

桥牌由四个人来完成游戏,两人为一组对另一组,分别坐在东、南、西、北的位置上。坐南、北的两人为一方,称南北方;坐东、西的两人为一方,称东西方。桥牌游戏中所用的牌就是普通的去掉大、小王的52张扑克牌,52张牌平均分配,每人13张。共分梅花、方块、红心、黑桃四个花色。四种花色有高低之分,按照英文开头字母的顺序排列而成,即梅花(Club)为C,方块(Diamond)为D,红心(Hearts)为H,黑桃(Spade)为S。每一种花色有十三张牌,顺序如下:A(最大)、K、Q、J、10、9、8、7、6、5、4、3、2(最小)。还有一种“花色”叫无将(NT),就是没有将牌(主牌)的意思。桥牌包含了四个环节分别是:发牌、叫牌、打牌、总分。发牌、叫牌、打牌都是按照顺时针方向进行。桥牌的计分规则相当复杂,这就是现代桥牌多采用人工计分的原因,关于计分规则将在后文中详细讲解,这里不在详述。 1.2.3. 查阅文献

1.2.4. 确定研究方向

在研究该课题时,由于该课题的实践性,灵活性极强,因而在实际研究的过程中遇到了不少疑难问题。这些问题包括桥牌入门的基本规则,真实桥牌比赛包括哪些环节,桥牌计分基本规则,实现计分电路的方案以及计分总分电路的程序

- 7 -

设计等等。通过与老师,同学的沟通探讨,克服若干问题,使得设计趋于完善。 1.3. 论文的组织

本文是围绕着如何设计和实现全自动桥牌机的叫牌显示、计分,及其总分各个功能而组织的。

首先在第一章绪论部分介绍了有关桥牌的相关信息以及目前市场上关于桥牌运动的发展前景;然后将在第二章着重对桥牌相关规则进行讲解;在第三章分析实际生活中用户对桥牌机功能的需求;在第四章重点讨论桥牌机主干电路的设计及各模块的实现问题;其次将在第五章讲解相关器件的选型与参数的设定;最后在第六章中对今后桥牌机的研究工作和研究方向作出了展望。

2. 桥牌相关规则综述

2.1. 桥牌基本术语 2.1.1. 搭档和方位

四个人打桥牌,两人为一组对另一组,分别坐在东、南、西、北的位置上。需要注意的是这里的东西南北方位并不不是实际的地理方位,而是比赛过程中人为规定的方位,因此此方位可与地理自然方位相同或不同。坐南、北的两人为一方,称南北方;坐东、西的两人为一方,称东西方。如图所示:

图1 桥牌机方位

2.1.2. 牌和发牌

桥牌比赛中所用的牌就是普通的去掉大、小王的52张扑克牌。共分梅花、方块、红心、黑桃四个花色。四种花色有高低之分,按照英文开头字母的顺序排列而成,即梅花(Club)为C,方块(Diamond)为D,红心(Hearts)为H,黑桃(Spade)为S。每一种花色有十三张牌,顺序如下:A(最大)、K、Q、J、10、9、8、7、6、5、4、3、2(最小)。还有一种“花色”叫无将(NT),就是没有将牌(主牌)的意思。

发牌时规定北家为第一副牌的发牌人,以后每副牌按顺时针方向轮换发牌人。

发牌时,首先由发牌人右手方切牌,再从发牌人左首开始也按照顺时针方向

- 8 -

依次将52张牌平均分配,每人13张。发牌人将最后一张牌牌面向上,同时规定该牌张花色为将牌(trump),其他花色为副牌花色。 2.1.3. 叫牌

发牌之后、出牌之前要进行叫牌。叫牌要用特定的符号和用语来进行。按规定由发牌者首先叫牌,根据牌点的高低,发牌者可叫也可不叫(Pass),此后,再由他的下家(左手方)叫牌,依次顺时针轮流进行。

如果四家全都不叫,这副牌就宣告作废,由下家重新发牌。

当一家开叫后,任何一家可以根据花色类别的次序在更高水平上争叫,只要在前一家同类墩数上叫更高一个数或在更高一类(花色或无将)上叫同一墩数均可。类别的排列如下,无将(最高)、黑桃、红心、方块、梅花(最低)所以叫一个黑桃比叫一个红心高,叫一个梅花比叫一个无将高。直到三家不叫表示承认为止。叫得最高的那个花色就是将牌花色(或无将),而该级别的数字就是定约的水平,两者合称定约。

叫牌的目的是使同伴之间互通牌情,以便找到最佳定约,或者干扰对方选择出最有利的定约,以此达到战胜敌方的目的。 2.1.4. 局况

为了给游戏的双方创造较为复杂的形势,从而让牌手能够更好地发挥出自己的水平,桥牌活动特意设置了“局况”。

有局的一方胜则多得分,败则多输分,而无局的一方则又可以利用败了输分少这一条件与对方竞争。有局方和无局方的不同奖分和罚分(记分表)。

桥牌的有局和无局是人为规定的,不可变更。每副牌都有固定的牌号、发牌人、局况。

通常,人们用“―”代表双方无局,NS代表南北有局,EW代表东西有局,B代表双方有局。 2.1.5. 定约

所谓定约,是指经过叫牌最后由一方确定经另一方同意的一个叫牌级数协定。确定定约的一方称定约方,其宗旨是要完成定约;同意的一方称防守方,其目标是击垮敌方的定约。

定约分有将定约和无将定约两种。有将定约是确定某一花色为将牌。将牌除可以在本花色中赢墩外,还可以将吃其他三门花色(假如没有这个花色的话)。

无将定约就是没有将牌的定约,其输赢只根据同一花色中的每一张牌的大小来比较。(假如你没有这个花色,只好出其他花色,这称为垫牌,不论大小,都不能赢墩)。

定约又分成局定约和不成局定约,定约分数满100分的,叫做成局定约,定约分数不足100分的,叫做不成局定约。两者的奖分和罚分都不一样。有关定约分将在后面详细讲解。 2.1.6. 加倍和再加倍

加倍是叫牌过程中经常出现的一个名词,它的原意为防守方的一家认为定约方的定约肯定会被己方击败,他就叫“加倍”以示惩罚。现在在加倍的含义已经被引伸为各种意义,不再单独作为惩罚而用。

如定约方对防守方所叫的“加倍”不以为然,相信己方仍有把握完成定约时,可叫“再加倍”来惩罚加倍方。再加倍定约,定约方的得失分均按四倍(基本分乘以4)计算。加倍的符号用“X”表示,再加倍的符号用“XX”表示。

加倍只可以对敌方的叫品进行,而再加倍只可以对敌方的加倍进行。

- 9 -

加倍和再加倍与定约人的定约得失分密切相关,尤其是本来不够成局(基本分不足100分)的定约,加倍或再加倍后而达到成局时,得分相差会超过500分,失分相差一倍。因此使用加倍及再加倍都要特别慎重。 2.1.7. 打牌

一个定约(无将或有将)在叫牌时被确定之后,防守方位于庄家左手的一家称为首攻人,也就是由他打出第一张牌。

首攻人的下家在首攻实现后将自己的牌全部摊开,按同花色摆成四列,此家称为明手。

明手的对家是庄家(又称定约人、暗手),他负责打明、暗两手的牌。明手出牌后,就轮到首攻人的同伴出牌,最后轮到定约人出牌。至此,桌上共有四张出过的牌,每家一张,称为一墩牌。

每家必须随出牌者出同花色的牌,如手中已无这用花色,则可用将牌(任何一张将牌都大于大于种花色的牌)将吃或垫掉一张闲牌。在一墩牌里,如果有将牌,则最大的将牌是赢牌。

第二轮的出牌由赢得第一墩的那家先出,其它仍依顺时钟方向出牌,直至十三张牌全部出完。 2.1.8. 清理墩数

墩牌打完后,定约人数清实际所得的墩数,发牌人的目标是赢取7墩以上,假设赢取7墩可得1分,那么每多一墩再加一分,以此类推。反之每少一墩将减一分。 累计多副牌的打牌得分决定最后比赛的胜负。看定约是正好完成,还是超墩或宕掉。然后计算这副牌的得分。 2.2. 桥牌计分规则

首先需要说明的是桥牌的分数由以下几部分组成:基本分,奖分和罚分。下面文章中将对这三部分一一详细地进行讲解。 2.2.1. 基本分

红桃和黑桃(S/H)每墩 30分,方片和草花(D/C)每墩 20分,无将(NT)第一墩40分,以后每墩30分。定约被加倍或再加倍,墩分分别按2倍或4倍计算。所以定约方完成定约,可得以下基本分:

有将定约 未加倍 加倍 再加倍 梅花和方块每墩 红心和黑桃每墩 无将定约第一墩 第二墩起每墩

20 30 40 30

40 60 80 60

80 120 160 120

2.2.2. 奖分

1) 超墩奖分:未加倍,超墩奖分与相应墩分同;加倍,无局时,每墩100

分;有局时,每墩200分;再加倍,无局每墩200分,有局每墩400分 2) 部分定约奖分:完成部分定约,无论局况如何,奖分一律50分。 3) 成局定约奖分:无局方奖分300分,有局分奖分500分一个定约。给予

成局奖分,则不再给予部分定约奖分

4) 满贯定约奖分:任何满贯定约,定约方在获得成局定约奖分的基础上,

额外再获得满贯定约奖分;(奖分=成局奖分+满贯奖分) 小满贯(赢墩数为12):无局方奖分500分,有局方奖分1000分 大满贯(赢墩数为13):无局方奖分750分,有局方奖分1500分

- 10 -

void delay(uint x) {

uchar y;

for(x;x>0;x--)

for(y=112;y>0;y--); }

3. 小结

以上只是为了讲解键盘电路原理而引入的电路与程序代码。实际装置中的电路原理图,与程序代码如下:

桥牌机叫牌键盘内部结构布局如图所示:有16个按键组成,在单片机中正好可以用其中一个P口实现16个按键功能,这种形式在单片机系统中也最常用。

C71.0uC60.1u651213674HC04P2.0P2.1P2.2P2.3P3.217161514U4KBMOSCDAOEABCDMM74C922X1X2X3X411xa210xb2xc28xd27ye2yf2yg2yh2U3:C5U3:D13Y1Y2Y3Y412341274HC04YG2YH2K03K13K23K33YE2YF215K4326K5337K634XA2无将K73XB2黑桃K83红桃K93草花KA3方块KB3XC2加倍KC3再加倍KD3不叫KE3删除KF3XD2 图8

我们在设计中使用了MM74C922芯片。MM74C922是一款4*4键盘扫描IC,它可以检测到与之相连4*4键盘的按键输入,并通过数据输出口将按键相应的编码输出。其引脚图如图所示:

- 16 -

图9

MM74C922引脚说明: ① Y1-Y4(脚1~脚4):44键盘第一列至第四。

② X1~X4(脚11、10、8、7):44键盘第一行至第四行。

③ DOA~ DOD(Dataout A~D,脚14~17):按键之BCD码输出,其中DOA为LSB,DOD为MSB。

④ VCC(脚18):电源脚,+3V~+15V。 ⑤ GND(脚9):接地管脚。

⑥ OSC(Oscillator,脚5):键盘扫描电路之频率所需外加电容的连引脚。 ⑦ KBM(Keyboard Mask,脚6):内部消除开关弹跳电路所外加电容的引脚。

⑧ OE(Output Enable,脚13):芯片致能脚,接低电位可使芯片致能。 ⑩ DA(Data Available,脚12):数据有效输出脚。任一按键按下时,此脚位会输出高电位,按键释放后此脚又会恢复为低电位。

MM74C922对各按键的响应如表所示:

图10

- 17 -

在本设计中,智能桥牌机输入键盘的4条行线、4条列线分别连接到MM74C922的X1-X4、Y1-Y3引脚,MM74C922的数据输出口与单片机的P2口相连,MM74C922的DA引脚经过一个非门连接到单片机的/INT0脚,当MM74C922检测到键盘输入时,DA产生高电平,与之相连的/INT0检测到低电平,给单片机一个中断,单片机从P2口的低四位读入键盘上按下的键的值。

桥牌机算分键盘内部结构布局如图所示:有16个按键组成,在单片机中可以用其中一些P口实现16个按键功能,这种形式在单片机系统中也最常用。

1P0.0P0.12P0.23P0.34K31K01K11K215P0.4P0.56P0.67P0.78K71K41K51K619P2.6P2.710P3.011P3.112KB1K81K91KA113P3.7有局P2.5得分P3.3KC1KD1KE1KF1 图11

键盘输入检测程序设计

这里需要运用到单片机的中断技术。MCS-51中断系统有5个中断请求源: ① /INT0---外部中断0请求,低电平有效。通过P3.2引脚输入。 ② /INT1---外部中断1请求,低电平有效。通过P3.3引脚输入。 ③ T0---定时器/计数器0溢出中断请求。 ④ T1---定时器/计数器1溢出中断请求。 ⑤ TX/RX---串行口中断请求。当串行口完成一帧数据的发送或接收时,便请求中断。

根据本设计的情况,选择的是外部中断0(/INT0)的中断请求源。当有键按下时,单片机响应外部中断0,转入外部中断0中断处理函数,在中断处理函数中完成对按键的判断,以进行下一步的程序处理。

中断允许寄存器IE的相关控制位是:

EA:全局中断允许位,要想打开任何中断,EA都必须为1.然后再允许某个特定的中断。

ES:串行口中断允许。ES=1时,串口接收或者发送完成数据以后会引起中断(TI=1,或者RI=1)

ET1:定时计数器1中断允许。ET1=1时,当定时计数器1计数满,溢出后引起中断,可在中断函数中处理定时器。

EX1:外部中断1允许位。EX=1时,外部条边沿(或者电平)中断信号来后,

- 18 -

会引起外部中断,可在外部中断函数中处理事件。

ET0/EX0功能跟上面一样,只是换了个定时器或者外部中断。

键盘输入值扫描系统。即把相应的键盘按键通过按键值函数转换成数值,便于后面程序的使用。

/**********键值转化为键盘上按键值函数*************/ char translate(int keycode) {

switch(keycode) {

case 0:

return '4'; break; case 1:

return 'n'; break; case 2:

return 'd'; break; case 3:

return 'w'; break; case 4:

return '3'; break; case 5:

return '7'; break; case 6:

return 'c'; break; case 7:

return '/'; break; case 8:

return '2'; break; case 9:

return '6'; break; case 10:

return 'h'; break; case 11:

return '*';

- 19 -

break; case 12:

return '1'; break; case 13:

return '5'; break; case 14:

return 's'; break; case 15:

return '+'; break; } }

下面是外部中断0的处理函数:

/*********************外部中断0处理函数***********************/ void INT_0(void) interrupt 0 using 0 {

key=translate(P2&0x0f);

if(key<='7'&&key>='1') /*判断按下的键是否为数值*/ {

num=(key-'0'); lcd_pos(b);

x=num; /*按下的定约阶数*/ display(num); b++;

} else {

switch(key) /*叫牌*/ {

case 'n':

if(t<=5) { u=5;

lcd_pos(b); write_data(dis1[0]); b++;

write_data(dis1[1]); b++; b++;

if(b>=19&&b<=21){b=0x40;}

- 20 -

下面是LCD写指令函数:

/***********LCD写指令函数*************/ void write_com(char command) {

RS=0; //写指令 R_W=0; //读

EN=1; //使能信号开

P1=command; //将数据送入p1口 EN=0; //使能信号关 check_LCD(); //检测忙 }

还有LCD清屏函数。

/**********LCD清屏函数**********/ void clearLCD() {

write_com(0x01); }

最后就是LCD显示函数:

/**********LCD显示函数**********/ void display(long a) {

long temp,b,c=-1; int lenth=1,i,j; if(a<0) {

a=a*c;

write_data('-'); } temp=a;

while((temp=temp/10)!=0) {lenth++;}

for(i=lenth;i>0;i--) {b=1;

for(j=0;j

write_data(0x30+a/b); a=a%b; } }

4.2.3. 单片机算分程序

本设计的运算模块由一片AT89C51单片机控制。单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,

- 26 -

通过使用单片机编写的程序可以实现高智能,高效率,以及高可靠性。因此我们采用单片机作为智能桥牌机的主要功能部件,可以很快地实现运算功能。

单片机最小系统原理图如图所示:

C1U130pF19XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617p0.0p0.1p0.2p0.3p0.4p0.5p0.6p0.7p2.0p2.1p2.2p2.3BUZZERp2.5p2.6p2.7p3.0p3.1p3.2p3.3ENRWRSp3.7X1CRYSTALC2C330pF18XTAL29RSTR11k10u293031PSENALEEAR210kDB01DB12DB23DB34DB45DB56DB67DB78P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51 图13

本智能系统的单片机最小系统实现的功能主要如下: ① 能够运行系统的程序。

② 用户可以复位单片机(本设计主要实现系统清0的功能)。

③ 具有相对强大的外部扩展功能(可以根据用户的实际需求进行系统升级扩展,以满足用户新的需要)。

单片机的复位方式有上电自动复位和人工复位方式两种,根据本设计的需求,用户可以在输入输出发生错误的时候采用按键复位的方式重启系统以此达到清0的效果。所以本设计采用人工复位的方式,按一下开关就会在RST端出现一段时间的高电平,使单片机复位。电容和电阻的参考值是C=22uf、R1=200Ω、R2=1kΩ。

前面我们已经了解了桥牌的分数由以下几部分组成:基本分,奖分和罚分。下面文章中将对这三部分一一用程序代码进行实现。

运算流程图如下图所示:

- 27 -

图14

基本分

红桃和黑桃(S/H)每墩 30分,方片和草花(D/C)每墩 20分,无将(NT)第一墩40分,以后每墩30分。定约被加倍或再加倍,墩分分别按2倍或4倍计算。所以定约方完成定约,可得以下基本分如下表所示:

表7

有将定约 梅花和方块每墩 红心和黑桃每墩 无将定约第一墩 第二墩起每墩 程序代码: #include #include void suan() {

if(y-(x+6)>=0) {

未加倍 20 30 40 30 加倍 40 60 80 60 再加倍 80 120 160 120 - 28 -

uchar e;

long dmg,emg,sum,sum1,sum2;

if(j2==1) {e=3;} //倍数设置 if(j1==1) {e=1;} if (j1==0&&j2==0){e=0;}

if(n2==0) {dmg=1000;emg=500;}//大满贯和小满贯奖分设置 else {dmg=1500;emg=750;}

if(u>=3) {sum1=x*30;} //未加倍的基础分 else {sum1=x*20;}

if(x>=1&&u==5) {sum2=10;} else {sum2=0;}

sum= e*(sum1+sum2)+sum1+sum2 //sum表示基本分

}

} 1. 奖分

1) 超墩奖分:未加倍,超墩奖分与相应墩分同;加倍,无局时,每墩100

分;有局时,每墩200分;再加倍,无局每墩200分,有局每墩400分 #include #include

long x,y,sum8 //x,y分别表示叫品阶数,赢墩数;sum8为超墩奖分 int cha;

cha=y-(x+6); //超出墩数

if(n2==1) //超墩奖分 {

if(j1==1){sum8=200*cha;} if(j2==1){sum8=400*cha;} if(j1!=1&&j2!=1) {

if(u>=3){sum8=30*cha;} if(u<3){sum8=20*cha;} } }

if(n2==0) {

if(j1==1){sum8=100*cha;} if(j2==1){sum8=200*cha;} if(j1!=1&&j2!=1) {

if(u>=3){sum8=30*cha;}

- 29 -

if(u<3){sum8=20*cha;} } }

2) 部分定成局定约奖分约奖分与:完成部分定约,无论局况如何,奖分一

律50分。完成定约时无局方奖分300分,有局分奖分500分一个定约。给予成局奖分,则不再给予部分定约奖分 #include #include

long x,y //x,y分别表示叫品阶数,赢墩数 void suan() {

if(y-(x+6)>=0) {

uchar e;

long dmg,emg,sum,sum1,sum2,sum3,s; if(j2==1) {e=3;} //倍数设置 if(j1==1) {e=1;} if (j1==0&&j2==0){e=0;}

if(n2==0) {dmg=1000;emg=500;}//大满贯和小满贯奖分设置 else {dmg=1500;emg=750;}

if(u>=3) {sum1=x*30;} //未加倍的基础分 else {sum1=x*20;}

if(x>=1&&u==5) {sum2=10;} else {sum2=0;}

if((e*(sum1+sum2)+sum1+sum2)>=100) //成局定约奖分 {

if(n2==0) {sum3=300;}

else{sum3=500;}

} //未成局奖分 else{sum3=50;} }

3) 满贯定约奖分:任何满贯定约,定约方在获得成局定约奖分的基础上,

额外再获得满贯定约奖分;(奖分=成局奖分+满贯奖分) 小满贯(赢墩数为12):无局方奖分500分,有局方奖分1000分 大满贯(赢墩数为13):无局方奖分750分,有局方奖分1500分 #include #include

long x,y //x,y分别表示叫品阶数,赢墩数 long dmg,xmg, ,sum4,sum5;

if(x==7&&y==13) //大满贯得分 {

sum4=dmg;

- 30 -

算分器面板设计

图17

5. 展望与总结

5.1. 展望

虽然本次设计完成了桥牌机的一些基本功能设计,尤其是对桥牌智能计分总分的设计.但这对于现实生活中的桥牌比赛的功能需求还远远不够.

所以我对今后的桥牌机的研制前景有以下几点期望:

实现真实的计算机叫牌.参赛人员通过键盘输入进行计算机程序智能叫牌.用这种叫牌方式来替代传统叫牌的好处是杜绝有些队友之间在叫牌时利用双方眼神的交流或语调高低的暗示进行作弊.

实现远程的数据传送.通过远程的数据传送,将数据从各个相距甚远的比赛现场传回数据终端,在数据终端进行积分总分,从而可将不同地点的人组织起来进行桥牌比赛,从而更有利于桥牌文化的推广。 5.2. 总结

在这段繁忙的时间里,自己努力专心地进行着毕业设计工作。最后虽然和指导老师所要求的设计内容实现的功能还有一定的差距,但是自己确实也尽力去完成了本次设计。

通过这次实践,我了解了单片机的用途及工作原理,熟悉了单片机程序设计及的设计步骤,锻炼了工程设计实践能力,培养了自己独立设计能力。此次毕业设计是对我专业知识和专业基础知识一次实际检验和巩固,同时也是走向工作岗位前的一次热身。

毕业设计收获很多,比如学会了查找相关资料相关标准,分析数据,提高了自己的绘图能力,懂得了许多经验公式的获得是前人不懈努力的结果。同时,仍有很多课题需要后辈去努力去完善。

但是毕业设计也暴露出自己专业基础的很多不足之处。比如缺乏综合应用专业知识的能力,对材料的不了解,等等。

这次课程设计通过自己的努力终于顺利完成了,在设计中遇到了很多问题,最后在张晓逵老师的辛勤指导下,终于迎刃而解,在此我表示感谢!

- 36 -

参考文献

[1]《单片机原理于C51程序设计基础教程》 张欣 孙宏昌 尹霞 编著 清华大学出版社

[2]《桥牌入门》 《桥牌入门》编写组 蜀蓉棋艺出版社

[3]《51单片机C语言常用模块与综合系统设计》 于永 戴佳 刘波 编著 电子工业出版社

[4]《电子技术基础(模拟部分)》《电子技术基础(数字部分)》康光华编著 高等教育出版社

[5]《单片机课程设计实例教程》 杨居义编著 清华大学出版社

- 37 -

致谢

大学本科的学习生活即将结束。在此,我要感谢所有曾经教导过我的老师和关心过我的同学,他们在我成长过程中给予了我很大的帮助。本文能够顺利完成,要特别感谢我的指导老师。

这次课程设计通过自己的努力终于顺利完成了,在设计中遇到了很多问题,最后在张晓逵老师的辛勤指导下,终于迎刃而解,在此我表示感谢!

- 38 -

附表1

四川师范大学毕业设计任务书

学生姓名 周琪俊 学院名称 工学院 设计题目 全自动桥牌机研制 题目来源 通过川师教务处主页统一选题 一、基本任务与要求 了解桥牌比赛和计分的基本原则,设计出能够用于桥牌比赛的叫牌、计分、总分的自动装置。 1、了解要完成的功能和规则,收集该类设备的相关资料和国内的研究情况等信息; 2、拟定实现的方案及输入输出设备; 3、对各方案进行技术经济比较,选择出最佳方案; 4、设计出电路图; 5、编写出软件,在开发装置上进行模拟、调试。 6、完成毕业设计说明书。 学号 2008180150 指导教师 张晓逵 专业名称 电气工程及其自动化 二、工作内容及时间安排 1.选题: 2.开题报告: 3.收集资料及实施研究: 4.完成初稿: 5.完成修改稿: 6.完成定稿: 7.答辩: 三、需要提供有关材料 1.四川师范大学毕业设计任务书; 2.四川师范大学毕业设计开题报告; 3. 四川师范大学毕业设计实施过程记录表; 4. 四川师范大学毕业设计[严格按照四川师范大学毕业设计工作手册要求撰写]; 5. 四川师范大学毕业设计评审表(指导教师用); 6. 四川师范大学毕业设计评审表(评阅人用); 7. 四川师范大学毕业设计答辩记录表。

- 39 -

2012 年 1 月 5 日前 2012 年 2 月 30 日前 2012 年 4 月 20 日前 2012 年 4 月 30 日前 2012 年 5 月 10 日前 2012 年 5 月 19 日前 2012 年 5 月 19 日 附表2

四川师范大学毕业设计开题报告

姓名 题目 1、选题背景(含国内外相关研究综述及评价)与意义。 桥牌是一种数字性概念很强的纸牌游戏。分两个阶段玩打——叫牌与打牌。桥牌不仅是一种饶有兴趣的游戏,而且还可以锻炼记忆力,增强独立思考能力,发挥紧密协作、团结一致的精神。把桥牌活动作为业余消遣,是一种积极性的休息,有助于消除劳动后的疲劳,换来旺盛的工作精力,并丰富文体生活。 现代桥牌被称为定约桥牌,是一种叫“惠斯特”的纸牌游戏发展而来的。桥牌的玩法有很多,计分有很复杂。如果了解了桥牌的玩法和规则就能体会到桥牌运动的魅力。 我选择这个课题的目的是通过对这个设计的完成桥牌的发放,计分等工作。使各地的桥牌手能够近距离的感受到桥牌比赛的魅力。目前市场上还没有一台专门为桥牌设计的桥牌机,市面上有一些公司生产的只能实现随机的发牌功能。并没有专门为桥牌运动设计的微处理器,不能对桥牌进行智能计分,并且没有联网功能。 所以在国际的比赛中,大多数还是人工计分,如果在参加人数很多的情况下,还是会耗费大量的人力物力去组织、经营比赛。这样一来不利于桥牌运动在社会的各个阶层开展和普及。为了实现整个桥牌比赛的智能化和为了让参与者近距离体验桥牌运动的魅力,为此我将对此进行研究,实现一种全自动的桥牌的机,大大的简化组织比赛的难度。让更多的人参与到桥牌运动中来,改善人们的人际关系和协调配合能力。

- 40 -

学号 专业

2、选题研究的方法与主要内容。 1.网上查阅,了解本课题研究前沿。 2.掌握桥牌基本规则。 3.查阅文献资料,阅读优秀论文等。 4.进一步确定自己的研究方向。 5.和老师、同学讨论在研究时遇到的问题。 6.总结并得出自己的结论。 3、研究条件和可能存在的问题。 学校具有一定的实验设备,对于本课题研究、仿真有一定的辅助作用。学校图书馆设施齐全,方便资料查阅。 4、拟解决的主要问题和预期的结果。 1.桥牌机数据收发联网问题。 2.桥牌机数据处理,计分系统程序编辑问题。 3软件模拟,实现问题。 - 41 -

5.指导教师意见。 指导教师签名: 20 年 月 日 6、教学单位意见。 教学单位负责人签名(公章): 20 年 月 日

- 42 -

附表3

四川师范大学毕业设计实施过程记录表

姓名 题目 学号 专业 开题阶 段 指导教师意见: 指导教师签名: 进展情况记录: 进展情况记录: 资料收集和课题研指导教师意见: 究 阶 段 指导教师签名:

- 43 -

进展情况记录: 撰 写 初 稿 阶指导教师意见: 段 指导教师签名: 进展情况记录: 修改完善和定 稿指导教师意见: 阶 段 指导教师签名:

- 44 -

附表4

四川师范大学毕业设计评审表(指导教师用)

姓名 评价项目 学号 题目 具体要求 能独立查阅文献和从事其他调研;能正确翻译外文资料;能 权重 A B C D E 调查论证 提出并较好地论述课题的实施方案;有收集、加工各种信息及获取新知识的能力。 0.1 研究方案的设计能力 设计的整体思路清晰,结构完整、研究方案完整有序。 0.2 分析与解决能运用所学知识和技能去发现与解决实际问题;能正确处理问题的能力 实验数据;能对课题进行理论分析,得出有价值的结论。 工作量及 按期圆满完成规定的任务,工作量饱满,难度较大;工作努工作态度 力,遵守纪律;工作作风严谨务实。 综述简练完整,有见解;立论正确,论述充分,结论严谨合0.2 0.2 质量 理;试验正确,分析处理科学;文字通顺,技术用语准确,符号统一,编号齐全,书写工整规范,图表完备、整洁、正确;设计(论文)结果有应用价值。 0.2 创新 工作中有创新意识;对前人工作有改进、突破或独特见解。 0.1 评定成绩(优、良、中、及格、不及格) 指导教师意见: 指导教师签名: 20 年 月 日 说明:在“A、B、C、D、E”对应的栏目下划“√”

- 45 -

附表5

四川师范大学毕业设计评审表(评阅人用)

姓名 题目 评价项目 选题质01 02 03 选题符合专业培养目标,体现综合训练基本要求 题目难易度 题目工作量 题目与生产、科研、实验室建设等实际的结合程度 综合运用知识的能力(论文、设计涉及学科范围,内容深广度及问题难易度) 应用文献资料的能力 实验或设计能力 计算能力或数据运算与处理能力等 外文应用能力 计算机应用能力 学号 专业 A B C D E 量 04 05 06 07 毕业设计质量 08 09 10 11 12 13 14 15 16 对实验结果的分析能力或综合分析能力、技术经济分析能力 插图或图纸质量 论文或设计说明书撰写水平 论文或设计的实用性与科学性 论文或设计规范化程度 创见性(只分“有”或“无”) 评定成绩(优、良、中、及格、不及格) 有( ) 无( ) 评阅人评语(如不够填写,可另附纸) 评阅人签名: 20 年 月 日 说明:在“A、B、C、D、E”对应的栏目下划“√”

- 46 -

附表6

四川师范大学毕业设计答辩记录表

姓名 题目 学号 专业 答辩地点 答辩日期 答辩情况记录: 答辩成绩(优、良、中、及格、不及格): 答辩记录人签名: 答辩委员会意见: 综合成绩(优、良、中、及格、不及格): 答辩委员会主席签名: 说明:1、优对应90分、良对应80分、中对应70分、及格对应60分、不及格对应50分; 2、综合成绩=指导教师成绩×40%+评阅人1×20%+评阅人2×20%+答辩成绩×20%。

- 47 -

本文来源:https://www.bwwdw.com/article/9fix.html

Top