cnt++;
if(cnt>1) cnt=0; }
if(key==0x04) {
key=0xff; step++; if(step>10) step=1; } } EX1=1; }
/*****启动AD转换*****/
void timer1() interrupt 3 using 1 {
uchar i=0; ET1=0;
TL1=(65535-2000)%6; TH1=(65535-2000)/256; adc0809(cnt); ET1=1;
}
void t1_init() {
uchar i; i=TMOD; i=i|0x10; TMOD=i;
TL1=(65535-2000)%6; TH1=(65535-2000)/256; ET1=1; TR1=1; }
void timer2_init() {
TMOD=0x02;
TL2=(65535-12)%6; TH2=(65535-12)/256; RCAP2L=(65535-12)%6; RCAP2H=(65535-12)/256; C_T2=0; TR2=1;
}/****还不理解这个函数***/ void int0_init() { EX0=1; IT0=1; }
void int1_init() { EX1=1; IT1=1; }
void mcu_init() {
P1=0xff; P0=0xff; EA=1; int0_init(); int1_init(); t1_init(); timer2_init(); }
/**************************************************/ #include \#include \#define n _nop_()
sbit a0=P2^0; sbit a1=P2^1;
sbit ale=P2^2; sbit start=P2^3;
sbit load=P2^6;
/****启动AD转换****/ void adc0809(uchar channel) {
转
换
数
函
if(channel==0) { a0=0; a1=0; }
if(channel==1) { a0=1; a1=0; } ale=0; ale=1; n;n; ale=0; start=0; start=1; n;n; start=0; }
/****启动DA转换****/
void dac0832(uchar date) ///{
并行发送 P0=date; load=0; n;n; load=n1; }