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

QQ登錄

只需一步,快速開始

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

單片機(jī)C語言比較器中斷 運(yùn)算符!! 是什么意思?雙重否定嗎?是不是不用也行

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:278006 發(fā)表于 2021-12-30 12:42 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
sbit LED        =   P1^1;           //測(cè)試腳

void cmp_isr() interrupt 21 using 1 //比較器中斷向量入口
{
    CMPCR1 &= ~CMPIF;               //清除完成標(biāo)志
#include <REG51.H>
    LED = !!(CMPCR1 & CMPRES);      //將比較器結(jié)果CMPRES輸出到測(cè)試口顯示
}

void main()
{
    CMPCR1 = 0;                     //初始化比較器控制寄存器1
    CMPCR2 = 0;                     //初始化比較器控制寄存器2

    CMPCR1 &= ~PIS;                 //選擇外部管腳P5.5(CMPP)為比較器的正極輸入源
//  CMPCR1 |= PIS;                  //選擇ADCIS[2:0]所選的ADCIN為比較器的正極輸入源

    CMPCR1 &= ~NIS;                 //選擇內(nèi)部BandGap電壓VBandGap為比較器的負(fù)極輸入源
//  CMPCR1 |= NIS;                  //選擇外部管腳P5.4(CMPN)為比較器的負(fù)極輸入源

    CMPCR1 &= ~CMPOE;               //禁用比較器的比較結(jié)果輸出
//  CMPCR1 |= CMPOE;                //使能比較器的比較結(jié)果輸出到P1.2

    CMPCR2 &= ~INVCMPO;             //比較器的比較結(jié)果正常輸出到P1.2
//  CMPCR2 |= INVCMPO;              //比較器的比較結(jié)果取反后輸出到P1.2

    CMPCR2 &= ~DISFLT;              //不禁用(使能)比較器輸出端的0.1uS慮波電路
//  CMPCR2 |= DISFLT;               //禁用比較器輸出端的0.1uS慮波電路

    CMPCR2 &= ~LCDTY;               //比較器結(jié)果不去抖動(dòng),直接輸出
//  CMPCR2 |= (DISFLT & 0x10);      //比較器結(jié)果在經(jīng)過16個(gè)時(shí)鐘后再輸出

    CMPCR1 |= PIE;                  //使能比較器的上升沿中斷
//  CMPCR1 |= NIE;                  //使能比較器的下降沿中斷

    CMPCR1 |= CMPEN;                //使能比較器

    EA = 1;

    while (1);
}

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

使用道具 舉報(bào)

沙發(fā)
ID:57657 發(fā)表于 2021-12-30 14:42 | 只看該作者
兩次邏輯取反,0取反為1,非0取反為0,不可以省略。
回復(fù)

使用道具 舉報(bào)

板凳
ID:221871 發(fā)表于 2021-12-30 14:43 | 只看該作者
不會(huì)是雙重否定,估計(jì)是筆誤,實(shí)驗(yàn)驗(yàn)證以下吧。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表