单片机C51篮球计时计分器课程设计

合集下载

基于51单片机的篮球计分器

基于51单片机的篮球计分器

工程设计课程报告基于51单片机的篮球计分器姓名:莫崇维学号: ********2012 年 12月 22 日基于51单片机的篮球计分器一.需求分析篮球是一项充满乐趣的运动,打篮球可以学到很多课本里没有的东西,比如信任,合作,鼓励等,现在篮球普及率已经很高,不仅仅是专业运动员的运动,也是普通老百姓的活动,不管是走在学校里,还是公园里,甚至是乡村里,都能看到篮球场,都能看到打篮球的人,篮球已成为我们大部分人生活里不可或缺的组成部分,每天都能听到有人在谈论篮球,说说自己喜欢的NBA巨星……因为喜欢篮球,所以打篮球,时不时会来场激烈的比赛,篮球计分器将让我们摆脱用粉笔或记分牌计分带来的不便,轻轻松松几个按钮开关就能让我们记下分数,让我们感受到科技给我们带来的巨变。

计分器主要功能:1、记下双方比分,随时显示2、能够随时更改双方比分3、能够调整比赛的时间,还有暂停时间4、能够对换比分当双方更换场地5、时间走完能发出终场比赛信号二.方案设计根据所学的C语言基础知识和一些编程思想,对所需的一些硬件进行市场调查比较,选择了比较简单,易于实现的51单片机,结合运用了C语言思想进行方案设计,运用keil uversion软件编写程序。

51单片机内部的定时器/计数器进行中断可以结合软件延时实现计时。

采用89C51芯片作为硬件核心,其内部采用FlashROM,具有4KB ROM存储空间,能与3V的超低压工作,由于电路设计中时由于不具备ISP在线编程技术,可以运用STC-isp烧入程序。

图1给出了本系统的实现框图。

图1 总体框图三.电路原理设计电路主要包括CPU部分、电源部分、复位电路部分、按键部分、LED显示部分。

1、CPU部分51单片机为单芯片微控制器,常见封装形式为40脚双列直插式塑料封装DIP-40,其引脚识别为:正面面向用户,缺口向上,左上面第一脚为1脚,然后按逆时针方向依次为2~40脚。

通常第一脚有标志符号。

51单片机管脚图如图2所示。

单片机毕业设计-篮球比赛倒计时计分器(论文+外文翻译+程序)

单片机毕业设计-篮球比赛倒计时计分器(论文+外文翻译+程序)
单片机自20世纪70年代问世以来,以极其高的性价比受到人们的重视和关注,所以应用很广,发展很快。单片机的优点是体积小、重量轻、抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。例如,80C51系列单片机已有十多年的生命期,如今仍保持着上升的趋势,就充分证明了这一点。单片机以其一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统,数据采集系统、智能化仪器仪表,及通讯设备、日常消费类产品、玩具等。并且已经深入到工业生产的各个环节以及人民生活的各层次中,如车间流水线控制、自动化系统等、智能型家用电器等。而美国ATMEL公司开发生产了新型的8位单片机——AT89系列单片机。他不但具有一般MCS-51单片机的所有特性,而且还拥有一些独特的优点,此次设计中所用到的AT89C51就是其中典型的代表。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
AT89C51具有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。它是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。

单片机课程设计(篮球计分器)

单片机课程设计(篮球计分器)

检查电源:确保电源正常,电压稳定 检查连接:确保所有硬件连接正确,无松动或损坏 检查硬件功能:确保所有硬件功能正常,如LED灯、按键等 检查程序运行:确保程序运行正常,无错误或异常 检查数据传输:确保数据传输正常,无丢失或错误 检查稳定性:确保硬件在长时间运行下仍能保持稳定工作
软件调试的目的:发现并修复软件中的错误 软件调试的方法:使用调试工具,如断点、单步执行等 软件调试的步骤:设置断点、执行程序、查看变量值、分析错误原因 软件调试的技巧:使用日志记录、使用单元测试等
提高解决问题的能力和创新能力
添加标题
添加标题
添加标题
添加标题
学会使用单片机进行硬件设计和软 件开发
培养团队合作精神和沟通能力
Байду номын сангаас
功能要求:实现篮 球计分功能,包括 得分、犯规、暂停 等
硬件要求:使用单 片机、LED显示屏、 按键等硬件设备
软件要求:编写 程序,实现篮球 计分器的功能
设计要求:设计 简洁、易于操作, 满足实际需求
结束程序:关闭计时器、计分器等设备,退出程序
程序功能:检测按键是否被 按下
程序流程:初始化、循环扫 描、判断按键状态、执行相 应操作
初始化:设置按键引脚为输 入模式,并初始化为高电平
循环扫描:不断循环检测按 键状态,直到按键被按下或 松开
判断按键状态:根据按键引 脚的电平变化判断按键是否 被按下或松开
软件设计:优化代码结构, 提高运行效率
硬件设计:考虑成本和性能, 选择更合适的元器件
用户体验:增加用户友好的 界面和操作方式
功能扩展:增加更多的功能, 如数据统计、比赛记录等
技术发展趋势:智能化、网络化、 小型化
技术挑战:提高稳定性、降低功耗、 提高准确性

