大学单片机实验报告 篇一:单片机实验报告 单 片 机 实 验 报 告 姓名: 班级: 学号:任课老师:上课地点: 实验一 流水灯实验 一、实验目的及要求 1、闪耀的 LED; 2、从左到右的流水灯; 3、8 只 LED 左右来回点亮; 4、LED 模拟交通灯。 要求 1:LED 按设定的时间间隔闪耀 要求 2:接在 P0 口的 8 个 LED 从左到右循环依次点亮,产生走马灯效果要求 3:程序利用循环移位函数_crol_和_cror_形成来回滚动的效果; 二、实验原理 电路图 1、 电路图 2、 三、源程序 要求 1: #include reg51.h #define uchar unsigned char #define uint unsigned int sbit LED=P11; //延时 void DelayMS(uint x) { uchar i; while(x--) {for(i=0;i i++); } } //主程序 void main() { while(1) {LED=~LED;DelayMS(150); } } 要求 2: #include reg51.h #include intrins.h //包含程序中的_cror_(P0,y) #define uchar unsigned char #define uint unsigned int uchar led; void delay(unsigned int i) { uint j; uchar k; for(j=i;j j--)for(k=125;k k--); } void main() { led=0x7f;//只亮第一个 delay(1000); while(1) { P0=led; delay(500); led=_cror_(led,1);//P0 逐步右移一位。} } 要求 3: #include reg51.h #include intrins.h //包含程序中的_crol_(P0,y) #define uchar unsigned char #define uint unsigned int sbit led=P01; uchar i; void delay(unsigned int i) { uint j; uchar k; for(j=i;j j--)for(k=125;k k--); } void main() { P0=0xfe; delay(1000); while(1) { for(i=0;i i++) {P0=led; delay(500); led=_crol_(led,1); } for(i=0;i i++) {P0=led; delay(500); led=_cror_(led,1); } } } //P0 逐步左移一位。 //P0 逐步右移一位 实验二 独立键盘实验 一、实验目的 1、K1-K4 按键状态显示; 2、K1-K4 控制 LED 移位; 3、单只数码管循环显示 0~9; 4、K1-K4 控制数码管移位显示。 要求 1:K1、K2 按下时 LED 点亮,松开时熄灭,K3、K4 按下并释放时 LED 点亮, 再次按下并释放时熄灭; 要求 2: 按下 K1 时,P0 口 LED 上移一位; 按下 K2 时,P0 口LED 下移一位; 按下 K3 时,P2 口 LED 上移一位; 按下 K4 时,P...