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

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

QQ登錄

只需一步,快速開(kāi)始

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

這個(gè)串口控制蜂鳴器 我選擇ASCII和16進(jìn)制都試過(guò)了就是失敗幫忙看看

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:125710 發(fā)表于 2016-7-28 17:38 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
/*一. 程序功能
由上位機(jī)發(fā)送1給單片機(jī),蜂鳴器以400ms頻率發(fā)聲,發(fā)送2時(shí)以200ms頻率發(fā)聲,發(fā)送3時(shí)以100ms頻率發(fā)聲,發(fā)送4時(shí)關(guān)閉蜂鳴器.

二. 程序源碼*/
#include <reg52.h>

//聲明程序需要的全局變量
unsigned char flag, a, num, benum;

//聲明單片機(jī)的蜂鳴器
sbit beep = P2 ^ 3;

//聲明初始化函數(shù)
void init();

//主函數(shù)
void main()
{
    //初始化
    init();

    while (1)
    {
       //檢測(cè)是否發(fā)生串口中斷
       if (flag == 1)
       {
           //手動(dòng)將flag置0,方便下次檢測(cè)
           flag = 0;
           //關(guān)閉中斷???為什么需要關(guān)閉總中斷而不僅僅是串口中斷
           EA = 0;
           //開(kāi)啟計(jì)數(shù)器0
           TR0 = 1;
           //根據(jù)串口接收的數(shù)據(jù)設(shè)置蜂鳴器的頻率基數(shù)
           switch(a)
           {
               case 1:
                   benum = 4;
                   break;
               case 2:
                   benum = 2;
                   break;
               case 3:
                   benum = 1;
                   break;
               case 4:
                   TR0 = 0;
                   beep = 1;
           }
           //開(kāi)啟總中斷
           EA = 1;
        }
    }
}

void init()
{
    //設(shè)置定時(shí)器1為工作方式2, 定時(shí)器0為工作方式1
    TMOD = 0x21;
    //波特率 = (2的SMOD次方/32) * (T1溢出率)                                                                     //T1溢出率 = [256 - X]*12/晶振頻率
    //根據(jù)SMOD的0,1取值得到的X分別為TH1,TL1
    //波特率選取9600,晶振頻率為11.0592
    TH1 = 0xfd;
    TL1 = 0xfd;
    //以50s作為計(jì)數(shù)器0的基數(shù)
    TH0 = (65536 - 50000) / 256;
    TL0 = (65536 - 50000) % 256;
    //ET1 = 1;  這里不需要開(kāi)啟定時(shí)器1中斷,因?yàn)槎〞r(shí)器1工作在方式2,為8位自動(dòng)重裝方式,進(jìn)入中斷也無(wú)事可做
    //啟動(dòng)T1定時(shí)器
    TR1 = 1;
    //開(kāi)啟T0定時(shí)器
    ET0 = 1;
    //TR0 = 1; TR0的初始化放在主函數(shù)的while中,從而啟動(dòng)T0定時(shí)器,使蜂鳴器按頻率發(fā)聲
    //設(shè)定串口工作方式
    //10位異步收發(fā)(8位數(shù)據(jù)), 波特率可變(由定時(shí)器溢出率控制)
    SM0 = 0;
    SM1 = 1;
    //容許串口中斷
    REN = 1;
    //開(kāi)啟總中斷
    EA = 1;
    //開(kāi)啟串口中斷
    ES = 1;
}

void ser() interrupt 4
{
    //RI為接收中斷標(biāo)志位, 在方式0時(shí), 當(dāng)串行接收第8位數(shù)據(jù)結(jié)束時(shí), 或在其他方式, 串行接收停止位的
    //中間時(shí), 由內(nèi)部硬件使RI置1, 向CPU發(fā)出中斷申請(qǐng), 也必須在中斷服務(wù)程序中, 用軟件將其清0,取消
    //此中斷申請(qǐng), 以方便下一次中斷申請(qǐng)檢測(cè), 即這樣才能產(chǎn)生下一次中斷.
    //這里RI清0, 因?yàn)槌绦蚣热划a(chǎn)生了串口中斷, 肯定是收到或發(fā)送了數(shù)據(jù), 在開(kāi)始時(shí)沒(méi)有發(fā)送任何數(shù)據(jù)
    //那必然是收到了數(shù)據(jù), 此時(shí)RI會(huì)被硬件置1, 所以進(jìn)入串口中斷服務(wù)程序后必須由軟件清0, 這樣才能
    //產(chǎn)生下一次中斷.
    RI = 0;
    //將SBUF中的數(shù)據(jù)讀走給a, 這是此中斷服務(wù)程序最重要的目的
    a = SBUF;
    //將串口中斷標(biāo)志位置1,方便主程序檢測(cè)
    flag = 1;
}

void T0_timer() interrupt 1
{
    TH0 = (65536 - 50000) / 256;
    TL0 = (65536 - 50000) % 256;
    num++;
    if (num == benum)
    {
        num = 0;
        beep = ~beep;
    }
}


仿真也測(cè)試了  我在串口助手里面輸入1不來(lái)米 幫忙看看
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:135415 發(fā)表于 2016-7-29 09:01 | 只看該作者
把//ET1=1注釋,有要注釋的沒(méi)有注釋
回復(fù)

使用道具 舉報(bào)

板凳
ID:125710 發(fā)表于 2016-7-29 13:53 | 只看該作者
AMB 發(fā)表于 2016-7-29 09:01
把//ET1=1注釋,有要注釋的沒(méi)有注釋

效果一樣的
回復(fù)

使用道具 舉報(bào)

地板
ID:135498 發(fā)表于 2016-7-30 07:08 | 只看該作者
沒(méi)看到讀串口部分,收到的數(shù)在哪里?a的值從哪來(lái)?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 99pao成人国产永久免费视频 | 国内精品视频在线观看 | 夜夜精品视频 | 国产精品成人免费 | 羞羞羞视频 | 久久精品久久综合 | 亚洲精品久久久久久久久久久久久 | 国产小视频在线 | 亚洲欧洲成人av每日更新 | 国产二区在线播放 | 国产成人高清视频 | 精品久久香蕉国产线看观看亚洲 | 亚洲天堂成人在线视频 | 日日想夜夜操 | 久艹网站 | 激情一区二区三区 | 亚洲精品在线观看网站 | 国产精品久久久久一区二区 | 欧美精品一区二区在线观看 | 国产区精品 | 激情综合五月 | 欧美视频免费在线 | 精品国产不卡一区二区三区 | 成人毛片视频在线播放 | 久久青 | 久久久久久久一区 | 日韩视频一区 | 欧洲一区在线观看 | 91福利在线观看 | 狠狠影院 | 操到爽| 久久国产精品-国产精品 | 色屁屁在线观看 | 国产成人精品免费视频大全最热 | 国产黄色在线观看 | 99综合在线| 国产男女猛烈无遮掩视频免费网站 | 一区二区高清不卡 | 在线资源视频 | 日韩在线精品 | 国产精品久久久久久久久久久久午夜片 |