文档介绍:制播放《好人一生平安》
本例使用定时器T0的中断控制播放音乐《好人一生平安》,乐谱如图6.3所示。要求T0工作于方式0。表6.5列出了C音调与频率的对应关系。
实现方法
要让蜂鸣器发出某音调的声音,只要给蜂鸣器输送该音调频率的电平制播放《好人一生平安》
本例使用定时器T0的中断控制播放音乐《好人一生平安》,乐谱如图6.3所示。要求T0工作于方式0。表6.5列出了C音调与频率的对应关系。
实现方法
要让蜂鸣器发出某音调的声音,只要给蜂鸣器输送该音调频率的电平信号就可以了。由于单片机I/O口的输出只有高电平“l”和低电平“0”两种状态,因此向蜂鸣器输送的电平信号实际上就是该音频的方波。例如中音“1”的频率为523Hz,它的周期为1/523s,。因此,只要向蜂鸣器输送周期为1.91ins的脉冲方波电平信号就能发出523Hz的音调,该方波的半周期为1.9l/2=0.955ms。为此,需要利用定时器的中断,让输送给蜂鸣器的电平信号每0.955ms取反一次即可。由于本书使用单片机的晶振频率为11.0592MHz,它的一个机器周期为12×(1/11.0592)gs=1.085us,因此需要的机器周期总数为
即定时器的定时常数就应取为880。根据上述分析,发出频率为f的音频时,定时常数C
计算公式为
节拍控制
因为本例简朴的节拍为每分钟72拍,则每个节拍需时间:
根据乐谱知识,乐谱中第一行的第l小节各音调的节拍如下:
模拟交通灯控制
1.任务目的
通过对模拟交通灯控制系统的制作,让读者掌握定时器和中断系统的综合应用,进一步熟练软、硬件联调方法。
2.任务要求
设计并实现单片机交通灯控制系统,实现以下三种情况下的交通灯控制。
(1)正常情况下双方向轮流点亮交通灯,交通灯的状态如表4.8所示。
(2)特殊情况时,A道放行。
(3)有紧急车辆通过时,A、B道均为红灯。紧急情况优先级高于特殊情况。
表1
3.电路及元器
本任务涉及定时控制东、南、西、北四个方向上的12盏交通信号灯,且出现特殊和紧急情况时,能及时调整交通灯指示状态。
采用12个L,ED发光二极管模拟红、黄、绿交通灯,用单片机的Pl口控制发光二极管的亮灭状态;而单片机的P1口只有8个控制端,如何控制12个二极管的亮灭呢?
观察表1不难发现,在不考虑左转弯行驶车辆的情况下,东、西两个方向的信号灯显示状态是一样的,所以,对应两个方向上的6个发光二极管只用P1口的3根I/O端口线控制即可。同样道理,南、北方向上的6个发光二极管可用P1口的另外3根I/O端口线控制。当I/O端口线输出高电平时,对应的交通灯灭;反之,当I/O端口线输出低电平时,对应的交通灯亮。各控制端口线的分配及控制状态如表2所示。
表2
按键S1、S2模拟紧急情况和特殊情况的发
生,当S1、S2为高电平(不按按键)时,表示
正常情况。当Sl为低电平(按下按键)时,表示紧
急情况,将Sl信号接至INT0脚(P3.2)即可实现
外部中断0中断申请。当S2为低电平(按下按键)
时,表示特殊情况,将S2信号接至INT1(P3.3
)即可实现外部中断1中断申请,电路图图3所示
程序流程图
正常
特殊
紧急