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

標題: 串口通訊中斷法程序 [打印本頁]

作者: daming    時間: 2014-12-30 01:47
標題: 串口通訊中斷法程序


  1. #include<reg52.h>

  2. unsigned char code trdata[]={'f','r','e','e','d','o','m',0x0a,0x00};
  3. sbit P32=P3^2;  //INT0的控制管腳
  4. unsigned char i,tmp;

  5. void delay1ms(unsigned int n)   //1ms基準延時
  6. {
  7. unsigned i;
  8. while(n--)
  9.   for(i=0;i<115;i++);
  10. }

  11. void main()
  12. {
  13. TMOD=0x20;  //定時器工作方式2,  8位自動重裝
  14. TH1=TL1=0xfd;  //產生9600的bps
  15. TR1=1;     //啟動T1
  16. EA=1;  //開放總中斷
  17. ES=1;  //允許串口中斷
  18. EX0=1;  //允許INT0中斷
  19. SCON=0x50;  //串口工作方式1,允許接受數據
  20. PCON=0x00;  //  不倍增bps
  21. while(1); //無限循環等待中斷
  22.   
  23. }

  24. void int0() interrupt 0   //INT0的中斷編號
  25. {
  26. if(P32==0){
  27.   delay1ms(20);  //消陡
  28.   if(P32==0){
  29.    i=0;
  30.    while(trdata[i]!=0x00){
  31.     SBUF=trdata[i];
  32.     while(!TI);    //等待數據傳送,傳完一個字節后TI=1
  33.     TI=0;
  34.     i++;
  35.    }
  36.    while(!P32);   //等待按鍵釋放
  37.   }
  38. }
  39. }

  40. void send_char()  interrupt 4  //串口中斷的編號
  41. {
  42. if(RI==1){     //收到1字節的數據時,RI=1,申請串口中斷
  43.   RI=0;     //軟件清0
  44.   tmp=SBUF;
  45.   P0=tmp;
  46.   SBUF=tmp;  //向PC發送數據
  47.   while(!TI);  //等待發送
  48.   TI=0;   //清0
  49. }
  50. }
復制代碼







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