資源簡介
M62429 C51 S51 單片機
#include
#define uchar unsigned char
#define uint unsigned int
//這是M-62429的音量表格
uchar code vol_L[4]={3,1,2,0};//大小--0----3dB
uchar code vol_H[22]={
0x15,0x05,0x19,0x09,0x11, //0-4-8-12-16 大 dB
0x01,0x1E,0x0E,0x16,0x06, //20-24-28-32-38
0x1A,0x0A,0x12,0x02,0x1C, //40-44-48-52-56
0x0C,0x14,0x04,0x18,0x08, //60-64-68-72-76
0x00,0x00 //80-&& 小
};
代碼片段和文件信息
#include
#define?uchar?unsigned?char
#define?uint?unsigned?int
//這是M-62429的音量表格
uchar?code?vol_L[4]={3120};//大小--0----3dB
uchar?code?vol_H[22]={
0x150x050x190x090x11??????//0-4-8-12-16?大?dB
0x010x1E0x0E0x160x06?????//20-24-28-32-38
0x1A0x0A0x120x020x1C???//40-44-48-52-56
0x0C0x140x040x180x08?//60-64-68-72-76
0x000x00????????//80-&&?小
};
uchar?vol=18;//初始音量值
sbit?sda=P0^7;
sbit?scl=P0^6;
sbit?voladd=P1^5;
sbit?voldec=P1^4;
#include
delay_ms(uint?ms)
{
uint?i;
for(;ms>0;ms--)
for(i=0;i<123;i++);
}
delayus()
{}
void?wr_m624(uchar?datuchar?sun)
{??
uchar?ij;
j=dat;
for(i=0;i {
???sda=0;//還必須要在時鐘下降沿給SDA=0才可以,郁悶了很長時間才想到
???delayus();
???scl=0;
???delayus();
???sda=j&0x80;//放置數據到SDA上面
???delayus();
???scl=1;???//寫數據上升沿有效
???delayus();
???j=j<<1;
}
}
void?w_m62429(uchar?dat)//寫入數據到62429
{
uchar?aj;
sda=1;
scl=0;
a=vol_H[dat/4];
a=a<<2;
j=a+vol_L[dat%4];
j=j<<1;
wr_m624(0x02);?????//先寫入001CH加二CH同+
wr_m624(j7);?????//寫入volume
wr_m624(0xff2);//寫入11
sda=1;
delayus();//寫鎖信號下降沿有效
scl=0;
delayus();
scl=1;
}
?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
void?main()
{
delay_ms(300);//等電源穩定再發數據
???Ht1621_Init();
???SRS=1;
???MVOL=0;
???JAZZ?????=1;
???DEFINE???=1;
???PAUSE????=1;
???PLAY?????=1;
???ROCK?????=1;
???CLASSLCAL=1;
???HIP??????=1;
???BULE?????=1;
???Ht1621Wr5Data(vol);
w_m62429(vol);
P2=vol;
while(1)
{
//-------------------------
????if(voladd==0)
????{
?????delay_ms(20);
?????if(voladd==0)
?????{
??????if(vol>0)
??????{
???????vol--;
???????P2=vol;
???????w_m62429(vol);
??????//?MVOL=1;
???????Ht1621Wr5Data(84-vol);
???????delay_ms(100);
??????//?MVOL=0;
??????//?Ht1621Wr5Data(vol);
??????}
?????}
????}
????//--------------------
????if(voldec==0)
????{
?????delay_ms(20);
?????if(voldec==0)
?????{
??????if(vol<84)
??????{
???????vol++;
???????P2=vol;
???????w_m62429(vol);
??????//?MVOL=1;
???????Ht1621Wr5Data(84-vol);
???????delay_ms(100);
???????//MVOL=0;
??????//?Ht1621Wr5Data(vol);
??????}
?????}
????}
}//whileend
}//main-end
/********************************************************:?HT1621
ZHCE????1.0????HT1621
???
2008213
********************************************************/
//#include?
#include?
//#define?uchar?unsigned?char
//#define?uint?unsigned?int
#define?_Nop()?_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_()
#define?BIAS???0x52//0b1000?0101?0010?1/3duty?4comLCD
#define?SYSDIS?0X00//0b1000?0000?0000
#define?SYSEN?0X02?????//0b1000?0000?0010
#define?LCDOFF?0X04?????//0b1000?0000?0100?LCD
#define?LCDON?0X06//0b1000?0000?0110?LCD
#define?XTAL???0x28?????//0b1000?0010?1
- 上一篇:模擬電路版圖設計中的匹配藝術
- 下一篇:train_shape.ipynb
評論
共有 條評論