久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1850|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

STC15W1K24S單片機(jī)啟用定時(shí)器0定時(shí)器2控制電機(jī),定時(shí)器1波特率發(fā)生器,死活調(diào)試不出

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
寫了一個(gè)測(cè)試程序,定時(shí)器0定時(shí)器2啟動(dòng)后計(jì)數(shù)200次取反IO,
不啟動(dòng)定時(shí)器1做波特率發(fā)生器可以工作,啟動(dòng)定時(shí)器1后就亂了。

單片機(jī)源程序如下:
  1. /***定時(shí)器0中斷電機(jī)手動(dòng)控制*********************************/                           
  2.               void timer0() interrupt 1
  3.                             {
  4.                                 vala++;
  5.                                 if(vala>=200)
  6.                                 {   
  7.                                 vala=0;   
  8.                                 DIR0=~DIR0;                      //
  9.                               DIR1=~DIR1;                      //   
  10.                               }
  11.                                 if(MotoraRun_Flag==1)            //電機(jī)A為1啟動(dòng)X電機(jī)
  12.                 {
  13.                                     
  14.                               }
  15.                                 if(MotorbRun_Flag==1)            //電機(jī)A為1啟動(dòng)X電機(jī)
  16.                 {
  17.                                     
  18.                               }
  19.                                 if(MotorcRun_Flag==1)            //電機(jī)A為1啟動(dòng)X電機(jī)
  20.                 {
  21.                                     
  22.                               }
  23.                                 if(MotordRun_Flag==1)            //電機(jī)A為1啟動(dòng)X電機(jī)
  24.                 {
  25.                                     
  26.                               }
  27.                             }     
  28. /***定時(shí)器2中斷運(yùn)行函數(shù) 判斷電機(jī)運(yùn)行為一啟動(dòng)輸出***/
  29. /***自動(dòng)控制狀態(tài)************************/
  30.                             void t2int() interrupt 12           //中斷入口
  31.                             {
  32.                              valb++;
  33.                            if(valb>=200)
  34.                              {   
  35.                              valb=0;
  36.                              CP0=~CP0;     
  37.                              CP1=~CP1;
  38.                              }   
  39.                             }     
  40. /*----------------------------------*/                                
  41.                             void Timer0_Init(void)        //5毫秒@11.0592MHz
  42.                             {
  43.                             //AUXR |= 0xC4;            //定時(shí)器時(shí)鐘1T模式   
  44.                             AUXR |= 0x80;            //定時(shí)器時(shí)鐘1T模式
  45.                             TMOD &= 0xF0;            //設(shè)置定時(shí)器模式
  46.                             TL0 = 0x00;                //設(shè)置定時(shí)初始值
  47.                             TH0 = 0x28;                //設(shè)置定時(shí)初始值
  48.                             TF0 = 0;                  //清除TF0標(biāo)志
  49.                             TR0 = 1;                  //定時(shí)器0開始計(jì)時(shí)
  50.                             ET0 = 1;          //使能定時(shí)器0中斷
  51.                             }
  52. /*----------------------------------*/                           
  53.                             void Timer2_Init(void)        //5毫秒@11.0592MHz
  54.                             {
  55.                             AUXR |= 0x04;            //定時(shí)器時(shí)鐘1T模式
  56.                             T2L = 0x00;                  //設(shè)置定時(shí)初始值
  57.                             T2H = 0x28;                  //設(shè)置定時(shí)初始值
  58.                             AUXR |= 0x10;              //定時(shí)器2開始計(jì)時(shí)  T2R
  59.                             IE2 |= 0x04;        //開定時(shí)器2中斷   
  60.                             }
  61. /****************************************/                           
  62.                             void  usart_Init()
  63.                             {
  64.                             SCON = 0x50;                //8位可變波特率
  65.                             P_SW1=0x00;                        //RXD_2/P3.0, TXD_2/P3.1
  66.                             AUXR |= 0x40;                //定時(shí)器1為1T模式
  67.                             AUXR |= 0x01;                //定時(shí)器1波特率發(fā)生器
  68.                             TL1 = (65536 - (FOSC/4/BAUD));   //設(shè)置波特率重裝值
  69.                             TH1 = (65536 - (FOSC/4/BAUD))>>8;
  70.                             TI=1;
  71.                             TR1 = 1;                    //定時(shí)器1開始啟動(dòng)
  72.                              ES = 1;                     //使能串口中斷
  73.                             }
  74. /*--------UART中斷服務(wù)程序---串口4接收觸摸屏數(shù)據(jù)---*/
  75.               void Uart() interrupt 4 using 1
  76.               {
  77.                if(RI)
  78.                {
  79.                 Receive_Total++;
  80.                 a[i]=SBUF;                       //數(shù)組下標(biāo)位置的數(shù)據(jù)等于SBUF
  81.                 i++;
  82.                 if(i==9)                         //觸摸屏結(jié)束碼    FRAMELENGTH
  83.                 {
  84.                  Receive_Flag=1;                     //接收數(shù)據(jù)標(biāo)志置一
  85.                                  if (a[0]==0XF0&&a[1]==0XF1)          //手動(dòng)
  86.                                  {
  87.                                     i=0;                                     //數(shù)組計(jì)數(shù)器歸零
  88.                   Receive_Flag=0;
  89.                                   OutPut10=1;                  //
  90.                                   RUN_Flag=0;                              //自動(dòng)運(yùn)行標(biāo)志
  91.                                   }
  92.                                  }
  93.                 RI=0;                             //
  94.                }
  95.                             }                           
  96. /*------------------主循環(huán)程序----------------*/      
  97.               void   main( )                     /*主程序開始*/
  98.               {                                  /**加一**/
  99.               P0M0 = 0x00;
  100.               P0M1 = 0x00;
  101.                             P1M0 = 0x00;
  102.               P1M1 = 0x00;
  103.                             P2M0 = 0x00;
  104.               P2M1 = 0x00;
  105.               P3M0 = 0x00;
  106.               P3M1 = 0x00;
  107.                           P4M0 = 0x00;
  108.               P4M1 = 0x00;
  109.               P5M0 = 0x00;
  110.               P5M1 = 0x00;
  111.                             AUXR=0X80;                         //STC系列的1T 設(shè)置
  112.               Timer0_Init();                     //定時(shí)器0初始化
  113.               Timer2_Init();                     //定時(shí)器2初始化
  114.                           usart_Init();                      //初始化串口定時(shí)器1做波特率發(fā)生器
  115.                             EA=1;
  116.                     EX_INT0=1;                               //拉高P3.2
  117.               IT0=1;                             //設(shè)置INT0的中斷類型 (1:僅下降沿 0:上升沿和下降沿)
  118.               EX0=1;                             //使能INT0中斷   
復(fù)制代碼

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1057925 發(fā)表于 2023-9-20 15:46 | 只看該作者
STC15的定時(shí)器好像和常規(guī)的51單片機(jī)不一樣吧
回復(fù)

使用道具 舉報(bào)

板凳
ID:58925 發(fā)表于 2023-9-20 16:30 | 只看該作者
估計(jì)是串口數(shù)據(jù)量大,默認(rèn)的串口1中斷優(yōu)先級(jí)高于定時(shí)器2,導(dǎo)致進(jìn)入串口中斷頻率過高,定時(shí)器2沒時(shí)間處理其它任務(wù)
回復(fù)

使用道具 舉報(bào)

地板
ID:161164 發(fā)表于 2023-9-20 17:43 | 只看該作者






應(yīng)改為
AUXR &= ~0x01;
回復(fù)

使用道具 舉報(bào)

5#
ID:65956 發(fā)表于 2023-9-21 08:37 | 只看該作者
要注意看說不定沒有定時(shí)器1,比如STC15W204S就沒有定時(shí)器1,只有0和2,總之要用定時(shí)器要先核對(duì)一下手冊(cè)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品在线看 | 色黄爽 | 91av在线视频观看 | 精品免费视频 | 欧美精品日韩精品 | 亚洲欧美国产精品久久 | 日韩一区中文字幕 | 日日噜噜噜夜夜爽爽狠狠视频, | 99re99| 亚洲激情一区二区 | 久久久资源 | 国产一区二区精品在线观看 | 欧美在线| 久久99精品国产麻豆婷婷 | 国产一区二区三区在线观看免费 | 日日夜夜精品视频 | 日本成人在线观看网站 | 久久久久久亚洲精品不卡 | 精品久久久久久国产 | 国产精品久久av | 91久色 | 日韩欧美综合在线视频 | 国产黄色精品在线观看 | 国产美女特级嫩嫩嫩bbb片 | 欧美成人自拍 | 在线免费观看日本 | 国产日韩一区二区三区 | 草比网站 | 免费在线一区二区 | 成年人在线观看 | 亚洲97 | 激情91| 91麻豆精品国产91久久久久久久久 | 国产成人一区二区 | 免费在线观看黄视频 | av片在线播放 | 婷婷不卡 | 亚洲精品中文字幕在线观看 | 国产一区999 | 色视频一区二区 | av中文字幕在线播放 |