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

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

QQ登錄

只需一步,快速開始

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

請(qǐng)大神們幫我看看單片機(jī)程序我這樣子寫改變脈寬是否正確和兩個(gè)定時(shí)器使用

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:981835 發(fā)表于 2022-12-2 16:52 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
入門小生求教各位!單片機(jī)源程序如下:
#include "STC15W4k.h"
#include <intrins.h>                                        // 加入此頭文件后,可使用_nop_庫(kù)函數(shù)
#include <string.h>           // 加入此頭文件后,可使用strstr庫(kù)函數(shù)
#include <stdio.h>

sbit PWM = P3^7;
unsigned char count=0;
unsigned int PWM_width=0;

#define S1_S0 0x00              //P_SW3.0
#define S1_S1 0x00              //P_SW3.1
#define FOSC 11059200L          //系統(tǒng)頻率
#define BAUD 9600             //串口波特率

unsigned char i;
unsigned int rec_data;
float buf;
bit rec_flag;

void delay(unsigned char i)
{
  unsigned char j,k;
  for(j=i;j>0;j--)
    for(k=125;k>0;k--);
}
void qie_huan()           //串口引腳選擇函數(shù)
{
    ACC = P_SW1;
    ACC &= ~(S1_S0 | S1_S1);    //S1_S0=0 S1_S1=0
    P_SW1 = ACC;                //(P3.0/RxD, P3.1/TxD)
}
void Time0_Init()
{        
        TMOD |= 0x01;         
        //IE   = 0x82;
        TH0  = 0xff; // 100us 中斷
        TL0  = 0xa4;    //寫入預(yù)置值
        ET0 =1;  //允許定時(shí)器0中斷
        TR0=1;     
}
void UART_init()
{
          SCON = 0x50;                             //8位數(shù)據(jù),可變波特率// TMOD &= 0x01;
          AUXR |= 0x14;                            //定時(shí)器時(shí)鐘1T模式
          T2L = (65536 - (FOSC/4/BAUD));   //設(shè)置波特率重裝值
          T2H = (65536 - (FOSC/4/BAUD))>>8;
//              ET1 = 1;
          AUXR |= 0x10;                             //定時(shí)器2開始計(jì)時(shí)
          ES =1;                                        //串口開關(guān)
}

void main()
{
        P0M0 = 0x00;
        P0M1 = 0x00;
        P1M0 = 0x00;
        P1M1 = 0x00;
        P2M0 = 0x00;
        P2M1 = 0x00;
        P3M0 = 0x00;
        P3M1 = 0x00;
        P4M0 = 0x00;
        P4M1 = 0x00;
        P5M0 = 0x00;
        P5M1 = 0x00;
        P6M0 = 0x00;
        P6M1 = 0x00;
        P7M0 = 0x00;
        P7M1 = 0x00;
        qie_huan();
                                Time0_Init();
                                UART_init();
                                EA =1;                       //中斷總開關(guān)        
                                PWM_width = 30;
                                
        while(1)
        {
                                                if(rec_flag == 1)
                                                {               
                                                                if(rec_data=="forward")
                                                                {
                                                                        PWM_width=PWM_width+30;        
                                                                }
                                                                for(i=0;i<sizeof(rec_data);i++)
                                                                {
                                                                        SBUF = rec_data;        
                                                                }                                                               
                                                        rec_flag=0;
                                                }
        }
}
void Time0_Int() interrupt 1  //100us
{
           TH0 = 0xff;  
           TL0 = 0xa4;                                                               //設(shè)置定時(shí)初值
           count++;
          if(count>=100)
                {
                                count =0;
                }
                if(PWM_width>count)                        
                {
                                PWM=0;
                }else PWM =1;
}
/*----------------------------
UART 中斷服務(wù)程序
-----------------------------*/
void Uart() interrupt 4
{
   if(RI)
         {
                        RI=0;          //接收中斷標(biāo)志位清0
                        rec_data =SBUF;//保存數(shù)據(jù)
                        rec_flag =1;
         }
         if(TI)
         {
                        TI=0;
         }
}



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

使用道具 舉報(bào)

沙發(fā)
ID:161164 發(fā)表于 2022-12-2 18:13 | 只看該作者
rec_data每次接收只能存一個(gè)字節(jié)
字符串不能用==作比較,要用strcmp或memcmp
回復(fù)

使用道具 舉報(bào)

板凳
ID:1052836 發(fā)表于 2022-12-2 18:37 | 只看該作者
很不錯(cuò)的內(nèi)容 接受了 好好學(xué)習(xí)下
回復(fù)

使用道具 舉報(bào)

地板
ID:981835 發(fā)表于 2022-12-5 09:20 | 只看該作者
lkc8210 發(fā)表于 2022-12-2 18:13
rec_data每次接收只能存一個(gè)字節(jié)
字符串不能用==作比較,要用strcmp或memcmp

好 受教了,謝謝
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品伦理一区 | 色婷婷一区 | 精品国产精品三级精品av网址 | 久久久久亚洲精品 | 色婷婷av一区二区三区软件 | 亚洲高清一区二区三区 | 日韩精品久久久久 | 99精品免费在线观看 | 亚洲精品久久久一区二区三区 | 成人高清在线 | 嫩呦国产一区二区三区av | 国产精品视频www | 日本一区二区三区在线观看 | 日本久久久久久久久 | 欧美色影院 | 综合中文字幕 | av一级久久 | 天天爽一爽 | 欧美三区视频 | a级在线免费视频 | 啪啪精品 | 久久婷婷麻豆国产91天堂 | 久久亚洲国产 | 亚洲 欧美 日韩 在线 | 国产色爽| 国产精品1 | 国产一区二区三区 | 日韩电影一区二区三区 | 国产99久久久国产精品 | 一区二区三区高清在线观看 | 91天堂网| 日韩一区二区av | 国产精品成人在线播放 | 日韩在线| 国产在线精品一区二区三区 | 欧美一级免费看 | 国产精品视频在线观看 | 国产精品片 | 激情国产 | 国产原创在线观看 | 国产一区二区在线91 |