AVR单片机Atmega48程序设计报告——比赛计时计分器_第1页
AVR单片机Atmega48程序设计报告——比赛计时计分器_第2页
AVR单片机Atmega48程序设计报告——比赛计时计分器_第3页
AVR单片机Atmega48程序设计报告——比赛计时计分器_第4页
AVR单片机Atmega48程序设计报告——比赛计时计分器_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、一、设计目的本设计是基于ATMEGA48单片机的比赛计时计分器,利用8路7段LED数码管作为显示 器件,采用3乘3矩阵式键盘作为输入,主要用于各种体育比赛记录分数,在此设计中共接 入了 2个四位一体7段LED数码管显示器,第一个显示器为一个倒数计时,第二个显示器为 两队得分。本设计中的倒数计时器时间为40分钟,可以进行开始计时、暂停计时的操作,分别通 过S3、S3 2按钮实现,并通过蜂鸣器表示是否操作成功,时间通过1个四位一体7段LED 数码管显示器显示,前两位为分钟数,后两位为秒数。本设计中可以对两队得分进行加1分、加2分、加3分操作,分别通过S1 1、S12、 S1 3、S2、S2_2、S

2、2_3按钮实现,并通过蜂鸣器的不同工作方式表示是否操作成功与所加 的分值。得分通过1个四位一体7段LED数码管显示器显示,每队得分显示两位数,显示围 为0、99分。本设计可以进行清零操作,清篆后倒计时恢复40分钟,得分均为0,通过S3 3按钮实 现,并通过蜂鸣器表示是否操作成功。二、设计思路本设计中由AVR核心板、数码管、蜂呜器、3乘3矩阵键盘四部分组成。电路中P0RT.B 端口连接数码管,显示八位,完成倒计时与记录每队得分,PORT C与3乘3矩阵键盘相连, 由按键控制完成初始化、开始与暂停计时以及加分的功能,PORT D与蜂鸣器端口相连,根据 所加得分的不同,开始与暂停计时,初始化,蜂鸣器

3、有不同的应答方式。本设计中的程序主要分为两个部分,即暂停计时时的显示与开始计时时的显示。暂停 计时时与开始计时时都可以对每队加分,初始化。三、设计电路图10P1图一接口模块电路VCC ZH1P4RXDSCL:BEEP、x7VCC_ZH1| 9246510GNDqazAlv6匕.G56tlrp smYb-YiYZYJ-ppr i164ik13春f112 U恋r:W33) r:9埶r:72K 筮DS653112p.CdamoXIC出扛GOIIA595 2MXUS6UIG552-?EEEE图三8路7段LED数码管电路P19L22 4 6 8Dll 1N414SD121X41481N4148R1R2R

4、3图四3*3矩阵控制键盘电路四、设计过程1、关闭硬件实验平台电源。2、将下载器与主控单片机的下载口 P5相连。3、使用3条2*5排线连接P10和P14端口、P11和P19端口、P13和P4端口,从电路图 上分析,PB 口与LED显示器相连,PC 口与3*3矩阵按键相连,PD 口与蜂鸣器相连。4、打开智能开发环境,新建一个新的工程项目。5、在左边的树形结构窗,选择工程管理-基本操作-功能描述&开发日志”,进行项目功 能的描述。6、在左边的树形结构窗,选择工程管理-基本设置-HC595 165”,设置如下:工作模式:端口选择:595片选择:595数据输出:时钟:HC595P0RTBBIT0BIT2

5、BIT17、在左边的树形结构窗,选择工程管理-端口设置-端口 B”,将引脚3-引脚5设置如 下:使用情况功能选择输入输出名称置低引脚3使用10输出A0AO_SetHighA0_SetLow引脚4使用10输出A1Al_SetHighAl_SetLow引脚5使用10输出A2A2_SetHighA2_SetLow8,增加全局函数Sei ectLED和DrawLED设置如下:返回类型函数参数参数类型SelectLEDvoidUint8 u8_NumbervoidDrawLEDvoidUint8 u8_Number, Uint8 u8_PointvoidSelectLED函数实现:void Select

