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

        代碼.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热成人精品国产免男男| 婷婷国产成人精品一区二| 精品一区二区三区自拍图片区| 国产在视频线精品视频二代| 欧美成人精品网站播放| 亚洲精品无码Av人在线观看国产 | 久久夜色精品国产噜噜噜亚洲AV | 男女男精品视频网站在线观看| 在线观看国产精品日韩av| 欧美精品高清在线观看| 色婷婷噜噜久久国产精品12p| 久久精品aⅴ无码中文字字幕不卡| 66精品综合久久久久久久| 一区二区三区精品高清视频免费在线播放| 精品欧洲av无码一区二区| 国产精品最新国产精品第十页| 亚洲日韩一页精品发布| 大胸国产精品视频| 亚洲精品午夜无码电影网| 国产69精品久久久久99| 亚洲精品无码永久中文字幕| 亚洲精品国产成人专区| 好大好湿好硬好爽好深免费视频| 国产成人精品免费午夜app| 热综合一本伊人久久精品| 国产精品无码午夜福利| 久夜色精品国产一区二区三区| 精品无码久久久久久午夜| 国模和精品嫩模私拍视频| 欧美精品欧美人与动人物牲交 | 日韩人妻无码精品久久久不卡| 91精品国产福利在线观看| 免费高清日本社区| 国产精品九九久久免费视频| 国产精品熟女一区二区| 中文字幕不卡在线| 国产福利电影一区二区三区,欧美国产成人精品一 |