昆明理工大学机电工程学院 嵌入式系统设计与应用
实验报告书
实 验 名 称:
流水灯实验
2012级123班
段剑华 201210301326 张文斌、高贯斌
年级专业及班级: 姓 名:
学 号:
指 导 教 师: 评 定 成 绩: 教 师 评 语:
实验时间: 2014 年 12 月 13 日
实验一 流水灯实验
一、实验要求
实验平台上有8个发光二极管,每个发光二级管串联了一个限流电阻,用XS128的PA口控制发光二极管的亮灭状态,PA口的管脚置1时,发光二级管熄灭,PA口清0时,发光二级管点亮。
要求将实验平台上的8个发光二极管依次点亮,间隔为0.5秒,并且这8个发光二极管一直循环闪亮。 二、实验电路连线
连线 1 2 3 4 5 6 7 8
P1.0 ●-----------------------● LED0 P1.1 ●-----------------------● LED1 P1.2 ●-----------------------● LED2 P1.3 ●-----------------------● LED3 P1.4 ●-----------------------● LED4 P1.5 ●-----------------------● LED5 P1.6 ●-----------------------● LED6
P1.7 ●-----------------------● LED7
引脚 PORTA_PA0 PORTA_PA1 PORTA_PA2 PORTA_PA3 PORTA_PA4 PORTA_PA5 PORTA_PA6 PORTA_PA7 连接孔 LED1 LED2 LED3 LED4 LED5 LED6 LED7 LED8 功能简要说明 数据端口 数据端口 数据端口 数据端口 数据端口 数据端口 数据端口 数据端口
连线 连接孔1 连接孔2 连线 连接孔1 连接孔2 1 P1.0 2 P1.1 3 P1.2 4 P1.3
实验程序流程图
L0 1 K0 P1.0 L1 2 K1 P1.1 L2 3 P1.2 L4 L3 4 P1.3 L5 实验2: P1口输入输出
开始 设置初始值 数据输出 左移一位 延时
三、实验程序
#include
#include \
/***************定义8个LED引脚***************************/ sbit LED0=P1^0; //定义一个LED的引脚 sbit LED1=P1^1; sbit LED2=P1^2; sbit LED3=P1^3; sbit LED4=P1^4; sbit LED5=P1^5; sbit LED6=P1^6; sbit LED7=P1^7;
void Delay(void); void main() { while(1) { LED0=0; Delay(); LED0=1; LED1=0; Delay(); LED1=1; LED2=0; Delay(); LED2=1; LED3=0; Delay(); LED3=1; LED4=0; Delay(); LED4=1; LED5=0; Delay(); LED5=1; LED6=0; Delay(); LED6=1; LED7=0; Delay(); //定义另一个LED的引脚 //子函数的声明,后面要加分号。 //主程序main函数 //在主程序中设置死循环\ //P1.0口输出低电平,使LED0灯亮 //延时子函数的调用 //P1.0口输出高电平,使LED0灯灭 //P1.1口输出低电平,使LED1灯亮 //延时子函数的调用 //P1.1口输出高电平,使LED1灯灭 //P1.2口输出低电平,使LED2灯亮 //延时子函数的调用 //P1.2口输出高电平,使LED2灯灭 //P1.3口输出低电平,使LED3灯亮 //延时子函数的调用 //P1.3口输出高电平,使LED3灯灭 //P1.4口输出低电平,使LED4灯亮 //延时子函数的调用 //P1.4口输出高电平,使LED4灯灭 //P1.5口输出低电平,使LED5灯亮 //延时子函数的调用 //P1.5口输出高电平,使LED5灯灭 //P1.6口输出低电平,使LED6灯亮 //延时子函数的调用 //P1.6口输出高电平,使LED6灯灭 //P1.7口输出低电平,使LED7灯亮 //延时子函数的调用
}
}
LED7=1; //P1.7口输出高电平,使LED7灯灭
四、实验现象以及碰到什么问题?如何解决?
(1)没有初始化程序,后面的程序不能正常运行,首先要初始化芯片。
(2)刚开始时8个灯全部同时一起亮,没有一个接一个的 解决方法:设置了延时子函数 (3)8个灯亮了就熄灭,没有循环 解决方法:在主程序中设置死循环while循环