AVR单片机Atmega48程序设计报告比赛计时计分器Word格式.docx
- 文档编号:20700672
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:29
- 大小:466.10KB
AVR单片机Atmega48程序设计报告比赛计时计分器Word格式.docx
《AVR单片机Atmega48程序设计报告比赛计时计分器Word格式.docx》由会员分享,可在线阅读,更多相关《AVR单片机Atmega48程序设计报告比赛计时计分器Word格式.docx(29页珍藏版)》请在冰豆网上搜索。
BIT1
7、在左边的树形结构窗内,选择“工程管理-端口设置-端口B”,将引脚3-引脚5设置如下:
使用情况
功能选择
输入输出
名称
置高
置低
引脚3
使用
IO
输出
A0
A0_SetHigh
A0_SetLow
引脚4
A1
A1_SetHigh
A1_SetLow
引脚5
A2
A2_SetHigh
A2_SetLow
8、增加全局函数SelectLED和DrawLED设置如下:
返回类型
函数参数
参数类型
SelectLED
void
Uint8u8_Number
DrawLED
Uint8u8_Number,Uint8u8_Point
SelectLED函数实现:
voidSelectLED(uint8u8_Number)
{
//HC595_165_Write595Byte(0xff);
//Select595;
//DeSelect595;
DrawLED(255,0);
switch(u8_Number)
case0:
A2_SetLow;
A1_SetLow;
A0_SetLow;
break;
case1:
A0_SetHigh;
case2:
A1_SetHigh;
case3:
case4:
A2_SetHigh;
case5:
case6:
case7:
}
DrawLED函数实现:
VoidDrawLED(uint8u8_Number,uint8u8_Point)
uint8u8_Char=0;
u8_Char=0xc0;
u8_Char=0xf9;
u8_Char=0xa4;
u8_Char=0xb0;
u8_Char=0x99;
u8_Char=0x92;
u8_Char=0x82;
u8_Char=0xf8;
case8:
u8_Char=0x80;
case9:
u8_Char=0x90;
case11:
u8_Char=0xff;
case255:
u8_Char=0xFF;
if(u8_Point==1)
CLRBIT(u8_Char,BIT7);
HC595_165_Write595Byte(u8_Char);
Select595;
DeSelect595;
9、在左边的树形结构窗内,选择“工程管理-端口设置-端口C”,将引脚0-引脚5设置如下:
测试
引脚0
S1
S1_DeSelect
S1_Select
引脚1
输入
R1
R1_Test
引脚2
S2
S2_DeSelect
S2_Select
R2
R2_Test
S3
S3_DeSelect
S3_Select
R3
R3_Test
10、增加功能宏SelectS1、SelectS2、SelectS3设置如下:
功能宏名称
功能宏实现
SelectS1
S1_Select;
S2_DeSelect;
S3_DeSelect;
SelectS2
S1_DeSelect;
S2_Select;
SelectS3
S3_Select;
11、在左边的树形结构窗内,选择“工程管理-端口设置-端口D”,将引脚4设置如下:
Beep
Beep_Shut
Beep_Open
12、在左边的树形结构窗内,选择“工程管理-用户程序-Main_Logic.c”,在程序编写窗口内输入程序。
13、在左边的树形结构窗内,选择“工程管理-基本操作-生成下载”,点击“生成程序文件”按钮。
14、程序编译成功后,接通硬件实验平台电源,将目标文件下载到硬件实验平台。
四、设计程序
voidMain_Logic(void)
/*
**********************
定义局部变量
*/
uint8a,b,c,d,e,f,g,h,k,i,j;
**************************
初始化输入管脚
********************************
初始化项目中用到的其它硬件和变量
*/
Loop5:
for(i=0;
i<
10;
i++)
{
for(j=0;
j<
5;
j++)
{
SelectLED(0);
DrawLED(i,0);
delay_1ms();
SelectLED
(1);
SelectLED
(2);
SelectLED(3);
SelectLED(4);
SelectLED(5);
SelectLED(6);
SelectLED(7);
Beep_Open;
delay_10ms();
Beep_Shut;
}
}
a=0;
b=11;
c=0;
d=11;
e=0;
f=0;
g=0;
h=4;
*************************
后台主循环
while
(1)
{
/*
*****************************
在这里完成自己的项目逻辑
*/
/*定时显示*/
Loop8:
for(k=0;
k<
1;
)
DrawLED(h,0);
DrawLED(g,0);
DrawLED(f,0);
DrawLED(e,0);
DrawLED(d,0);
DrawLED(c,0);
DrawLED(b,0);
DrawLED(a,0);
SelectS1;
R1_Test
{
}
else
delay_20ms();
R1_Test
{
}
else
Beep_Open;
delay_300ms();
Beep_Shut;
c++;
gotoLoop6;
R2_Test
R2_Test
delay_100ms();
c=c+2;
R3_Test
R3_Test
delay_30ms();
c=c+3;
SelectS2;
a++;
gotoLoop7;
a=a+2;
a=a+3;
SelectS3;
delay_200ms();
gotoLoop3;
gotoLoop5;
/*A队定时得分累计*/
for(b=0;
b<
b++)
if(a>
9)a=a-10;
for(;
a<
gotoLoop8;
Loop7:
if(k<
1)a=a;
if(b==11)b=0;
/*B定时队得分累计*/
for(d=0;
d<
d++)
if(c>
9)c=c-10;
c<
Loop6:
1)c=c;
if(d==11)d=0;
/*A队计时得分累计*/
gotoLoop4;
Loop2:
/*B队计时得分累计*/
Loop1:
/*倒数计时*/
for(h=3;
h<
h--)
for(g=9;
g<
g--)
for(f=5;
f<
f--)
for(e=9;
e<
{
gotoLoop3;
Loop4:
1)e=e;
}
/*计时显示*/
Loop3:
for(k=0;
for(i=0;
112;
SelectLED(0);
DrawLED(h,0);
delay_1ms();
SelectLED
(1);
DrawLED(g,0);
SelectLED
(2);
DrawLED(f,0);
SelectLED(3);
DrawLED(e,0);
SelectLED(4);
DrawLED(d,0);
SelectLED(5);
DrawLED(c,0);
SelectLED(6);
DrawLED(b,0);
SelectLED(7);
DrawLED(a,0);
SelectS1;
delay_20ms();
R1_Test
else
Beep_Open;
delay_300ms();
Beep_Shut;
c++;
e--;
gotoLoop1;
R2_Test
delay_100ms();
c=c+2;
R3_Test
delay_30ms();
c=c+3;
SelectS2;
Beep_S
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AVR 单片机 Atmega48 程序设计 报告 比赛 计时 计分