用STM8S105编写一个音乐蜂鸣器,以前用51编过,可是用这个单片机就不行了。各位大神能替我变编一个吗?跪谢

yu1021362123 2014-08-03 01:17:02
用STM8S105编写一个音乐蜂鸣器,以前用51编过,可是用这个单片机就不行了。各位大神能替我变编一个吗?跪谢
...全文
274 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
aydf1 2014-08-06
  • 打赏
  • 举报
回复
TIM2设置不全,初始化函数定义了也没调用。。 同意
u014716514 2014-08-05
  • 打赏
  • 举报
回复
程序运行什么现象?
哈啤猫 2014-08-04
  • 打赏
  • 举报
回复
怎么不见时钟设置? TIM2设置也不全啊,初始化函数定义了也没调用。。。
xqhrs232 2014-08-03
  • 打赏
  • 举报
回复
是不是换单片机后延时函数不准了?
yu1021362123 2014-08-03
  • 打赏
  • 举报
回复
#include"stm8s.h" u16 sszymmh[]={ 6,2,3, 5,2,1, 3,2,2, 5,2,2, 1,3,2, 6,2,1, 5,2,1, 6,2,4, 3,2,2, 5,2,1, 6,2,1, 5,2,2, 3,2,2, 1,2,1, 6,1,1, 5,2,1, 3,2,1, 2,2,4, 2,2,3, 3,2,1, 5,2,2, 5,2,1, 6,2,1, 3,2,2, 2,2,2, 1,2,4, 5,2,3, 3,2,1, 2,2,1, 1,2,1, 6,1,1, 1,2,1, 5,1,6, 0,0,0 }; // 音阶频率表 高八位 u16 FREQH[]={ 0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8, 0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC, //1,2,3,4,5,6,7,8,i 0xFC,0xFD,0xFD,0xFD,0xFD,0xFE, 0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF, } ; // 音阶频率表 低八位 u16 FREQL[]={ 0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6, 0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, //1,2,3,4,5,6,7,8,i 0xEE,0x44, 0x6B,0xB4,0xF4,0x2D, 0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16, }; /********************************延时函数*****************************************************/ void delay(u16 i) { u16 j,l; for(j=0;j<i;j++) { for(l=0;l<8000;l++) { ; } } } /******************************IO初试化*************************************************/ void GPIO_configuration () //定义音乐输出端口 { GPIO_DeInit(GPIOB); GPIO_Init(GPIOB,GPIO_PIN_1,GPIO_MODE_OUT_PP_HIGH_FAST); } /******************************************************************/ /* 音乐处理函数 */ /******************************************************************/ void song() { TIM2_DeInit(); TIM2_TimeBaseInit(TIM2_PRESCALER_2,timer0h*256+timer0l ); } /******************************************************************/ /* 主函数 */ /******************************************************************/ void main(void) { unsigned char k,i; while(1) { i=0; while(i<100) { //音乐数组长度 ,唱完从头再来 k=sszymmh[i]+7*sszymmh[i+1]-1; timer0h=FREQH[k]; timer0l=FREQL[k]; time=sszymmh[i+2]; i=i+3; song(); } } }
哈啤猫 2014-08-03
  • 打赏
  • 举报
回复
贴上你的程序看...

27,373

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