学 14142200277序 19
单片机原理与接口技术
实验 告 实验项目序
一
实验项目名称
跑马灯实验
姓
名
卢志雄
专 业 电子信息工程
班
级
电信14-2BF
完成时间
2016年4月2日
一、实验内容
实验内容为 3 项,其中第 1、2项必做。
1、基本得流水灯。
根据图 1 电路,编写一段程序,使 8 个发光二极管 D1、D2、D3、D4、D5、D6、D7、D8 顺序(正序)点亮:先点亮 D1,再点亮 D2、D3……D8、D1……,循环点亮。每点亮一个 LED,采用软件延时一段时间。
2、简单键控得流水灯。
不按键,按正序点亮流水灯;按下K1不松手,按倒序点亮流水灯,即先点亮D8,
再顺序点亮D7、D6……D1、D8……。松手后,又按正序点亮流水灯。
3、键控得流水灯。
上电,不点亮 LED,按一下 K1键,按正序点亮流水灯。按一下 K2 键,按倒序点亮流水灯,按一下 K3 键,全部关闭LED。
二、电路原理图
XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51D0 D1 D2 D3 D4 D5 D6 D7+5VK1K2K3K4 图 1
跑马灯实验电路原理图 三、程序流程图
图 2
简单键控得流水灯程序流程图 四、源程序 1、基本得流水灯 #include
//延时函数 data uint j; { data uint i;
while(j–)
for(i=0;i<250;i++); } void main( )
/p>
//主函数 { data uchar a;
a=1;
/p>
//保证只有一个点亮
while(1)///p>
环循断不
{
P2=~a;
//低电平点亮
a=a
//左移一位,右补 0
if(a==0)a=1; // 0 全/p>
delay(2250);} // 时延亮点动流测 P2 键值 开始 完成对应键值得功能 判断 P2 键值就是否改变
} 2、简单键控得流水灯 #include #define uchar unsigned char #define uint unsigned int void delay(uint i) { uchar t;
while(i–)
{
for(t=0;t<120;t++);
}void main() {
;a rahcu atad/p>
;1=a/p>
while(P2==0xff) /p>
{ ;a~=0P/p>
/p>
a=a<<1;
/p>
)0==a(fi
;1=a/p>
delay(250);
}
)efx0==2P(elihw
{
P0=~a;
a=a>>1;
)0==a(fi/p>
;821=a
;)052(yaled/p>
}/p>
/p>
} 3、键控得流水灯 #include
if(P2==0xfd) b=0xfd;
if(P2==0xfb)
b=0xfb;
for(t=0;t<120;t++);
}void main()
{
data uchar a;
a=1;
/p>
while(P2==0xfe)
/p>
/p>
{P0=~a;
/p>
a=a<
)0==a(fi;1=a/p>
/p>
delay(250);
while(P2==0xff)
/p>
/p>
{/p>
;a~=0P
;1<
)0==a(fi/p>
a=1;
;)052(yaled/p>
}}
while(P2==0xfd)
/p>
/p>
{
;a~=0P/p>
a=a>>1;
/p>
if(a==0)a=128;
delay(250);
)ffx0==2P(elihw
{
;a~=0P
;1>>a=a/p>
/p>
/p>
/p>
;821=a)0==a(fi/p>
delay(250);
}
}
while(P2==0xfb)
{
};ffx0=0P五、实验结果 1 、 基本得流水灯
基本流水灯仿真图 2、 、 简单键控得流水灯
简单键控得流水灯仿真图 3、 、 键控得流水灯
键控得流水灯仿真图 六、思考题回答 1、采用 I/O 口作为输出口时要考虑哪些因素什么实验装置中 LED要串联一个电阻答:电压得大小(包括它能感知得最小电压作为高电平),电流得驱动能力等,同时也要要考虑它就是否要加上拉电阻。实验装置中LED串联一个电阻就是为了防止电流过大而对LED灯有损坏。
2、采用 I/O 口作为输入口时要注意什么控得流水灯时为什么要在延时程序中检测就是否按键答:在进行读操作时,必须要先向 Px 口得锁存器写 1;本程序未采用例程所说得方法,但就是在延时函数中进行按键检测就是为了防止在延时程序中间有键按下却检测不到得情况,即放在延时函数中检测间隔时间短,反应快。
3、为什么延时程序要做一个函数灯黄灯绿灯红,制控得灯 信通交如比。用调便方,理处体具情事体具以可:答有时间控制,亮得长短就要由延时程序控制等等。
七、实验心得体会
学习单片机这门课程,要掌握单片机指令系统中汇编语言各种基本语句得意义及汇编语言程序设计得基本知识与方法,以及单片机与其她设备相连接得输入输出中断等接口技术。跑马灯实验虽然就是第一个单片机实验,却让我深有体会,首先要熟悉单片机指令,上课时跟着老师走,认真对待,每次只要跟上老师上课所讲得内容以及按要求完成老师布置得课堂习题,掌握程序得编写以及完成实际上机操作就是不成问题得,然后就就是必须熟练运用一些基本语句,运用proteus与 uVision4 等仿真软件,最后就是上机操作,根据教程了解单片机与其她设备相连接得输入输出中断等接口技术,运用实际,就可以完成简单有趣得跑马灯实验了!
相关资源:专业LED灯光动画制作软件(安装后直接用!)_setup安装包-Delphi工具…
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!