《单片机原理与应用》实验报告3 数码管实验.docx
- 文档编号:28226301
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:22
- 大小:408.09KB
《单片机原理与应用》实验报告3 数码管实验.docx
《《单片机原理与应用》实验报告3 数码管实验.docx》由会员分享,可在线阅读,更多相关《《单片机原理与应用》实验报告3 数码管实验.docx(22页珍藏版)》请在冰豆网上搜索。
《单片机原理与应用》实验报告3数码管实验
《单片机原理与应用》实验报告
实验序号:
4 实验项目名称:
数码管实验
学 号
1507162233
姓 名
杨舫
专业、班
15计算机
实验地点
实1-218
指导教师
何一凡
实验时间
2016.10.14
一、实验目的
1.了解8段数码管工作原理
2.掌握8段数码管的使用方法
3.了解4位数码管工作原理
4.掌握4位数码管的使用方法
5.进一步掌握Arduino设计的流程、方法
二、实验设备(环境)及要求
硬件:
ØPC机
ØArduinoUno开发板
ØUSB下载线
Ø面包板,面包板跳线
Ø电阻,8段数码管,4位数码管等
软件:
ØArduino集成开发环境
三、实验要求
实验1:
点亮8段数码管,并显示各个数字(具体要求详见课堂ppt)
实验2:
用4位数码管实现圈、Z字形等效果(具体要求详见课堂ppt)
实验3(选做):
用4位数码管实现秒表功能
四、实验内容
实验1:
1.原理图
2.实际连接图
3.实验程序代码
//设置控制各段的数字IO脚
inta=7;//定义数字接口7连接a段数码管
intb=6;//定义数字接口6连接b段数码管
intc=5;//定义数字接口5连接c段数码管
intd=11;//定义数字接口11连接d段数码管
inte=10;//定义数字接口10连接e段数码管
intf=8;//定义数字接口8连接f段数码管
intg=9;//定义数字接口9连接g段数码管
intdp=4;//定义数字接口4连接dp段数码管
voiddigital_1(void)//显示数字1
{
unsignedcharj;
digitalWrite(c,LOW);//点亮c段
digitalWrite(b,LOW);//点亮b段
for(j=7;j<=11;j++)//熄灭其余段
digitalWrite(j,HIGH);
digitalWrite(dp,HIGH);//熄灭小数点DP段
}
voiddigital_2(void)//显示数字2
{
unsignedcharj;
digitalWrite(b,LOW);
digitalWrite(a,LOW);
for(j=9;j<=11;j++)
digitalWrite(j,LOW);
digitalWrite(dp,HIGH);
digitalWrite(c,HIGH);
digitalWrite(f,HIGH);
}
voiddigital_3(void)//显示数字3
{
unsignedcharj;
digitalWrite(g,LOW);
digitalWrite(d,LOW);
for(j=5;j<=7;j++)
digitalWrite(j,LOW);
digitalWrite(dp,HIGH);
digitalWrite(f,HIGH);
digitalWrite(e,HIGH);
}
voiddigital_4(void)//显示数字4
{
digitalWrite(c,LOW);
digitalWrite(b,LOW);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
digitalWrite(dp,HIGH);
digitalWrite(a,HIGH);
digitalWrite(e,HIGH);
digitalWrite(d,HIGH);
}
voiddigital_5(void)//显示数字5
{
unsignedcharj;
for(j=7;j<=9;j++)
digitalWrite(j,LOW);
digitalWrite(c,LOW);
digitalWrite(d,LOW);
digitalWrite(dp,HIGH);
digitalWrite(b,HIGH);
digitalWrite(e,HIGH);
}
voiddigital_6(void)//显示数字6
{
unsignedcharj;
for(j=7;j<=11;j++)
digitalWrite(j,LOW);
digitalWrite(c,LOW);
digitalWrite(dp,HIGH);
digitalWrite(b,HIGH);
}
voiddigital_7(void)//显示数字7
{
unsignedcharj;
for(j=5;j<=7;j++)
digitalWrite(j,LOW);
digitalWrite(dp,HIGH);
for(j=8;j<=11;j++)
digitalWrite(j,HIGH);
}
voiddigital_8(void)//显示数字8
{
unsignedcharj;
for(j=5;j<=11;j++)
digitalWrite(j,LOW);
digitalWrite(dp,HIGH);
}
voiddigital_9(void)//显示数字9
{
digitalWrite(a,LOW);
digitalWrite(b,LOW);
digitalWrite(c,LOW);
digitalWrite(d,LOW);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
digitalWrite(e,HIGH);
digitalWrite(dp,HIGH);
}
voiddigital_dp(void)//显示
{
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
digitalWrite(e,HIGH);
digitalWrite(dp,LOW);
}
voiddigital_all(void)//显示
{
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
digitalWrite(e,HIGH);
digitalWrite(dp,HIGH);
}
voidsetup()
{
inti;//定义变量
for(i=4;i<=11;i++)
pinMode(i,OUTPUT);//设置4~11引脚为输出模式
}
voidloop()
{
while
(1)
{
digital_1();//显示数字1
delay(1000);//延时2s
digital_2();//显示数字2
delay(1000);//延时1s
digital_3();//显示数字3
delay(1000);//延时1s
digital_4();//显示数字4
delay(1000);//延时1s
digital_5();//显示数字5
delay(1000);//延时1s
digital_6();//显示数字6
delay(1000);//延时1s
digital_7();//显示数字7
delay(1000);//延时1s
digital_8();//显示数字8
delay(1000);//延时1s
digital_9();//显示数字9
delay(1000);//延时1s
digital_dp();//显示小数点
delay(1000);//延时1s
digital_all();//显示小数点
delay(1000);//延时1s
}
}
4.实验操作说明
第一步:
连接线路,启动程序,上传代码;
第二步:
观察数码管的显示。
5.其他说明
无
6.实验结果
见实验5文件夹下视频:
8段数码管实验结果。
实验2:
1.原理图
2.实际连接图
3.实验程序代码
//设置控制各段的数字IO脚
inta=1;//定义数字接口7连接a段数码管
intb=2;//定义数字接口6连接b段数码管
intc=3;//定义数字接口5连接c段数码管
intd=4;//定义数字接口11连接d段数码管
inte=5;//定义数字接口10连接e段数码管
intf=6;//定义数字接口8连接f段数码管
intg=7;//定义数字接口9连接g段数码管
intdp=8;
intd4=9;
intd3=10;
intd2=11;
intd1=12;
voiddigital_up_1(void)
{
unsignedcharq,m;
for(m=12;m>=9;m--)
{
for(q=1;q<=12;q++)
digitalWrite(q,LOW);
digitalWrite(a,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
digitalWrite(m,LOW);
delay(200);
}
}
voiddigital_up_2(void)
{
unsignedcharq,m;
for(m=9;m<=12;m++)
{
for(q=1;q<=12;q++)
digitalWrite(q,LOW);
digitalWrite(a,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
digitalWrite(m,LOW);
delay(200);
}
}
voiddigital_right(void)
{
unsignedcharq,m;
for(m=2;m<=3;m++)
{
for(q=1;q<=12;q++)
digitalWrite(q,LOW);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
digitalWrite(m,HIGH);
delay(200);
}
}
voiddigital_right_1(void)
{
unsignedcharq,m;
for(q=1;q<=12;q++)
digitalWrite(q,LOW);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
digitalWrite(b,HIGH);
delay(200);
}
voiddigital_right_2(void)
{
unsignedcharq,m;
for(q=1;q<=12;q++)
digitalWrite(q,LOW);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
digitalWrite(c,HIGH);
delay(200);
}
voiddigital_down_1(void)
{
unsignedcharq,m;
for(m=9;m<=12;m++)
{
for(q=1;q<=12;q++)
digitalWrite(q,LOW);
digitalWrite(d,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
digitalWrite(m,LOW);
delay(200);
}
}
voiddigital_down_2(void)
{
unsignedcharq,m;
for(m=12;m>=9;m--)
{
for(q=1;q<=12;q++)
digitalWrite(q,LOW);
digitalWrite(d,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
digitalWrite(m,LOW);
delay(200);
}
}
voiddigital_left(void)
{
unsignedcharq,m;
for(m=5;m<=6;m++)
{
for(q=1;q<=12;q++)
digitalWrite(q,LOW);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(m,HIGH);
delay(200);
}
}
voiddigital_left_1(void)
{
unsignedcharq,m;
for(q=1;q<=12;q++)
digitalWrite(q,LOW);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(e,HIGH);
delay(200);
}
voiddigital_left_2(void)
{
unsignedcharq,m;
for(q=1;q<=12;q++)
digitalWrite(q,LOW);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(f,HIGH);
delay(200);
}
voiddigital_mid(void)
{
unsignedcharq,m;
for(m=9;m<=12;m++)
{
for(q=1;q<=12;q++)
digitalWrite(q,LOW);
digitalWrite(g,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
digitalWrite(m,LOW);
delay(200);
}
}
voiddigital_thing_1(void)
{
unsignedcharq;
for(q=1;q<=12;q++)
digitalWrite(q,LOW);
digitalWrite(a,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
digitalWrite(b,HIGH);
digitalWrite(g,HIGH);
digitalWrite(f,HIGH);
digitalWrite(12,LOW);
delay(200);
}
voiddigital_thing_2(void)
{
unsignedcharq,m;
for(q=1;q<=12;q++)
digitalWrite(q,LOW);
digitalWrite(d,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(12,HIGH);
digitalWrite(g,HIGH);
digitalWrite(c,HIGH);
digitalWrite(e,HIGH);
delay(200);
}
voiddigital_thing_3(void)
{
unsignedcharq,m;
for(q=1;q<=12;q++)
digitalWrite(q,LOW);
digitalWrite(a,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
digitalWrite(b,HIGH);
digitalWrite(g,HIGH);
digitalWrite(f,HIGH);
digitalWrite(11,LOW);
delay(200);
}
voiddigital_thing_4(void)
{
unsignedcharq,m;
for(q=1;q<=12;q++)
digitalWrite(q,LOW);
digitalWrite(d,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
digitalWrite(c,HIGH);
digitalWrite(g,HIGH);
digitalWrite(e,HIGH);
delay(200);
}
voiddigital_1(void)
{
digital_up_1();
digital_right();
digital_down_1();
digital_left();
}
voiddigital_2(void)
{
digital_up_1();
digital_right_1();
digital_mid();
digital_left_1();
digital_down_2();
digital_right_2();
digital_mid();
digital_left_2();
}
voiddigital_3(void)
{
digital_thing_1();
digital_thing_2();
digital_thing_3();
digital_thing_4();
}
voidsetup()
{
inti;//定义变量
for(i=1;i<=12;i++)
pinMode(i,OUTPUT);//设置1~12引脚为输出模式
}
voidloop()
{
while
(1)
{
digital_1();
digital_1();
digital_2();
digital_2();
digital_3();
digital_3();
}
}
4.实验操作说明
第一步:
连接线路,启动程序,上传代码;
第二步:
观察数码管的显示。
5.其他说明
无
6.实验结果
见实验五文件夹下视频:
4位数码管实验结果。
实验3:
1.原理图
2.实际连接图
3.实验程序代码
4.实验操作说明
5.其他说明
6.实验结果
五、教师评语
签名:
日期:
成绩
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机原理与应用 单片机原理与应用实验报告3 数码管实验 单片机 原理 应用 实验 报告 数码管