- #include "reg52.h"
- sbit key1 = P0 ^ 0;
- sbit key2 = P0 ^ 1;
- sbit key3 = P0 ^ 2;
- sbit key4 = P0 ^ 3;
- sbit key5 = P0 ^ 4;
- sbit key6 = P0 ^ 5;
- sbit key7 = P0 ^ 6;
- sbit key8 = P0 ^ 7;
- #include <INTRINS.H>
- int num = 0;
- int flag_hz = 10;
- sbit Beep = P1 ^ 2;
- unsigned char n = 0; //n???????
- unsigned char code music_tab[] = {
- 0x18, 0x30, 0x1C, 0x10, //???: ????, ????, ????, ????,
- 0x20, 0x40, 0x1C, 0x10,
- 0x18, 0x10, 0x20, 0x10,
- 0x1C, 0x10, 0x18, 0x40,
- 0x1C, 0x20, 0x20, 0x20,
- 0x1C, 0x20, 0x18, 0x20,
- 0x20, 0x80, 0xFF, 0x20,
- 0x30, 0x1C, 0x10, 0x18,
- 0x20, 0x15, 0x20, 0x1C,
- 0x20, 0x20, 0x20, 0x26,
- 0x40, 0x20, 0x20, 0x2B,
- 0x20, 0x26, 0x20, 0x20,
- 0x20, 0x30, 0x80, 0xFF,
- 0x20, 0x20, 0x1C, 0x10,
- 0x18, 0x10, 0x20, 0x20,
- 0x26, 0x20, 0x2B, 0x20,
- 0x30, 0x20, 0x2B, 0x40,
- 0x20, 0x20, 0x1C, 0x10,
- 0x18, 0x10, 0x20, 0x20,
- 0x26, 0x20, 0x2B, 0x20,
- 0x30, 0x20, 0x2B, 0x40,
- 0x20, 0x30, 0x1C, 0x10,
- 0x18, 0x20, 0x15, 0x20,
- 0x1C, 0x20, 0x20, 0x20,
- 0x26, 0x40, 0x20, 0x20,
- 0x2B, 0x20, 0x26, 0x20,
- 0x20, 0x20, 0x30, 0x80,
- 0x20, 0x30, 0x1C, 0x10,
- 0x20, 0x10, 0x1C, 0x10,
- 0x20, 0x20, 0x26, 0x20,
- 0x2B, 0x20, 0x30, 0x20,
- 0x2B, 0x40, 0x20, 0x15,
- 0x1F, 0x05, 0x20, 0x10,
- 0x1C, 0x10, 0x20, 0x20,
- 0x26, 0x20, 0x2B, 0x20,
- 0x30, 0x20, 0x2B, 0x40,
- 0x20, 0x30, 0x1C, 0x10,
- 0x18, 0x20, 0x15, 0x20,
- 0x1C, 0x20, 0x20, 0x20,
- 0x26, 0x40, 0x20, 0x20,
- 0x2B, 0x20, 0x26, 0x20,
- 0x20, 0x20, 0x30, 0x30,
- 0x20, 0x30, 0x1C, 0x10,
- 0x18, 0x40, 0x1C, 0x20,
- 0x20, 0x20, 0x26, 0x40,
- 0x13, 0x60, 0x18, 0x20,
- 0x15, 0x40, 0x13, 0x40,
- 0x18, 0x80, 0x00
- };
- void int0() interrupt 1
- {
- TH0 = 0xd8;
- TL0 = 0xef;
- n--;
- }
- void delay(unsigned char m) //??????
- {
- unsigned i = 3 * m;
- while (--i) ;
- }
- void delayms(unsigned char a) //???????
- {
- while (--a) ;
- }
- void sound()
- {
- unsigned char p, m; //m???????
- unsigned char i = 0;
- TMOD &= 0x0f;
- TMOD |= 0x01;
- TH0 = 0xd8;
- TL0 = 0xef;
- IE = 0x82;
- play:
- while (1)
- {
- a:p = music_tab;
- if (p == 0x00)
- {
- i = 0, delayms(1000);
- goto play;
- } //
- else if (p == 0xff)
- {
- i = i + 1;
- delayms(100), TR0 = 0;
- goto a;
- }
- else
- {
- m = music_tab[i++], n = music_tab[i++];
- } //
- TR0 = 1; //????1
- while (n != 0)
- Beep = ~Beep, delay(m); //
- TR0 = 0; //????1
- }
- }
- void main()
- {
- TMOD = 0X01;
- TH0 = (65536 - 50000) / 256;
- TL0 = (65536 - 50000) % 256;
- EA = 1;
- ET0 = 1;
- TR0 = 1;
- P2 = 0xff;
- while (1)
- {
- sound();
- if (key1 == 0)
- {
- flag_hz = 5;
- }
- if (key2 == 0)
- {
- flag_hz = 25;
- }
- if (key3 == 0)
- {
- flag_hz = 45;
- }
- if (key4 == 0)
- {
- }
- if (key5 == 0)
- {
- P3 = 0X03;
- P2 = 0X03;
- }
- if (key6 == 0)
- {
- P3 = 0X33;
- P2 = 0X33;
- }
- if (key7 == 0)
- {
- P3 = 0XAA;
- P2 = 0XAA;
- }
- if (key8 == 0)
- {
- P3 = 0X99;
- P2 = 0X99;
- }
- }
- }
- void T0_time() interrupt 1 //50MS
- {
- TH0 = (65536 - 50000) / 256;
- TL0 = (65536 - 50000) % 256;
- num++;
- if (num >= flag_hz)
- {
- num = 0;
- P3 = ~P3;
- P2 = ~P2;
- }
- }
复制代码
|