单片机篮球计分器课程设计

单片机篮球计分器课程设计

单片机篮球计分器课程设计一、课程目标知识目标:1. 学生能够理解单片机的基本原理,掌握其编程方法。

2. 学生能够了解篮球计分器的工作原理,掌握相关电路的连接方式。

3. 学生能够运用已学过的数学知识,设计出合理的计分算法。

技能目标:1. 学生能够运用所学知识,独立完成单片机篮球计分器的编程与调试。

2. 学生能够通过小组合作,完成整个篮球计分器的硬件搭建和软件设计。

3. 学生能够运用所学知识解决实际问题,提高创新能力和动手实践能力。

情感态度价值观目标:1. 学生在课程学习中,培养对电子技术的兴趣,激发学习热情。

2. 学生通过团队合作,学会沟通、协作与分工,培养团队精神。

3. 学生能够认识到科技在体育领域的应用,增强科技改变生活的意识。

课程性质:本课程为实践性课程,结合单片机原理、编程、电路设计等多学科知识,旨在培养学生的动手实践能力和创新能力。

学生特点:本课程针对高中年级学生,他们在前期的学习过程中已经掌握了基本的电子技术、编程知识和数学知识,具备一定的自学能力和合作能力。

教学要求:教师需引导学生将所学知识运用到实际项目中,注重培养学生的实践能力和团队协作能力,同时关注学生的个性化发展,提高学生的综合素质。

在教学过程中,将课程目标分解为具体的学习成果,以便于教学设计和评估。

1. 理论知识:- 单片机原理:涉及单片机的结构、工作原理、编程语言等。

- 电路设计:讲解篮球计分器所需的基础电路知识,如数字电路、传感器等。

- 计分算法:介绍篮球计分器的计分原理及算法设计。

2. 实践操作:- 硬件搭建:指导学生进行单片机、传感器、显示屏等硬件的连接。

- 软件编程:教授学生编写单片机程序,实现计分器的功能。

- 调试与优化:引导学生对篮球计分器进行调试,找出问题并优化程序。

3. 教学大纲:- 第一周:单片机原理学习,熟悉编程环境。

- 第二周:电路设计及硬件连接,学习传感器应用。

- 第三周:计分算法设计,编写单片机程序。

单片机课设,篮球计时计分器

单片机课设,篮球计时计分器

单片机课程设计结题报告《篮球比赛计时计分器》团队成员分工情况:***:完成实验报告的总体撰写,焊接方案设计和电路图的绘制,程序编写改进*****:完成元器件采集,辅助电路焊接,电路图修整以及实验报告的完善***:完成程序编写烧录,电路焊接,以及PCB 版图的绘制其中设计方案的确立由团队成员一起讨论而目录1选题背景 (3)2方案设计 (4)2.1硬件电路设计 (5)2.1.1硬件系统各功能模块的电路 (5)2.1.2硬件系统的实现 (9)2.1.3硬件系统的调试 (10)2.2软件设计、编程及调试 (10)2.2.1系统软件的模块程序设 (10)2.2.2编程实现 (11)2.2.3软件系统的调试 (11)3系统联调及最终实现结果展示 (11)4总结 (12)5 收获与致谢 (13)6 参考文献 (14)7附件 (15)1 选题背景单片机,亦称单片微电脑或单片微型计算机。

它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。

计算机的产生加快了人类改造世界的步伐,但是它毕竟体积大。

微计算机(单片机)在这种情况下诞生了,它为我们改变了什么?纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。