6、LED(uint8 u8_Number)/HC595_165_Write595Byte(Oxff); /Select595;/DeSelect595;DrawLED(255,0);switch (u8_Number)case 0:A2_SetLow;Al_SetLow;AO_SetLow;break;case 1:A2_SetLow;Al_SetLow;AO.SetHigh;break;AO.SetHigh; break;case 4:A2_SetHigh;Al_SetLow;AO_SetLow; break;case 5:A2_SetHigh;Al_SetLow;AO.SetHigh; br

7、eak;case 6:A2_SetHigh;Al_SetHigh; ?0_SetLow; break;A2_SetLow;AlSetHigh;AO_SetLow; break;case 3:A2_SetLow;ACSetHigh;DrawLED函数实现:Voi dDrawLED(u int8 u8_Number,uint8 u8_Point) uint8 u8_Char=0; switch (u8_Number)case 0:u8_Char=0xc0; break;case 1:u8_Char=0xf9; break;case 2:u8_Char=0xa4; break;case 3:u8_C

8、har=0xb0; break;case 4:u8_Char=0x99;break;case 7:A2_SetHigh;Al_SetHigh;AO.SetHigh;break; case 5:u8_Char=0x92; break;case 6: u8_Char=0x82; break;case 7: u8_Char=0xf8; break;case & u8_Char=0x80; break;case 9: u8_Char=0x90; break;case 11: u8_Char=0xff; break;case 255: u8_Char=0xFF; break;if (u8_Point=l

9、)CLRBlT(u8_ChartBlT7); HC595 165_Write595Byte(u8 _Char);Select595;DeSelect595;case 2:9、在左边的树形结构窗,选择“工程管理-端口设置-端口 CS将引脚0-引脚5设置如下:使用情况功能选择输入输出名称置高置低测试引脚0使用10输出S1Sl_DeSelectSl_Select引脚1使用10输入R1Rl_Test引脚2便用10输出S2S2_DeSelectS2_Select引脚3便用10输入R2R2_Test引脚4便用10输出S3S3_DeSelectS3_Select引脚5使用10输入R3R3_Test10、增加

10、功能宏 SelectSl. SelectS2. SelectS3 设置如下:功能宏名称功能宏实现SelectSlSlSelect; S2_DeSelect; S3_DeSelect;SelectS2Sl_DeSelect; S2_Select; S3_DeSelect;SelectS3Sl_DeSelect; S2_DeSelect; S3_Select;11、在左边的树形结构窗,选择“工程管理-端口设置-端口 DJ将引脚4设置如下:使用情况功能选择输入输出名称置高置低使用10输出BeepBeep_ShutBeep_0pen12、在左边的树形结构窗,选择“工程管理-用户程序-Main Logi

11、c. 在程序编写窗 口输入程序。13、在左边的树形结构窗,选择“工程管理-基本操作-生成下载”,点击生成程序文 件”按钮。四、设计程序void Main.ogic(void)*定义局部变量*uint8 a.bc.de.fg.h.ki.j;14、程序编译成功后,接通硬件实验平台电源,将目标文件下载到硬件实验平台。初始化输入管脚*”*初始化项目中用到的其它硬件和变捷*Loop5:*for (i二0; i10;i卄) for (j=0;j5;j+)SelectLED(O); DrawLED(i.O); delay_lms(); SelectLED(l); DrawLED(i.O); delay_lm

12、s(); SelectLED(2);DrawLED(i.O); delay_lms(); SelectLED(3); DrawLED(i.O); delay_lms(); SelcctLED ; DrawLED(i,O); delay_lms (); SelectLED(5); DrawLED(i.O); delay_lms(); SelectLED(6); DrawLED(i.O); delay_lms (); SelectLED(7); DrawLED(i.O); delay_lms (); Beep_Open; delay_10ms(): Beep_Shut;a-0;b二11; c 二

13、0; d=ll; e-0; f 二0; g二 0; h-4;/*”*/wh i1c(1)/* 在这里完成自己的项目逻辑 * /*定时显示*/Loop8:for (k-0;kl;) SelectLED(O);DrawLED(h.O); delay_lms(); SelectLED(l); DrawLED(g.O); delay_lms():SelectLED(2); DrawLED(f.O); delay_lms();SelectLED(3);DrawLED(e.O); delay_lms();SelectLED(4);DrawLED(d.O); delay_lms();SelectLED(5)

