文档介绍:实验一流水灯实验一、实验目的和要求 1、学习并掌握延时程序的 C语言编程方法。 2、掌握并行口编程的方法。二、实验设备 1、计算机一台。 2、MCS51 单片机实验系统一套。 3、上位机端 Keil C51 编译系统。三、实验线路图四、实验内容 1 、在 Keil 中,建立一个 Project ,单片机选 AT89S52 ,晶振选 12MHz ,加入下列程序 , 编译通过后,进入 Start Debug Session 状态,全速运行 RUN ,打开 Peripherals → I/O-ports → port 0 ,观察 引脚的状态,现象记录入实验报告。程序 #include <> sbit P00 = P0^0; void delay(unsigned int t) { while(--t); } main() { while(1) { P00=0; delay(62470); P00=1; delay(62470); }}2、将程序 烧录入单片机学习板,观察指示灯 LS1 的现象。分析并说明灯 LS1 和 引脚高低电平的关系。 3 、分析 程序中 delay() 函数中,在 12MHz 晶振下,传递的参数 t, 跟延时时间的关系。改写函数 delay() ,并利用 Debug 单步执行的调试功能, 调整参数,令传递的参数 t 数值对应时间单位为毫秒,如 delay(500) 为延时 500毫秒。改写后的 delay() 函数写入实验报告, 仿真调试并记录下 delay(100) , delay(200),delay(300),delay(400),delay(500) 对应实际执行延时的时间, 以横坐标为参数 t ,纵坐标为实际延时时间,在实验报告上画出对应曲线,分析 t 跟实际延时时间的线性度,并指出该函数允许的最短和最长延时时间。 4 、在步骤 3 的基础上,再次改写程序,实现流水灯功能,初始化状态 8灯全灭,每隔 秒,实现 LS1 → LS2 →...→ LS8 依次点亮、熄灭,并不断循环的效果。主程序 while(1){...;} 部分写入实验报告。 5、在步骤 4的基础上,再次改写程序,实现初始化状态 8灯全灭,每隔 秒,实现 LS1 → LS2 →...→ LS7 → LS8 → LS7 →..→ LS1 依次来回点亮、熄灭, 并不断循环的效果。程序不需要写入报告。 6、在 Keil 中, 重新建立一个 Project , 单片机选 AT89S52 ,晶振选 12MHz , 加入下列程序 ,编译通过后, 烧录入单片机学习板,观察指示灯 LS1 的现象。观察 引脚的状态,现象记录入实验报告。程序 #include <> unsigned char bdata flag; unsigned char count; sbit