由于单片机的集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便等独特的优点,使单片机迅速得到了推广应用,目前已经成为测量控制应用系统中的优选机种和新电子产品的关键部位。

世界各大电气厂家、测控技术企业、机电行业,竞相把单片机应用于产品更新,作为实现数字化、智能化的核心部件。

本设计由STC89C52编程控制LED七段数码管作球赛计时计分系统具有赛程定时设置、赛程时间暂停、性能稳定、操作方便且易携带等特点。

单片机课程设计报告-篮球计时计分器

单片机课程设计报告-篮球计时计分器

2010 ~ 2011 学年第 2 学期《单片机应用系统设计与制作》课程设计报告教学院(部)电气与电子信息工程学院教研室电气自动化指导教师课程设计时间 2011.5.30~2011.6.10 课程设计班级电气自动化技术2009(*)班学号 2009********姓名张 * *单片机应用系统设计与制作课程设计成绩评定表指导教师签字:2011 年 6 月20 日摘要篮球计时计分器以单片机为核心,由计时器、计分器、综合控制器等组成。

系统采用模块化设计,主体分为计时显示模块、计分显示模块、定时报警、按键控制键盘模块。

每个模块的程序结构简单、任务明确,易于编写、调试和修改。

编程后利用Keil软件来进行编译,再将生成的HEX文件装入芯片中,采用Proteus软件仿真,检验功能是否能够正常实现,本设计中系统硬件电路主要由以下几个部分组成:单片机AT89C52、计时电路、计分电路、报警电路和按键开关。

该系统具有赛程定时设置、赛程时间暂停、及时刷新甲乙双方的成绩以及赛后成绩暂存等功能。

关键词:单片机,计时,计分,显示器,接口ABSTRACTTime basketball scoring device as the core of SCM includes the timer, scoring devices, integrated controller and other components.This system is used of the modular design, in which the main display module is divided into time display module, scoring display module, timing alarm module, and key control keyboard module. Program structure of each module is simple and clear. So it is easy to write, debug and modify. After programming, firstly we can use Keil software to compile and then generate the HEX file into the chip. Secondly we use the Proteus software simulation to test whether the normal function to achieve. The design of hardware circuit mainly consists of the five components, including AT89C52, timing circuit, scoring circuit, alarm circuit and key switch circuit.The system has many features,such as setting the schedule time, scheduling time to pause, refreshing result of both parties timely, storing temporarily results after the match and so on.KEY WORDS:Microcontroller, Timing, Scoring, Display, Interface目录一、设计目的及要求 (3)二、方案论证 (3)三、元件及其功能简介 (5)四、电路方案设计 (12)五、编程及仿真 (16)六、心得与总结 (20)附表一、程序清单 (21)参考文献 (34)课程设计报告一、设计目的及要求1、设计目的通过本次基于C51系列篮球计时计分器的设计,可以了解、熟悉有关单片机开发设计的过程,并加深对单片机的理解和应用以及掌握单片机与外围接口的一些方法和技巧,这主要表现在以下一些方面:(1) 篮球赛计时计分系统包含了8051系列单片机的最小应用系统的构成,同时在此基础上扩展了一些使用性强的外围接口。

基于单片机AT89C51控制的篮球计分器课程设计报告

基于单片机AT89C51控制的篮球计分器课程设计报告

宁波技师学院课程设计报告设计课题:单片机——篮球计分器专业班级:学生姓名:指导教师:宁波技师学院电气技术系二零一三年9月摘要进入21世纪,伴随着电子,信息通信技术的应用与普及开发,人们对电子技术的要求也越来越高。

目前嵌入式单片机渗透到我们生活的各个领域,按照历史性、本质性普遍性要求,嵌入式系统应定义为:“嵌入到对象体系中的专用计算机系统”。

对于嵌入式即可分软件部分和硬件部分。

以MCU为核心,就是各种各样的单片机,是嵌入式硬件部分的实现方式之一,它主要是因为把处理器和存储器等部件集成在一块芯片上。

在探索单片机的发展道路时,有过两种模式,即“Σ模式”与“创新模式”。

“Σ模式”将通用计算机系统中的基本单元进行裁剪后,集成在一个芯片上,构成单片微型计算机“创新模式”则完全按嵌入式应用要求设计全新的,满足嵌入式应用要求的体系结构、微处理器、指令系统、总线方式、管理模式等。

