请速速回答单片机的两个问题

来源:百度知道 编辑:UC知道 时间:2024/09/26 04:16:50
一、音乐程序中的简谱码怎么理解?如81H,还有T值,两者什么关系? 二、中断程序中有如TH0=-50000/256,负号代表什么

第一个问题同楼上的!
第二个嘛,二进制中,负号是用补码表示的!
以16进制的定时器定时50ms为例,对于TH0初始化,的定义方式有三种:
1.TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
2.TH0=-50000/256;
TL0=-50000%256;
3.TH0=0x3C;
TL0=0xB0;
你把三个式子全换成相应的二进制,就会发现它们右边是一样的!!! 一楼的说法不对!

第一个问题我没听过。
第二个问题是你看的程序的笔误,没有负号的。
TH0=50000/256在12M晶振情况下是50ms定时。

一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。现在以单片机12MHZ晶振为例,例出高中低音符与单片机计数T0相关的计数值如下表所示
音符 频率(HZ) 简谱码(T值) 音符 频率(HZ) 简谱码(T值)
低1 DO 262 63628 # 4 FA# 740 64860
#1 DO# 277 63731 中 5 SO 784 64898
低2 RE 294 63835 # 5 SO# 831 64934
#2 RE# 311 63928 中 6 LA 880 64968
低 3 M 330 64021 # 6 932 64994
低 4 FA 349 64103 中 7 SI 988 65030
# 4 FA# 370 64185 高 1 DO 1046 65058
低 5 SO 392 64260 # 1 DO# 1109 65085
# 5 SO# 415 64331 高 2 RE 1175 65110
低 6 LA 440 64400 # 2 RE# 1245 65134
# 6 466 6446