14、; DrawLED(c.O); delay_lms();SelectLED (6); DrawLED(b.O); delay_lms(); SelectLED(7); DrawLED(a.O); delay_lms(); SelectSl;Rl_Testelse后台主循环elseBeep_0pcn; delay_30ms(); delay_30ms(); Beep_Shut; delay_30ms(); delay_30ms(); Beep_0pen; delay_30ms(); delay_30ms(); Beep_Shut; delay_30ms(); delay_30ms(); Beep

15、_0pen; delay_30ms(); delay_30ms(); Beep_Shut; c=c+3; goto Loop6;SelectS2;Rl.Testelsedelay_20ms();Rl_TestelseBeep_0pen; delay_300ms(); Beep_Shut; a+;delay_20ms();Rl_TestelseBeep Open; delay_300ms();Beep_Shut;C+;goto Loop6;R2_Testelsedelay_20ms();R2_TestelseBeep_()pen; delay_100ms();Becp_Shut; delay00

16、ms():Beep_Opcn; delay_100ms();Beep_Shut; c=c+2; goto Loop6;R3_Testelsegoto Loop7:delay_20ms();R3 TestR2_Testelsedelay_20ms();R2_TestelseBecp_()pen; de lay. 100ms (); Beep_Shut; delay_100ms();Beep_0pcn; delay_100ms();Beep_Shut; a-a+2; goto Loop7;R3_Testelsedelay_20ms();R3_TestelseBeep_0pcn; delay_30m

17、s(); delay_30ms();Becp_Shut; delay_30ms(); delay_30ms();Beep_0pen;delay_30ms():delay_30ms(); Beep_Shut; delay_30ms(); delay_30ms(); Beep_0pcn; delay_30ms(); delay_30ms(); Beep_Shut; a=a+3;goto Loop7:SelectS3;Rl_Testelsedelay_20ms();Rl_TestelseBeep_0pen; delay_200ms(); Beep_Shut; goto Loop3;R3_Testel

18、sedelay_20ms();R3_Testelsegoto Loop5;/瞅队定时得分累计权for (b=0;b9)a=a-10;for (;a10;)goto Loop8; Loop?:if(kl) a-a;if(b=ll) b=0;B定时队得分累计权for (d=0;d9)c=c-10;for (;c10;)goto Loop8;Loop6:if(kI) c=c;if(d=ll) d 二 0;/*A队计时得分累计权for (b=0;b9)a-a-10;for (;a10;)goto Loop 1; Loop2:if(kl)3二a;if(b=ll) b=0;B队计时得分累计权for (d=

19、0;d9)c=c-10;for (;c10;)goto Loopi:Loopl:if(kl) c=c; if(d=ll) d二0;/*倒数计时权for (h=3;h10;h)for (g二9;g10;g)for (f=5;f10;f)for (e=9;e10;)goto Ix)op3; Loopd:i f(kl) e=e;/*计时显示*/Loop3:for (k=0;kl;)for (i-0;i112;i+)SelectLED(O);DrawLED(h.O); delay_lms(); SelectLED(l); DrawHiD(g.O); delay_lms();SelectLED(2);D

20、rawLED(f.O); delay_lms();SelectLED(3);DrawLED(e.0); delay_lms(); SelectLED(4);DrawLED(d,0); delay_lms();SelectLED(5);DrawLED (c.0); delay_lms();SelectLED(6);DrawLED(b.O); delay_lms();SelectLED(7);DrawLED(a.0); delay_lms(); SelectSl;Rl_Testelsedelay_20ms();Rl_TestelseIJeep_Ope n; delay_300ms(); Beep_

21、Shut; c+; e; goto Loop1;R2_Testelsedelay_20ms();R2_TestelseBeep_0pen; delay_100ms(); Beep_Shut; delay()0ms ();Beep_0pen; delay_100ms();Beep_Shut; c二c+2;goto Loop1;R3_Testelse(delay_20ms(); R3_TestelseBeep_0pen; delay_30ms(); delay_30ms(): Beep_Shut; delay_30ras(); delay_30ms(); Beep_0pen; delay_30ms(); delay_30ms(); Beep_Shut; delay_30ms(); delay_30ms(); Beep_0pen; delay_30ms(); delay_30ms(); Beep_Shut; c=c+3; e; goto Loopl;SelectS2;Rl_Testelsedelay_20ms():Rl_Test(elseBe

温馨提示

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

评论

0/150

提交评论