Intel公司的MCS-48、MCS-51就是按照创新模式发展起来的单片形态的嵌入式系统。

MCS-51是在MCS-48探索基础上,进行全面完善的嵌入式系统,成为单片嵌入式系统的典型结构体系。

体育比赛计分器是对体育比赛过程中所产生的比分等数据进行快速采集记录、加工处理、传递利用的工具。

篮球比赛的计分器是一种得分类型的工具。

它由计分器等多种电子设备组成。

虽然篮球比赛中很早就开始研究应用了电子计分器,通常都是利用模拟电子器件、数字电子器件或是模拟、数字混合组成的,其稳定性和高准确度计分仍存在一些问题。

以单片机为核心的篮球比赛计分器,计分准确,具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便等独特的优点。

目录一总体设计方案 (3)1.1系统设计方案 (3)1.2系统结构框图 (4)二系统硬件设计 (4)2.1晶振电路 (5)2.2复位电路 (5)2.3数码管电路 (7)2.4LED指示电路 (8)2.5按钮加分电路 (6)三软件设计 (7)3.1主流程图 (7)3.2程序图 (9)四制作与调试 (18)五结论 (19)六致谢 (20)附录1 系统实物原来图 (21)2实验原理图 (23)3系统仿真图 (24)4PCB原理图 (25)5分工表 (29)一总体设计方案1.1系统设计方案篮球计分系统主要由:复位电路、晶振电路、数码管显示电路、LED灯指示输赢电路、甲乙加分电路等部分电路组成。

单片机课程设计篮球计时计分器正文精选全文完整版

单片机课程设计篮球计时计分器正文精选全文完整版

可编辑修改精选全文完整版基于单片机的篮球赛计时计分器的设计一系统设计方案1.1 设计题目篮球计时计分器1.2 系统功能要求本系统可实现功能如下:(1)主控部分:选择单片机为核心元件构成系统。

(2)计时部分:能记录整个赛程的比赛时间,并能修改时间、暂停时间。

(3)计分部分:能随时刷新甲、乙两队在整个赛程中的比分。

(4)中场交换比赛场地时,能交换甲、乙两队比分的位置。

(5)比赛时间结束时,能发出报警指令。

1.3 系统总体方案设计本设计由AT89C51编程控制LED七段数码管作球赛计时计分系统具有赛程定时设置、赛程时间暂停、性能稳定、操作方便且易携带等特点。

1.3.1系统设计方案论证本设计是基于89C52单片机的键盘控制及显示电路设计,从系统的设计功能上看,系统可分为两大部分,即键盘输入控制部分和显示部分,对于每一个部分都有不同的设计方案,起初我拟订了下面两种方案:第一种方案:键盘控制采用矩阵扫描键盘,可以用普通按键构成4×4矩阵键盘,直接接到89C51单片机的P0口,高四位作为行,低四位作为列,通过软件完成键盘的扫描和定位。

显示部分采用动态显示,采用移位寄存器74LS164和译码器74LS138通过显示驱动程序驱动七段数码管显示。

此方案成本低,所用到的两个外围芯片价格都很低廉,而且单片机的I/O口占用较少,可以节约单片机接口资源。

第二种方案:键盘控制采用独立是式键盘,每个按键的"接零端"均接地,每个按键的"测试端"各接一条输入线,通过检测输入线的电平状态就可以很容易地判断哪个键被按下了,这种方法操作速度高而且软件结构很简单。

这种方法比较适合按键较少或操作速度较高的场合。

显示部分采用静态显示方法,所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的接口用于笔划段字形代码。

这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中CPU 的开销小。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

篮球赛计时计分器一设计目的设计并制作一个用于赛场的篮球赛计时计分器,实现如下基本功能:(1)能记录整个赛程的比赛时间,并能修改比赛时间,暂停比赛时间。

(2)能随时刷新甲,乙两队在整个赛程中的比分。

(3)中场交换场地时,能交换甲,乙两队比分的位置。

(4)比赛时间结束时,能发出报警指令。

二设计意义通过篮球计分计时器的制作,可以使我熟悉,了解单片机开发设计实例的过程,并能使读者加深对单片机的理解和运用以及掌握单片机与外围接口的一些方法和技巧,这主要表现在以下的一些方面:(1)篮球计分计时器包含了8051系列单片机的最小应用系统的构成,同时在此基础上扩展了一些实用性强的外围接口。

