欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
[原創DIY]電子表語音報時功能制作 附單片機程序
[打印本頁]
作者:
xjx51
時間:
2021-8-11 16:23
標題:
[原創DIY]電子表語音報時功能制作 附單片機程序
上次把時鐘和鬧鐘功能搞好了,接下來做語音報時功能吧!
完整程序在下方
說明一下吧,上邊這兩個函數是用于控制語音的,不用管它,在調試途中發現不穩定,比如11點它會說成31點,這就奇怪了,我查了半天才發現是我取BCD碼的方式不對,取十位本來是/16,結果我寫成了/10,這能不錯嗎?該回來后懷著激動的心下載了程序,結果一上電,納尼?!屏幕亮都不亮,本以為下載路徑不對,重新加載了HEX文件,才發現是內存不夠,8K的內存就沒啦?只好把英文字庫給關了,這下內存有了!按下按鍵,可以報出時間和溫度了!
這個語音芯片我用的是NVC080C,可以存放150多段語音,很好用,希望可以幫助到大家!
本功能實現了利用按鍵控制語音芯片進行時間和溫度的報告,格式如下:
現在——XX點XX分——溫度——XX度
這個功能我是用了兩個函數,話不多說,上程序。
void yy_bs(unsigned char w)
{
if(w/16 == 0)
{
DS3231_TIME();
switch(w&0x0f)
{
case(0x01):yuyin(0X34);break;
case(0x02):yuyin(0X35);break;
case(0x03):yuyin(0X36);break;
case(0x04):yuyin(0X37);break;
case(0x05):yuyin(0X38);break;
case(0x06):yuyin(0X39);break;
case(0x07):yuyin(0X3A);break;
case(0x08):yuyin(0X3B);break;
case(0x09):yuyin(0X3C);break;
case(0x00):yuyin(0X33);break;
}
DS3231_TIME();
}
else if(w/16 == 1)
{
DS3231_TIME();
yuyin(0X3D);
delay_ms(1500);
switch(w&0x0f)
{
case(0x01):yuyin(0X34);break;
case(0x02):yuyin(0X35);break;
case(0x03):yuyin(0X36);break;
case(0x04):yuyin(0X37);break;
case(0x05):yuyin(0X38);break;
case(0x06):yuyin(0X39);break;
case(0x07):yuyin(0X3A);break;
case(0x08):yuyin(0X3B);break;
case(0x09):yuyin(0X3C);break;
case(0x00):yuyin(0X33);break;
}
DS3231_TIME();
}
else if(w/16 == 2)
{
DS3231_TIME();
yuyin(0X35);
delay_ms(1000);
yuyin(0X3D);
delay_ms(2000);
switch(w&0x0f)
{
case(0x01):yuyin(0X34);break;
case(0x02):yuyin(0X35);break;
case(0x03):yuyin(0X36);break;
case(0x04):yuyin(0X37);break;
case(0x05):yuyin(0X38);break;
case(0x06):yuyin(0X39);break;
case(0x07):yuyin(0X3A);break;
case(0x08):yuyin(0X3B);break;
case(0x09):yuyin(0X3C);break;
// case(0x00):yuyin(0X33);break;
}
DS3231_TIME();
}
else if(w/16 == 3)
{
DS3231_TIME();
yuyin(0X36);
delay_ms(1000);
yuyin(0X3D);
delay_ms(2000);
switch(w&0x0f)
{
case(0x01):yuyin(0X34);break;
case(0x02):yuyin(0X35);break;
case(0x03):yuyin(0X36);break;
case(0x04):yuyin(0X37);break;
case(0x05):yuyin(0X38);break;
case(0x06):yuyin(0X39);break;
case(0x07):yuyin(0X3A);break;
case(0x08):yuyin(0X3B);break;
case(0x09):yuyin(0X3C);break;
//case(0x00):yuyin(0X33);break;
}
DS3231_TIME();
}
else if(w/16 == 4)
{
DS3231_TIME();
yuyin(0X37);
delay_ms(1000);
yuyin(0X3D);
delay_ms(2000);
switch(w&0x0f)
{
case(0x01):yuyin(0X34);break;
case(0x02):yuyin(0X35);break;
case(0x03):yuyin(0X36);break;
case(0x04):yuyin(0X37);break;
case(0x05):yuyin(0X38);break;
case(0x06):yuyin(0X39);break;
case(0x07):yuyin(0X3A);break;
case(0x08):yuyin(0X3B);break;
case(0x09):yuyin(0X3C);break;
//case(0x00):yuyin(0X33);break;
}
DS3231_TIME();
}
else if(w/16 == 5)
{
DS3231_TIME();
yuyin(0X38);
delay_ms(1000);
yuyin(0X3D);
delay_ms(2000);
switch(w&0x0f)
{
case(0x01):yuyin(0X34);break;
case(0x02):yuyin(0X35);break;
case(0x03):yuyin(0X36);break;
case(0x04):yuyin(0X37);break;
case(0x05):yuyin(0X38);break;
case(0x06):yuyin(0X39);break;
case(0x07):yuyin(0X3A);break;
case(0x08):yuyin(0X3B);break;
case(0x09):yuyin(0X3C);break;
//case(0x00):yuyin(0X33);break;
}
DS3231_TIME();
}
else if(w/16 == 6)
{
DS3231_TIME();
yuyin(0X39);
delay_ms(1000);
yuyin(0X3D);
delay_ms(1000);
switch(w&0x0f)
{
case(0x01):yuyin(0X34);break;
case(0x02):yuyin(0X35);break;
case(0x03):yuyin(0X36);break;
case(0x04):yuyin(0X37);break;
case(0x05):yuyin(0X38);break;
case(0x06):yuyin(0X39);break;
case(0x07):yuyin(0X3A);break;
case(0x08):yuyin(0X3B);break;
case(0x09):yuyin(0X3C);break;
//case(0x00):yuyin(0X33);break;
}
DS3231_TIME();
}
}
void yy_bs1(unsigned char w)
{
if(w/10 == 0)
{
DS3231_TIME();
switch(w&0x0f)
{
case(0x01):yuyin(0X34);break;
case(0x02):yuyin(0X35);break;
case(0x03):yuyin(0X36);break;
case(0x04):yuyin(0X37);break;
case(0x05):yuyin(0X38);break;
case(0x06):yuyin(0X39);break;
case(0x07):yuyin(0X3A);break;
case(0x08):yuyin(0X3B);break;
case(0x09):yuyin(0X3C);break;
case(0x00):yuyin(0X33);break;
}
DS3231_TIME();
}
else if(w/10 == 1)
{
DS3231_TIME();
yuyin(0X3D);
delay_ms(1500);
switch(w&0x0f)
{
case(0x01):yuyin(0X34);break;
case(0x02):yuyin(0X35);break;
case(0x03):yuyin(0X36);break;
case(0x04):yuyin(0X37);break;
case(0x05):yuyin(0X38);break;
case(0x06):yuyin(0X39);break;
case(0x07):yuyin(0X3A);break;
case(0x08):yuyin(0X3B);break;
case(0x09):yuyin(0X3C);break;
case(0x00):yuyin(0X33);break;
}
DS3231_TIME();
}
else if(w/10 == 2)
{
DS3231_TIME();
yuyin(0X35);
delay_ms(1000);
yuyin(0X3D);
delay_ms(2000);
switch(w&0x0f)
{
case(0x01):yuyin(0X34);break;
case(0x02):yuyin(0X35);break;
case(0x03):yuyin(0X36);break;
case(0x04):yuyin(0X37);break;
case(0x05):yuyin(0X38);break;
case(0x06):yuyin(0X39);break;
case(0x07):yuyin(0X3A);break;
case(0x08):yuyin(0X3B);break;
case(0x09):yuyin(0X3C);break;
// case(0x00):yuyin(0X33);break;
}
DS3231_TIME();
}
else if(w/10 == 3)
{
DS3231_TIME();
yuyin(0X36);
delay_ms(1000);
yuyin(0X3D);
delay_ms(2000);
switch(w&0x0f)
{
case(0x01):yuyin(0X34);break;
case(0x02):yuyin(0X35);break;
case(0x03):yuyin(0X36);break;
case(0x04):yuyin(0X37);break;
case(0x05):yuyin(0X38);break;
case(0x06):yuyin(0X39);break;
case(0x07):yuyin(0X3A);break;
case(0x08):yuyin(0X3B);break;
case(0x09):yuyin(0X3C);break;
//case(0x00):yuyin(0X33);break;
}
DS3231_TIME();
}
}
復制代碼
代碼:
第二版本手表程序.7z
(145.73 KB, 下載次數: 30)
2021-8-11 16:16 上傳
點擊文件名下載附件
手表完整程序
下載積分: 黑幣 -5
作者:
神話A小王子
時間:
2022-4-1 15:42
樓主這段程序其實可以簡化一下呢,感覺有很多重復的程序段,另外這種稍顯復雜的程序里盡量少用delay這種延時呢
作者:
xjx51
時間:
2022-7-25 00:34
神話A小王子 發表于 2022-4-1 15:42
樓主這段程序其實可以簡化一下呢,感覺有很多重復的程序段,另外這種稍顯復雜的程序里盡量少用delay這種延 ...
隨便寫的,沒怎么準備做效率啥的,還請大佬多多指教
作者:
yzs158
時間:
2022-7-25 06:06
學習學習論壇有你更精彩
作者:
joyb
時間:
2023-8-29 14:45
語音芯片如何接線
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1