文档详情

嵌入式系统原理与应用流水灯实验.doc

发布:2017-04-13约2.62千字共5页下载文档
文本预览下载声明
实 验 报 告 课程名称:嵌入式系统原理与应用 实验名称:实验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;
显示全部
相似文档