1 / 102
文档名称:

单片机整套实验及程序交通灯,跑马灯等.docx

格式:docx   大小:1,046KB   页数:102页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

单片机整套实验及程序交通灯,跑马灯等.docx

上传人:2072510724 2021/10/26 文件大小:1.02 MB

下载得到文件列表

单片机整套实验及程序交通灯,跑马灯等.docx

文档介绍

文档介绍:实验1跑马灯实验
、实验目的
初步学会Proteus ISIS和uVision2单片机集成开发环境的使用;
初步掌握采用汇编语言与C语言开发单片机系统的程序结构;
掌握80C51单片机通用I/O 口的使用;
掌握单片机内部定时/计数器的使用及编程方法以及中断处理程序的编写方
、实验设备及器件
硬件:PC机,HNIST-1型单片机实验系统
软件:Proteus ISIS单片机仿真环境,uVision2单片机集成开发环境
、实验内容
编写一段程序,采用P1 □作为控制端口,使与P1 □相接的四个发光二极管
(D1、D2、D3、D4)按照一定的方式点亮。如点亮方式为:先点亮 D1,延时一段 时间,再顺序点亮D2••…D4 ,然后又是D4••…D1 ,同时只能有一个灯亮;然后每 隔一段时间一次使相邻两个灯亮,三个灯亮,四个灯亮,最后闪烁三次,接着循环变 化。
基于Proteus ISIS仿真环境完成上述功能的仿真。
基于uVision2单片机集成开发环境与硬件平台完成程序的脱机运行。
四、实验原理图
| LED U1
1 |_U
pioa poo
P11JT F01
P12 P02
PIS P03
P14 P04
P15 P05
Pit PQ5
Pl 7 F07
IHTI P20
1MT0 P21
ATS9s52 p 及
T1 一 一 P23
TO P24
F25
EA/7P P26
P27
XI 融
RESET KXD
TZD
丽 AL&P
W PSEM
39
| LED 2
38
3
37
| LED | 4
36
$
35
( LED 6
34
7
33
3
32
一弓
21
_12_?
22
u
15
23
24
]4
25
31
26
27
IS
23
10
18
9
_ J
11
30
u
u
D4
DI
D2
跑马灯实验电路原理图
电路原理图如上图
,〜,发光
二极管按照一定次序发光,相邻发光二极管的发光时间间隔可以通过定时器控制, 可以通过软件延时实现。
五、软件流程图与参考程序
主程序流程图如下:
参考程序
#include<>
#include<>
#define uchar unsigned char
#define uint unsigned int
uchar aa, num, speed, flag;
uchar code table[]={0x0e, 0x0d, 0x0b, 0x07};
0x00};
uchar code table1[]={0x0a, 0x05, 0x09, 0x06};
uchar codetable2[]={0x0c, 0x09, 0x03, 0x08, 0x01, 0x0e, 0x0c, 0x08, void delay(uint z)//延时函数
{
uint x;
uchar y;
for(x=z;x>0;x--)
for(y=200;y>0;y--);
}
void init()//条件初始化函数
{ flag=0;
speed=10;//空制跑马灯流水速度
TMOD=0x01;//中断方式
TH0=(65535-50000)/256;
TL0=(65536-50000)%256;//初值
EA=1;〃打开总中断
ET0=1;//打开外中断0
TR0=1;
}
void main()
{
init();//调用初始化函数
while(1)
{
if(flag)
{
delay(2000);//调用延时函数
for(num=0;num<4;num++)//从左至右间隔一个依次闪烁
{
P1=table[num];
delay(2000);
}
for(num=3;num>0;num--)//从左至右间隔一个依次闪烁
{
P1=table[num];
delay(2000);
}
for(num=0;num<4;num++)//从左至右间隔两个依次闪烁
{
P1=table1[num];
delay(2000);
}
for(num=3;num>0;num--)//从左至右间隔两个依次闪烁
{
P1=table1[num];
delay(2000);
}
for(num=0;num<6;num++)//两个,三个,四个跑马灯依次闪烁
{
P1=table2[num];