河南理工大学单片机实验报告 联系客服

发布时间 : 星期六 文章河南理工大学单片机实验报告更新完毕开始阅读a0f10efe10661ed9ac51f3ad

单 片 机 验 收 报 告

姓名:学号:班级:学院:

实验一 流水灯实验

一、 实验目的

1) 简单 I/O 引脚的输出 2) 掌握软件延时编程方法 3) 简单按键输入捕获判断

二、 实验实现的功能

1) 开机是点亮 12 发光二极管,闪烁三下 2) 按照顺时针循环依次点亮发光二极管

3) 通过按键将发光二极管的显示改为顺逆时针方式

三、 系统硬件设计

四、 系统软件设计

/*

*******程序名:流水灯实验***********

*******程序功能:按键控制流水灯的顺逆旋转****** *******完成时间: 2015年12月29号下午*** *******完成人 :电科1303班 何海坤 */

/****头文件,注:如果没有添加stc10.h文件到keil安装路径里,则需要添加,否则请将头文件改成reg51.h*****/

#include

/****宏定义****/

#define uchar unsigned char #define uint unsigned int /***定义按键端口***/ sbit key = P3^6; sbit keyl = P0^5;

/****led控制数组******/ uchar table[] =

{0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xfb,0xf7,0xef,0xdf};

//当引脚电平为时,引脚对应的led亮

/******子函数定义*******/

void delay1ms(); //延时函数1ms时间 void delaynms(uint); //延时函数自定义毫秒数 void delay(); //定义延时函数100ms时间

void led_init(); //初始化led全体同时亮灭三次

/**主函数**/ void main() { uchar m = 0; uchar k = 0; keyl = 0 ; led_init(); //led初始化为全体led同时闪灭三次 while(1) { if(!key) { delaynms(5); if(!key) { m++; if(m == 2) { m = 0; } while(!key); } } if(m == 0) { k++; if(k == 13)k=1; } else k--; if(k == 0)k = 12; switch(k-1) { case 0 : P2 = table[0]; P3 = 0xff; delay(); break; case 1 : P2 = table[1];