单片机微机原理及应用课程设计-篮球记分牌的设计.doc_第1页
单片机微机原理及应用课程设计-篮球记分牌的设计.doc_第2页
单片机微机原理及应用课程设计-篮球记分牌的设计.doc_第3页
单片机微机原理及应用课程设计-篮球记分牌的设计.doc_第4页
单片机微机原理及应用课程设计-篮球记分牌的设计.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机微机原理及应用课 目: 篮球记分牌的设计 学 院: 电气工程学院 班 级: 自动化 08-2 姓 名: 指导教师: 完成时间:2011年12月11日篮球赛计时计分器一 设计目的 设计并制作一个用于赛场的篮球赛计时计分器,实现如下基本功能:(1) 能记录整个赛程的比赛时间,并能修改比赛时间,暂停比赛时间。(2) 能随时刷新甲,乙两队在整个赛程中的比分。(3) 中场交换场地时,能交换甲,乙两队比分的位置。(4) 比赛时间结束时,能发出报警指令。 二 设计意义 通过篮球计分计时器的制作,可以使我熟悉,了解单片机开发设计实例的过程,并能使读者加深对单片机的理解和运用以及掌握单片机与外围接口的一些方法和技巧,这主要表现在以下的一些方面:(1) 篮球计分计时器包含了8051系列单片机的最小应用系统的构成,同时在此基础上扩展了一些实用性强的外围接口。(2) 掌握键盘接口原理,能正确地把键盘使用到单片机系统中,可以了解到led显示器的结构,工作原理以及这种显示器的接口实例。 (3)学会调试电路,分析电路故障,积累电路调试经验。三 具体设计内容 1 系统框图构成 基于单片机系统的篮球计分计时器的系统构成框图如下所示:2硬件电路改进: 由于原来的电路比较复杂,用了很多芯片,浪费成本,而且给后期调试的调试会带来较多麻烦,故对原来的硬件电路进行了改动。改动方面主要关于数码管显示的驱动和位选的,前期的电路设计采用了大量的cd4511和cd4094来进行数码管显示的驱动和位选,而这次的电路设计只用了8个三极管就实现了这项功能。下面前期电路设计的计时部分的原理图,还有更为复杂的计分原理图未给出后期改进的整体原理图:(3)软件调试及组装软件的编程调试首先要抓住计分和计时两大模块,在这两大模块成功的基础上再进行其他细小模块的组装和完善。主要编程的问题,所以就概述就举例子概述一下计分模块和计时模块刚开始均会出现显示数值范围不正确或者十位和个位二者之中只显示个位的情况,经软件调试,重新编程后成功的解决了问题。i 上半场比赛结束, 可按下交换比分按钮,交换甲乙两队的比分,重新调整计时时间为20分钟,按下启动按钮,下半场比赛开始 八 篮球赛计时计分器程序流程图及程序 代码如下:k1bitp1.0k2bitp1.1k3 bit p1.2k4 bit p1.3k5bitp1.4k6bitp1.5k7 bit p1.6k8 bit p1.7 min equ 30h sec equ 31h sec100 equ 32h dis_buf equ 33h buf_min_hequdis_bufbuf_min_lequdis_buf+1buf_sec_hequdis_buf+2buf_sec_lequdis_buf+3k_old equ 41hk_new equ 42h dis_digit equ 43h dis_index equ 44hk_old1 equ 45h k_new1 equ 46hflag equ 47h convert equ 48horg0000hjmpmainorg 0003h ljmp int_0org0000bhljmptimer0org0001bhljmptimer1org 0030hmain: mov sp,#60hmov p0,#0ffhmov p2,#0ffhmov tmod,#011hmov th0,#0fchmov tl0,#017hmov th1,#0dchclr amov tl1,a mov convert,#00h mov convert+1 ,#00h mov convert+2,#00h mov convert+3 ,#00h clra mov min,#20 mov sec,amov sec100,a mov buf_min_h,#0a4hmov buf_min_l,#0c0h mov buf_sec_h,#0c0hmov buf_sec_l,#0c0h mov dis_buf+4,#0c0h mov dis_buf+5,#0c0h mov dis_buf+6,#0c0h mov dis_buf+7,#0c0h mov flag ,#00h mov k_old,#00h beep_bl00: mov r3,#10 mov r2,#200main1100: cpl p3.7 lcall delay500 lcall delay500 djnz r2,main1100 cpl p3.6 lcall delay500 lcall delay500 lcall delay500 mov r2,#200main2100: cpl p3.7 lcall delay500 djnz r2,main2100 djnz r3,main1100 ljmp startdelay500: mov r7,#230loop1: djnz r7,loop1 retstart:mov dis_digit,#0fehclr amov dis_index,a setb ea setb et0 setbtr0setb it0 setb ex0setb pt0 main_lp: call key_prog sjmpmain_lpkey_prog: call k_scan mov a,k_new cjne a,k_old,key_p1 jmp end_proc_keykey_p1: mov r4,#15key_p2: mov r7,#10 call delayms djnz r4,key_p2 call k_scan mov a,k_new cjne a,k_old,key_p3 jmp end_proc_keykey_p3: jb acc.0,proc_k1 jb acc.1,proc_k2 jb acc.2,proc_k3 jb acc.3,proc_k4 ljmpend_proc_keyproc_k1:lcall beep_bl001 inc minmov a,min; cjne a, #100,update_min21mov min,#00hupdate_min21:mov a,min mov b,#10div ab; a = min / 10mov dptr,#dis_codemovc a,a+dptrmov buf_min_h,amov a,min mov b,#10div abmov a,bmovc a,a+dptrmov buf_min_l,asjmp end_proc_keyproc_k2:lcall beep_bl001 dec minmov a,min cjne a, #255, update_min1mov min,#99update_min1:mov a,min mov 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,a sjmp end_proc_key proc_k3: lcall beep_bl001 push psw inc flag mov a ,flag rrc a jnc stop clr p3.6 setb et1 setb tr1pop psw sjmp end_proc_key stop:setb p3.6 clr et1 clr tr1pop pswsjmp end_proc_key proc_k4: lcall beep_bl001 mov r3,convert+1 mov convert+1,convert+3 mov convert+3,r3 mov r3,convert mov convert,convert+2 mov convert+2,r3 lcall conveterend_proc_key:ret ; 键扫描子程序k_scan: mov p1,#0ffh mov k_new,#00h mov a,p1 cpl a anl a,#0f0h swap a mov k_new,a retusing0timer0:; 定时器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_digitmova,dis_digitrlamovdis_digit,aincdis_indexmov r5 , dis_index cjne r5,#08h,tt mov dis_index ,#00h mov dis_digit,#0fehtt:pop ar0pop pswpop accreti timer1:; 定时器1中断服务程序, 产生时基信号10mspushpswpush accpush bpush dphpush dplmov th1,#0dchmov tl1,#00hinc sec100mov a,sec100cjne a, #100, end_timer1mov sec100,#00h lcalldec_sec end_timer1:pop dplpop dphpop bpop accpoppswreti ; dec_sec:dec sec mov a ,min jnz obtain cpl p3.6 mov a ,sec jnz obtain mov buf_sec_l,#0c0h clr tr1 clr et1 beep_bl: mov r3,#10 mov r2,#200main11: cpl p3.7 lcall delay500 lcall delay500 djnz r2,main11 cpl p3.6 lcall delay500 lcall delay500 lcall delay500 mov r2,#200main21: cpl p3.7 lcall delay500 djnz r2,main21 djnz r3,main11 ljmp obtainobtain:mov a,seccjne a, #255,update_secmov sec,#59lcall dec_minupdate_sec:mov a,sec mov b,#10div abmov dptr,#dis_codemovc a,a+dptrmov buf_sec_h,amov a,sec mov b,#10div abmov a,bmovc a,a+dptrmov buf_sec_l,aret dec_min:dec minmov a,min cjne a, #255, update_minmov min,#00hupdate_min:mov a,min mov b,#10div ab; a = min / 10mov dptr,#dis_codemovc a,a+dptrmov buf_min_h,amov a,min mov b,#10div abmov a,bmovc a,a+dptrmov buf_min_l,aretret ; 中断int0服务程序int_0: pushpswpush accpush bpush dphpush dpl jb k1,rkey1 mov r7,#30 lcall delayms jb k1,rkey1 ljmp kp1 rkey1 :jb k2,rkey2 mov r7,#30 lcall delayms jb k2,rkey2 ljmp kp2 rkey2 :jb k3,rkey3 mov r7,#30 lcall delayms jb k3,rkey3ljmp kp3rkey3 : jb k4,rkey4 mov r7,#30 lcall delayms jb k4,rkey4ljmp kp4rkey4: ljmp kp5kp1: lcall beep_bl001 inc convert mov a,convert cjne a,#0ah,kp5mov convert ,#00hinc convert+1mov a,convert+1cjne a,#0ah,kp5mov convert+1,#00hljmp kp5kp2: lcall beep_bl001 dec convert mov a,convert cjne a,#255,kp5mov convert,#09hdec convert+1mov a,convert+1cjne a,#255,kp5mov convert+1,#09hljmp kp5kp3: lcall beep_bl001 inc convert+2 mov a,convert+2cjne a,#0ah,kp5mov convert+2 ,#00hinc convert+3mov a,convert+3cjne a,#0ah,kp5mov convert+3,#00hljmp kp5kp4: lcall beep_bl001 dec convert+2 mov a,convert+2 cjne a,#255,kp5mov convert+2 ,#09hdec convert+3mov a,convert+3cjne a,#255,kp5mov convert+3,#09hljmp kp5kp5:lcall conveterpop dplpop dphpop bpop accpoppswretidelayms:; 延时子程序dly_lp1:movr6,#185dly_lp2:nopnopnopdjnzr6,dly_lp2djnzr7,dly_lp1end_dlyms:ret ;蜂鸣器响一声子程序beep_bl001: mov r3,#1 putoff: ; mov r2,#30main11001: cpl p3.7 lcall delay500 lcall delay500 djnz r2,main11001 dj

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论