(2)掌握键盘接口原理,能正确地把键盘使用到单片机系统中,可以了解到LED显示器的结构,工作原理以及这种显示器的接口实例。

(3)学会调试电路,分析电路故障,积累电路调试经验。

三具体设计内容1 系统框图构成基于单片机系统的篮球计分计时器的系统构成框图如下所示:2硬件电路改进:由于原来的电路比较复杂,用了很多芯片,浪费成本,而且给后期调试的调试会带来较多麻烦,故对原来的硬件电路进行了改动。

改动方面主要关于数码管显示的驱动和位选的,前期的电路设计采用了大量的CD4511和CD4094来进行数码管显示的驱动和位选,而这次的电路设计只用了8个三极管就实现了这项功能。

下面前期电路设计的计时部分的原理图,还有更为复杂的计分原理图未给出后期改进的整体原理图:(3)软件调试及组装软件的编程调试首先要抓住计分和计时两大模块,在这两大模块成功的基础上再进行其他细小模块的组装和完善。

主要编程的问题,所以就概述就举例子概述一下计分模块和计时模块刚开始均会出现显示数值范围不正确或者十位和个位二者之中只显示个位的情况,经软件调试,重新编程后成功的解决了问题。

I 上半场比赛结束,可按下交换比分按钮,交换甲乙两队的比分,重新调整计时时间为20分钟,按下启动按钮,下半场比赛开始八 篮球赛计时计分器程序流程图及程序开始定时清零甲乙两队分数清零设置定时启动键是否按下定时时间到否倒计时开始定时暂停键是否按下K1,K2,K3,K4是否按下对应甲乙两队加减分数喇叭响10秒交换键是否按下甲乙两队交换分数并显示YNYYYYNNNN代码如下:K1 B IT P1.0 K2 B IT P1.1K3 BIT P1.2 K4 BIT P1.3 K5 B IT P1.4 K6 B IT P1.5K7 BIT P1.6 K8 BIT P1.7MIN EQU 30H SEC EQU 31HSEC100 EQU 32H DIS_BUF EQU 33H BUF_MIN_H EQU DIS_BUFBUF_MIN_L EQU DIS_BUF+1 BUF_SEC_H EQU DIS_BUF+2 BUF_SEC_L EQU DIS_BUF+3K_OLD EQU 41HK_NEW EQU 42HDIS_DIGIT EQU 43HDIS_INDEX EQU 44HK_OLD1 EQU 45HK_NEW1 EQU 46HFLAG EQU 47HCONVERT EQU 48HORG 0000HJMP MAINORG 0003HLJMP INT_0ORG 0000BHLJMP TIMER0ORG 0001BHLJMP TIMER1ORG 0030HMAIN:MOV SP,#60HMOV P0,#0FFHMOV P2,#0FFHMOV TMOD,#011HMOV TH0,#0FCHMOV TL0,#017HMOV TH1,#0DCHCLR AMOV TL1,AMOV CONVERT,#00HMOV CONVERT+1 ,#00HMOV CONVERT+2,#00HMOV CONVERT+3 ,#00HCLR AMOV MIN,#20MOV SEC,AMOV SEC100,AMOV BUF_MIN_H,#0A4HMOV BUF_MIN_L,#0C0HMOV BUF_SEC_H,#0C0HMOV BUF_SEC_L,#0C0HMOV DIS_BUF+4,#0C0HMOV DIS_BUF+5,#0C0HMOV DIS_BUF+6,#0C0HMOV DIS_BUF+7,#0C0HMOV FLAG ,#00HMOV K_OLD,#00HBEEP_BL00: MOV R3,#10MOV R2,#200MAIN1100:CPL p3.7LCALL DELAY500LCALL DELAY500DJNZ R2,MAIN1100CPL p3.6LCALL DELAY500LCALL DELAY500LCALL DELAY500MOV R2,#200MAIN2100:CPL p3.7LCALL DELAY500DJNZ R2,MAIN2100DJNZ R3,MAIN1100LJMP STARTDELAY500:MOV R7,#230LOOP1:DJNZ R7,LOOP1RETSTART: MOV DIS_DIGIT,#0FEH CLR AMOV DIS_INDEX,ASETB EASETB ET0SETB TR0SETB IT0SETB EX0SETB PT0MAIN_LP:CALL KEY_PROGSJMP MAIN_LPKEY_PROG:CALL K_SCANMOV A,K_NEWCJNE A,K_OLD,KEY_P1JMP END_PROC_KEY KEY_P1:MOV R4,#15KEY_P2:MOV R7,#10CALL DELAYMSDJNZ R4,KEY_P2CALL K_SCANMOV A,K_NEWCJNE A,K_OLD,KEY_P3JMP END_PROC_KEY KEY_P3:JB ACC.0,PROC_K1JB ACC.1,PROC_K2JB ACC.2,PROC_K3JB ACC.3,PROC_K4LJMP END_PROC_KEYPROC_K1:LCALL BEEP_BL001 INC MINMOV A,MIN ;CJNE A, #100,UPDATE_MIN21MOV MIN,#00HUPDATE_MIN21:MOV A,MINMOV B,#10DIV AB ; A = MIN / 10MOV DPTR,#DIS_CODEMOVC A,@A+DPTRMOV BUF_MIN_H,AMOV A,MINMOV B,#10DIV ABMOV A,BMOVC A,@A+DPTRMOV BUF_MIN_L,ASJMP END_PROC_KEYPROC_K2:LCALL BEEP_BL001 DEC MINMOV A,MINCJNE A, #255, UPDATE_MIN1MOV MIN,#99UPDATE_MIN1:MOV A,MINMOV B,#10DIV ABMOV DPTR,#DIS_CODEMOVC A,@A+DPTRMOV BUF_MIN_H,AMOV A,MIN LMOV B,#10DIV ABMOV A,BMOVC A,@A+DPTRMOV BUF_MIN_L,ASJMP END_PROC_KEYPROC_K3: LCALL BEEP_BL001PUSH PSWINC FLAGMOV A ,FLAGRRC AJNC STOPCLR P3.6SETB ET1SETB TR1POP PSWSJMP END_PROC_KEYSTOP:SETB P3.6CLR ET1CLR TR1POP PSWSJMP END_PROC_KEYPROC_K4: LCALL BEEP_BL001MOV R3,CONVERT+1MOV CONVERT+1,CONVERT+3MOV CONVERT+3,R3MOV R3,CONVERTMOV CONVERT,CONVERT+2MOV CONVERT+2,R3LCALL CONVETEREND_PROC_KEY:RET; 键扫描子程序K_SCAN:MOV P1,#0FFHMOV K_NEW,#00HMOV A,P1CPL AANL A,#0F0HSW AP AMOV K_NEW,ARETUSING 0TIMER0:; 定时器0中断服程序, 用于数码管的动态扫描PUSH ACCPUSH PSWPUSH AR0MOV TH0,#0FCHMOV TL0,#017HMOV P2,#0FFHMOV A,#DIS_BUFADD A,DIS_INDEXMOV R0,AMOV A,@R0MOV P0,AMOV P2,DIS_DIGITMOV A,DIS_DIGITRL AMOV DIS_DIGIT,AINC DIS_INDEXMOV R5 , DIS_INDEXCJNE R5,#08H,TTMOV DIS_INDEX ,#00HMOV DIS_DIGIT,#0FEHTT: POP AR0POP PSWPOP ACCRETITIMER1:; 定时器1中断服务程序, 产生时基信号10ms PUSH PSWPUSH ACCPUSH BPUSH DPHPUSH DPLMOV TH1,#0DCHMOV TL1,#00HINC SEC100MOV A,SEC100CJNE A, #100, END_TIMER1MOV SEC100,#00HLCALL DEC_SECEND_TIMER1:POP DPLPOP DPHPOP BPOP ACCPOPPSWRETI ;DEC_SEC:DEC SECMOV A ,MINJNZ OBTAINCPL P3.6MOV A ,SECJNZ OBTAINMOV BUF_SEC_L,#0C0HCLR TR1CLR ET1BEEP_BL: MOV R3,#10MOV R2,#200MAIN11:CPL p3.7LCALL DELAY500LCALL DELAY500DJNZ R2,MAIN11CPL p3.6LCALL DELAY500LCALL DELAY500LCALL DELAY500MOV R2,#200MAIN21:CPL p3.7LCALL DELAY500DJNZ R2,MAIN21DJNZ R3,MAIN11LJMP OBTAINOBTAIN:MOV A,SECCJNE A, #255,UPDATE_SECMOV SEC,#59LCALL DEC_MINUPDATE_SEC:MOV A,SECMOV B,#10DIV ABMOV DPTR,#DIS_CODEMOVC A,@A+DPTRMOV BUF_SEC_H,AMOV A,SECMOV B,#10DIV ABMOV A,BMOVC A,@A+DPTRMOV BUF_SEC_L,ARETDEC_MIN:DEC MINMOV A,MINCJNE A, #255, UPDATE_MINMOV MIN,#00HUPDATE_MIN:MOV A,MINMOV B,#10DIV AB ; A = MIN / 10 MOV DPTR,#DIS_CODEMOVC A,@A+DPTRMOV BUF_MIN_H,AMOV A,MINMOV B,#10DIV ABMOV A,BMOVC A,@A+DPTRMOV BUF_MIN_L,ARETRET; 中断INT0服务程序INT_0:PUSH PSWPUSH ACCPUSH BPUSH DPHPUSH DPLJB k1,RKEY1MOV R7,#30LCALL DELAYMS JB k1,RKEY1LJMP KP1RKEY1 :JB k2,RKEY2 MOV R7,#30LCALL DELAYMS JB k2,RKEY2LJMP KP2RKEY2 :JB k3,RKEY3MOV R7,#30LCALL DELAYMS JB k3,RKEY3LJMP KP3RKEY3 : JB k4,RKEY4 MOV R7,#30LCALL DELAYMS JB k4,RKEY4LJMP KP4RKEY4: LJMP KP5KP1: LCALL BEEP_BL001 INC CONVERTMOV A,CONVERTCJNE A,#0AH,KP5MOV CONVERT ,#00H INC CONVERT+1MOV A,CONVERT+1 CJNE A,#0AH,KP5MOV CONVERT+1,#00H LJMP KP5KP2: LCALL BEEP_BL001 DEC CONVERTMOV A,CONVERT CJNE A,#255,KP5MOV CONVERT,#09H DEC CONVERT+1MOV A,CONVERT+1 CJNE A,#255,KP5MOV CONVERT+1,#09H LJMP KP5KP3: LCALL BEEP_BL001 INC CONVERT+2MOV A,CONVERT+2CJNE A,#0AH,KP5MOV CONVERT+2 ,#00H INC CONVERT+3MOV A,CONVERT+3CJNE A,#0AH,KP5MOV CONVERT+3,#00H LJMP KP5KP4: LCALL BEEP_BL001DEC CONVERT+2MOV A,CONVERT+2CJNE A,#255,KP5MOV CONVERT+2 ,#09H DEC CONVERT+3MOV A,CONVERT+3 CJNE A,#255,KP5MOV CONVERT+3,#09H LJMP KP5KP5:LCALL CONVETER POP DPLPOP DPHPOP BPOP ACCPOPPSWRETIDELAYMS:; 延时子程序DLY_LP1:MOV R6,#185DLY_LP2:NOPNOPNOPDJNZ R6,DLY_LP2DJNZ R7,DLY_LP1END_DLYMS:RET;蜂鸣器响一声子程序BEEP_BL001: MOV R3,#1 PUTOFF: ;MOV R2,#30MAIN11001:CPL p3.7LCALL DELAY500LCALL DELAY500DJNZ R2,MAIN11001DJNZ R3,PUTOFFRET;显示缓冲区代码转码子程序CONVETER:MOV A,CONVERTMOV DPTR,#DIS_CODEMOVC A,@A+DPTRMOV DIS_BUF+7,AMOV A,CONVERT+1 MOV DPTR,#DIS_CODEMOVC A,@A+DPTRMOV DIS_BUF+6,AMOV A,CONVERT+2 MOV DPTR,#DIS_CODEMOVC A,@A+DPTRMOV DIS_BUF+5,AMOV A,CONVERT+3 MOV DPTR,#DIS_CODEMOVC A,@A+DPTRMOV DIS_BUF+4,ARET查表指令DIS_CODE:DB 0C0HDB 0F9HDB 0A4HDB 0B0HDB 099HDB 092HDB 082HDB 0F8HDB 080HDB 090HDB 0FFHEND总结这次课程设计虽然只有短短的两周时间,但我受益匪浅。

相关文档
最新文档