实验三 流水灯实验(I/O口和定时器实验)
一、实验目的
1. 学会单片机I/O口的使用方法和定时器的使用方法;
2. 掌握延时子程序的编程方法、内部中断服务子程序的编程方法;
3. 学会使用I/O口控制LED灯的应用程序设计。
二、实验内容
1.控制单片机P1口输出,使LED1~LED8右循环轮流点亮(即右流水),间隔时间为
100毫秒。
2.控制单片机P1口输出,使LED1~LED8左循环轮流点亮(即左流水),间隔时间为100毫秒。
3.使用K1开关控制上面LED灯的两种循环状态交替进行;
4. 用定时器使P1口输出周期为100ms的方波,使LED闪烁。
5.使用定时器定时,使LED灯的两种循环状态自动交替,每一种状态持续1.6秒钟(选作)。
三、实验方法和步骤
1.硬件电路设计 使用实验仪上的E1、E5和E7模块电路,把E1区的JP1(单片机的P1口)和E5区的
8针接口L1~L8(LED的驱动芯片74HC245的输入端)连接起来,P1口就可以控制LED
灯了。当P1口上输出低电平“0”时,LED灯亮,反之,LED灯灭。
E7区的K1开关可以接单片机P3.0口,用P3.0口读取K1开关的控制信号,根据K1
开关的状态(置“1”还是置“0”),来决定LED进行左流水还是右流水。 综上,画出实验电路原理图。
2.程序设计 实验1和实验2程序流程图如图3-1所示。
实验3程序流程图如图3-2所示。
初始状态数据放入A
将A值送入P1输出
改变A值
图3-1 实验1,2程序流程图 开始
延时
图3-2 实验3程序流程图 Y 开始
右流水数据送P1输出
P3.0=1吗?
左流水数据送P1输出 N 读开关状态
实验4程序流程图如图3-3,3-4所示。
实验5程序流程图如图3-5,3-6所示。
Y 开始
定时器初始化
状态1数据送P1输出
交换标志位=1?
状态2数据送P1输出 N
图3-5 实验5主程序流程图