(二)任务目标
2025年09月21日
(二)任务目标
通过本任务的学习,使学生理解延时函数在单片机“走马灯”程序中的作用,熟练掌握“走马灯”程序的两种写法,尝试编写“双向走马灯”“流水灯”等程序。
知识准备
1.单片机的延时
单片机延时的编程是单片机程序中经常会遇到的问题,如走马灯程序,在后一盏灯亮起、前一盏灯熄灭之间会延时一会。在C语言中,对延时的处理有四种方法,如图3-31所示。
图3-31 延时的方法
其中,for语句和while语句都可以通过改变i的范围值来改变延时时间,但对于这种软件延时的方法,延时时间会根据硬件及程序优化的不同而不同。定时器延时是一种精准的延时,它也是单片机课程的一个重点,以后会详细介绍。另外,对于单片机自带的库函数nop(),一个NOP的时间是一个机器周期的时间。
2.单片机几种周期的关系(以后章节会详细说明)
① 时钟周期:CPU的晶振的工作频率的倒数。例如工作频率为11.059 2 MHz,那么时钟周期就是1/(11.059 2 MHz)。
② 机器周期:完成一个基本操作的时间单元,例如取指周期、取数周期。一般一个机器周期是12个时钟周期,即12 ×[1/(11.059 2 MHz)]。
③ 指令周期:是CPU的关键指标,指取出并执行一条指令的时间。一般以机器周期为单位,分为单指令执行周期、双指令执行周期等。现在的处理器的大部分指令(ARM、DSP)采用单指令执行。指令周期一般为1、2、4个机器周期。