?? 8位da 0800 幅度可調(diào).c
字號(hào):
//*********************************************************
//File Name :AD7541產(chǎn)生sin.c
//Author :GHL
//Date :2007/8/18
//Desciption :8位DA轉(zhuǎn)換 并入
// 幅度可調(diào),1000HZ
//*********************************************************
#include<reg51.h>
#include<intrins.h>
#define databus P0
#define key_bus P1
unsigned char i,N=10;
unsigned char code key_decode[]={'*',0,'#','D',7,8,9,'C',4,5,6,'B',1,2,3,'A'};
unsigned int code sinx[100]={0x7F,0x87,0x8F,0x97,0x9F,0xA6,0xAE,0xB5,0xBC,0xC3,0xCA,0xD0,0xD6,0xDC,0xE1,0xE6
,0xEB,0xEF,0xF2,0xF6,0xF8,0xFA,0xFC,0xFD,0xFE,0xFE,0xFE,0xFD,0xFC,0xFA,0xF8,0xF6
,0xF2,0xEF,0xEB,0xE6,0xE1,0xDC,0xD6,0xD0,0xCA,0xC3,0xBC,0xB5,0xAE,0xA6,0x9F,0x97
,0x8F,0x87,0x7F,0x77,0x6F,0x67,0x5F,0x58,0x50,0x49,0x42,0x3B,0x34,0x2E,0x28,0x22
,0x1D,0x18,0x13,0x0F,0x0C,0x08,0x06,0x04,0x02,0x01,0x00,0x00,0x00,0x01,0x02,0x04
,0x06,0x08,0x0C,0x0F,0x13,0x18,0x1D,0x22,0x28,0x2E,0x34,0x3B,0x42,0x49,0x50,0x58
,0x5F,0x67,0x6F,0x77};
/************矩陣鍵盤讀鍵程序*******************/
unsigned char keytest()
{
unsigned char keycode=0xff,temp,i;
key_bus=0x0f;
temp=key_bus&0x0f;
if(temp!=0x0f) //有鍵按下
{
key_bus=0x7f;
for(i=0;i<4;i++)
{
temp=key_bus&0x0f;
if(temp==0x07) //輸出端口示數(shù)
{
keycode=i*4;
break;
}
else if(temp==0x0b)
{
keycode=i*4+1;
break;
}
else if(temp==0x0d)
{
keycode=i*4+2;
break;
}
else if(temp==0x0e)
{
keycode=i*4+3;
break;
}
key_bus=(key_bus>>1)|0x80;
}
while((key_bus&0x0f)!=0x0f) //等待釋放
{
key_bus=0x0f;
}
}
return keycode;
}
/*********定時(shí)器初始化程序******/
void Init_Timer ()
{
TMOD=0x01; //定時(shí)器0工作在16位定時(shí)器方式
EA=1; //cpu開(kāi)中斷
ET0=1; //允許T0中斷
TH0=~(1000/256); //10kpbs
TL0=~(1000%256);
}
/************T0中斷服務(wù)程序*****************/
void timer0 (void) interrupt 1
{
TH0=~(1000/256); //定時(shí)常數(shù)設(shè)置
TL0=~(1000%256);
databus=sinx[(i+1)%100]/N;
}
main()
{
unsigned char keycode;
Init_Timer ();
while(1)
{
TR0=0; //關(guān)定時(shí)器0
keycode=keytest();
//_nop_();_nop_();
if(key_decode[keycode]==6)
{
N=N-1;
if(N==0)N=10;
}
TR0=1;
// _nop_(); _nop_(); _nop_();
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -