找回密碼
         注冊會員
        搜索附件  

        代碼.zip

         

        高手請進~~請教關于定時器和串口收發的問題:
        /***********************************************************************
        要求:? ? ? ? 首先由單片機發送"please input numner: ",在通過串口助手發送4
        然后單片機接收后燈亮四秒;
        ***********************************************************************/
        #include<reg52.h>
        #include<intrins.h>
        #define uchar unsigned char
        #define??uint unsigned int
        sbit??LED=P0^0;
        void??Com_Init(void);
        void? ?transmit(void);
        void? ? receive_then_ring(void);
        uchar idata trdate[]= "please input numner: " ;
        uchar??IntCount=0;? ? ? ? ? ? ? ? // 宣告IntCount變數,計算T0中斷次數
        uchar seconds=0;
        main()
        {
        ? ? ? ? Com_Init();
        ? ? while(1) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???
        ? ? ? ? {
        ? ? ? ? ? ? ? ? while(1)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???//發送
        ? ? ? ? ? ? ? ? {
        ? ? ? ? ? ? ? ???transmit();
        ? ? ? ? ? ? ? ???break;
        ? ? ? ? ? ? ? ? }
        ? ? ? ? ? ? ? ? while(1)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //接收
        ? ? ? ? ? ? ? ? {
        ? ? ? ? ? ? ? ?? ?receive_then_ring();
        ? ? ? ? ? ? ? ?? ?ET0=1;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???? ? ? ? //開T0中斷
        ? ? ? ? ? ? ? ?? ?break;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
        ? ? ? ? ? ? ? ???}
        ? ? ? ? ? ? ? ? while(1)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //響鈴
        ? ? ? ? ? ? ? ?? ? {? ? ? ?
        ? ? ? ? ? ? ? ?? ?? ?? ?TR1 = 0;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???//關閉TIMER1
        ? ? ? ? ? ? ? ?? ? ? ? ? ?? ???TR0= 1;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???//啟動TIMER0 ? ? ? ?
        ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? while(1);
        ? ? ? ? ? ? ? ?? ? }? ? ? ?
        ? ? ? ? }
        }

        void timer0(void) interrupt 1? ? ? ? // T0中斷子程序開始
        {? ? ? ? ? ? ? ?
        ? ? TH0=(65536-50000)/256;? ? ? ?
        ? ? ? ? TL0 =(65536-50000)%256;? ? ? ? ? ? ? ? ? ? ? ? // 設置T0計數量高8位元、低8位元
        ? ? ? ?? ?IntCount++;? ? ? ?
        ? ? ? ? if (IntCount==20)? ? ? ? ? ? ? ? ? ? ? ? // 若T0已中斷20次數,即一秒
        ? ? ? ? {? ? ? ? IntCount=0;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // 重新計次
        ? ? ? ? ? ? ? ? seconds++; ? ? ? ?
        ? ? ? ???if (seconds==5)
        ? ? ? ???{? ? ? ???LED=1;
        ? ? ? ? ? ? ? ???TR0= 0;? ? ? ?
        ? ? ? ?? ?}
        ? ? ? ? }
        }


        void??Com_InitT1(void)
        {
        ? ? ? ???EA=1;? ? ? ? ? ? ? ? ? ? ? ?? ? //開總中斷EA=1
        ? ? ? ???ES=1;? ?? ?? ?? ?? ? //串行口中斷? ? ? ???
        ? ? ? ???ET1=1;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???//開T1中斷
        ? ???TMOD = 0x21;? ? ? ? ? ? ? ? ? ? ? ? //將定時器1設置為Mode2以產生波特率;TO=mode1
        ? ???PCON = 0x00;? ? ? ? ? ? ? ? ? ? ? ???//SMOD為0
        ? ???SCON = 0xd8;? ? ? ? ? ? ? ? ? ? ? ?? ?//串行口設置為方式3
        ? ? ? ???TH0=(65536-50000)/256;? ? ? ?
        ? ? ? ???TL0=(65536-50000)%256;
        ? ???TH1 = 0xFd;? ? ? ? ? ? ? ? ? ? ? ???//波特率9600
        ? ???TL1 = 0xFd;
        ? ???TR1 = 1;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???//啟動TIMER1
        }


        void??transmit(void)
        {? ? ? ?? ?uchar *p;
        ? ? ? ?? ?p=trdate;
        ??while((*p)!='\0')? ? ? ?
        ? ? ? ? ? ? ? ???{
        ? ? ? ? ? ? ? ? ? ? ? ???SBUF=*p;
        ? ? ? ? ? ? ? ? ? ? ? ???while(TI==0);? ? ? ? ? ? ? ? ? ? ? ? //為發送完,等待
        ? ? ? ? ? ? ? ? ? ? ? ???TI=0;
        ? ? ? ? ? ? ? ? ? ? ? ???_nop_();
        ? ? ? ? ? ? ? ? ? ? ? ???++p;
        ? ? ? ? ? ? ? ???}
        }


        void? ?receive_then_ring(void)
        {
        ? ? ? ?? ? uchar a;
        ? ? ? ?? ? while(RI==0);
        ? ? ? ?? ? RI=0;
        ? ? ? ?? ? a= SBUF;? ?? ? /*接收到的字節,立即發送出去*/
        ? ? ? ?? ???_nop_();
        ? ? ? ?? ? SBUF=a;
        ? ? ? ?? ? while(TI==0);
        ? ? ? ?? ? TI=0;
        ? ? ? ?? ? LED=0;
        }

        為什么定時器,串口收發都沒反應?程序沒錯的呀~~請高手指教
        代碼.zip (24.56 KB)


        QQ|手機版|MCU資訊論壇 ( 京ICP備18035221號-2 )|網站地圖

        GMT+8, 2025-5-4 19:28 , Processed in 0.039991 second(s), 8 queries , Redis On.

        Powered by Discuz! X3.5

        © 2001-2025 Discuz! Team.

        返回頂部
        人人妻人人澡人人爽精品日本| 国产精品一区二区三区99| 精品福利一区二区三区| 久久亚洲国产精品五月天婷| 日韩精品无码免费视频| 5566av来看电影| 久久精品成人免费网站| 久久人人超碰精品CAOPOREN| 亚洲精品国产综合久久一线| 久久亚洲欧美国产精品 | 国产精品国产精品国产专区不卡| 91精品国产91久久| 亚洲国产精品成人网址天堂 | 亚洲国产综合精品中文第一区| 久久激情亚洲精品无码?V| 亚洲精品V欧洲精品V日韩精品 | 亚欧乱色国产精品免费视频| 日韩精品内射视频免费观看| 四虎精品影院4hutv四虎| 亚洲综合欧美精品一区二区| HEYZO无码综合国产精品| 久久精品无码一区二区app| 全球AV集中精品导航福利| 97久视频精品视频在线老司机| 亚洲人成电影网站国产精品| 国产精品久久网| 在线观看国产永久免费| 国产精品2019| 亚洲国产精品日韩| 国产精品成人在线| 亚洲国产精品激情在线观看 | 亚洲精品高清在线| 精品国产亚洲一区二区三区| 亚洲国产精品一区二区九九| 国产精品成人观看视频免费| 一区二区国产精品 | 亚洲成a人片77777在线播放| 久久国产免费观看精品| 丝袜美腿精品一区二区三| 1区1区3区4区产品芒果精品| 亚洲精品自在在线观看|