嵌入式系统原理与应用流水灯实验.doc
文本预览下载声明
实 验 报 告
课程名称:嵌入式系统原理与应用
实验名称:实验2:流水灯实验
专 业:
学 号:
姓 名:
实验地点:
实验日期:
实验二 实
验
目
的
学习单片机I/O口结构特点及相关寄存器的使用方法
掌握一个简单具体的单片机项目的开发流程
了解Proteus ISIS软件及使用方法 实
验
环境
Keil uVision2 + Proteus7.8 + PC机一台 实验内容 打开ISIS 7 Professional,参照实验电路绘制仿真电路原理图
编程实现:
(1)从VD1~VD32主次点亮每个LED,然后熄灭。每个LED亮灯时间约200ms
(2)点亮VD32,200ms后点亮VD31......最后点亮VD1,直到灯全部被点亮
(3)在全部灯亮的情况下,从VD1~VD32逐次熄灭LED,熄灭VD1.延时200ms,然后熄灭VD2,延时200ms,......熄灭VD32,全部灯被熄灭
(4)重复上述过程
实验电路
程序及
主要模块流程图 #include reg51.h
unsigned char code tab1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};//左移单个点亮
unsigned char code tab2[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00,0xff};//右移逐个点亮
unsigned char code tab3[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff,0x00};//左移逐个熄灭
void Delay()
{
unsigned char i,j;
for(i=0;i255;i++)
for(j=0;j255;j++);
}
void main()
{
unsigned char i;
while(1)
{
//左移单个点亮,VD1---VD2---
for(i=0;i9;i++)
{
P1=tab1[i];//单个点亮D1~D8 ,0xfe 0xfd Delay();
}
for(i=0;i9;i++)
{
P0=tab1[i]; //单个点亮D9~D16 ,0xfe 0xfd Delay();
}
for(i=0;i9;i++)
{
P3=tab1[i]; //单个点亮D17~D24
Delay();
}
for(i=0;i9;i++)
{
P2=tab1[i]; //单个点亮D25~D32
Delay();
}
//右移逐个点亮,最后全亮 ,VD32-----VD31
for(i=0;i8;i++)
{
P2=tab2[i];//逐个点亮D32~D25 , 0x7f Delay();
}
for(i=0;i8;i++)
{
P3=tab2[i]; //逐个点亮D24~D17
Delay();
}
for(i=0;i8;i++)
{
P0=tab2[i]; //逐个点亮D16~D9
Delay();
}
for(i=0;i8;i++)
{
P1=tab2[i]; //逐个点亮D8~D1
Delay();
}
//左移逐个熄灭 ,
for(i=0;i8;
显示全部