?? 9851.c
字號:
#include<reg52.h>
#include<INTRINS.H>
#include "viic_c51.h"
#include "zlg7290.h"
#include "9851.H"
#define CH 0xA4
typedef unsigned char BYTE;
BYTE count=0;
code BYTE disp_buf[41][3]={{0x00,0x86,0x1f},{0x01,0x86,0x1f},{0x02,0x86,0x1f},{0x03,0x86,0x1f},{0x04,0x86,0x1f},
{0x05,0x86,0x1f},{0x06,0x86,0x1f},{0x07,0x86,0x1f},{0x08,0x86,0x1f},{0x09,0x86,0x1f},
{0x00,0x87,0x1f},{0x01,0x87,0x1f},{0x02,0x87,0x1f},{0x03,0x87,0x1f},{0x04,0x87,0x1f},
{0x05,0x87,0x1f},{0x06,0x87,0x1f},{0x07,0x87,0x1f},{0x08,0x87,0x1f},{0x09,0x87,0x1f},
{0x00,0x88,0x1f},{0x01,0x88,0x1f},{0x02,0x88,0x1f},{0x03,0x88,0x1f},{0x04,0x88,0x1f},
{0x05,0x88,0x1f},{0x06,0x88,0x1f},{0x07,0x88,0x1f},{0x08,0x88,0x1f},{0x09,0x88,0x1f},
{0x00,0x89,0x1f},{0x01,0x89,0x1f},{0x02,0x89,0x1f},{0x03,0x89,0x1f},{0x04,0x89,0x1f},
{0x05,0x89,0x1f},{0x06,0x89,0x1f},{0x07,0x89,0x1f},{0x08,0x89,0x1f},{0x09,0x89,0x1f},
{0x00,0x80,0x01}
};
code BYTE Frequency[41][5]={{0,0,0x0D,0x1B,0x71},{0,0,0x0D,0x53,0x5E},{0,0,0x0D,0x8B,0x4B},{0,0,0x0D,0xC3,0x37},{0,0,0x0D,0xFB,0x24},
{0,0,0x0E,0x33,0x10},{0,0,0x0E,0x6A,0xFD},{0,0,0x0E,0xA2,0xE9},{0,0,0x0E,0xDA,0xD6},{0,0,0x0F,0x12,0xC2},
{0,0,0x0F,0x4A,0xAF},{0,0,0x0F,0x82,0x9C},{0,0,0x0F,0xBA,0x88},{0,0,0x0F,0xF2,0x75},{0,0,0x10,0x2A,0x61},
{0,0,0x10,0x62,0x4E},{0,0,0x10,0x9A,0x3A},{0,0,0x10,0xD2,0x27},{0,0,0x11,0x0A,0x13},{0,0,0x11,0x42,0x00},
{0,0,0x11,0x79,0xED},{0,0,0x11,0xB1,0xD9},{0,0,0x11,0xE9,0xC6},{0,0,0x12,0x21,0xB2},{0,0,0x12,0x59,0x9F},
{0,0,0x12,0x91,0x8B},{0,0,0x12,0xC9,0x78},{0,0,0x13,0x01,0x65},{0,0,0x13,0x39,0x51},{0,0,0x13,0x71,0x3E},
{0,0,0x13,0xA9,0x2A},{0,0,0x13,0xE1,0x17},{0,0,0x14,0x19,0x03},{0,0,0x14,0x50,0xF0},{0,0,0x14,0x88,0xDC},
{0,0,0x14,0xC0,0xC9},{0,0,0x14,0xF8,0xB6},{0,0,0x15,0xC0,0xA2},{0,0,0x15,0x68,0x8F},{0,0,0x15,0xA0,0x7B},
{0,0,0x15,0xD8,0x68}
};
void AD9851RST(void)
{
BYTE i=10;
WCLK=0;
RESET=1;
while(i--){
WCLK=1;
_nop_();
WCLK=0;
}
WCLK=1;
i=10;
RESET=0;
WCLK=0;
while(i--){
WCLK=1;
_nop_();
WCLK=0;
}
}
void init()
{
TMOD=0x01;
TH0=0x0b;
TL0=0xdc;
EA=1;
ET0=1;
RESET=1;
delayMS(100);
RESET=0;
delayMS(100);
RST7290=1;
delayMS(100);
RST7290=0;
delayMS(100);
RST7290=1;
}
void KeyTime(void) interrupt 1
{
TH0=0x0b;
TL0=0xdc;
if (count < 100){
count++;
}
}
void bell(BYTE i,BYTE j)
{
BELL=0;
delayMS(i);
delayMS(i);
delayMS(i);
BELL=1;
delayMS(j);
delayMS(j);
delayMS(j);
}
void up_freq(BYTE ch)
{
FQUD=0;
WCLK=0;
P0=Frequency[ch][0];
WCLK=1;
_nop_();
WCLK=0;
P0=Frequency[ch][1];
WCLK=1;
_nop_();
WCLK=0;
P0=Frequency[ch][2];
WCLK=1;
_nop_();
WCLK=0;
P0=Frequency[ch][3];
WCLK=1;
_nop_();
WCLK=0;
P0=Frequency[ch][4];
WCLK=1;
_nop_();
WCLK=0;
_nop_();
FQUD=1;
}
void main()
{
BYTE ch,ch_temp,i;
init();
i=IRcvStr(CH,0x00,&ch,1);
ch_temp=ch;
up_freq(ch);
delayMS(255);
delayMS(255);
for(i=0;i<3;i++){
ZLG7290_SendBuf(disp_buf[ch],3);
delayMS(255);
delayMS(255);
delayMS(255);
delayMS(255);
delayMS(255);
}
while(1){
if(UP==0||DOWN==0){
delayMS(255);
if(UP==0){
TR0=0;
if(++ch_temp>40)
ch_temp=0;
bell(100,0);
delayMS(255);
delayMS(255);
delayMS(255);
count=0;
TH0=0x0b;
TL0=0xdc;
TR0=1;
}
if(DOWN==0){
TR0=0;
if(--ch_temp>40)
ch_temp=40;
bell(100,0);
delayMS(255);
delayMS(255);
delayMS(255);
count=0;
TH0=0x0b;
TL0=0xdc;
TR0=1;
}
}
if(ch!=ch_temp)
ZLG7290_SendBuf(disp_buf[ch_temp],3);
if(count==100){
ch=ch_temp;
ISendStr(CH,0x00,&ch,1);
bell(100,50);
bell(50,50);
bell(100,50);
count=0;
TR0=0;
count=0;
up_freq(ch);
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -