欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: [討論]關于12C887的中斷問題 [打印本頁]

作者: daisy38    時間: 2009-6-11 10:23
標題: [討論]關于12C887的中斷問題

#include <ABSACC.H>    //cs接P2^7,wr、rd與8031一一對應//
#include <REG52.H>   
#define  uchar unsigned char   
#define  MCA XBYTE[0xff0a]   /* 寄存器A */   
#define  MCB XBYTE[0xff0b]    /* 寄存器B */   
#define  MCC XBYTE[0xff0c]    /* 寄存器C */   
#define  MCD XBYTE[0xff0d]    /* 寄存器D */     
sbit uip_bit=ACC^7;  
  
uchar idata dt[6]={09,6,9,21,44,25}; /* 99/4/5 11:11:25 */              
uchar at[6]={9,8,7,4,2,0};   /* 年、月、日、時、分、秒 的地址*/  
  
uchar xdata *addr=0xff00;   /* 片選地址 */  
  
void init(void) {    /* 初始化函數 */  
  MCA=0x2f;        /* 時鐘頻率為32.768kHz,中斷周期500ms */  
  ACC=MCC;         /* 讀寄存器C,清零中斷請求標志 */  
  ACC=MCD;         /* 讀寄存器D,使VRT=1,數據有效 */  
  MCB=0x52;        /* 允許中斷,時標為BCD碼,24小時方式 */     
  EA=1;           /* 開中斷 */  
  EX0=1;  
}  
void write_ds(void)
{                       /* 寫時標函數 */  
  uchar i;  
  MCB=0x80;             /* 使set=1 */   為什么這里不把B寄存器的內容寫如ACC呢??
  for(i=0;i<=6;i++)     /* 置時標初值 */  
   *(addr+at)=dt;  
}  
void read_ds(void)
{                     /* 讀時標函數 */  
  uchar i;  
  ACC=MCA;這里為什么又不設置A寄存器的內容呢??
  while(uip_bit);       /* 判UIP位 */  
  for(i=0;i<6;i++)     /* 讀時標寄存器的值 */  
   dt=*(addr+at);  
}  
void main(void)
{                /* 主函數 */  
   write_ds();  
   init();  
   read_ds();  
   while(1);  
}  
   還有為什么不設置CS、DS、AS、WR呢??

難道使用了片外地址之后就不用設置了嗎/那是不是直接與8031對應的斷口連接起來就是了呢??高手指點一下,小弟我剛學51不久。






歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1