《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 解決方案 > 2051的比較器模擬AD源程序(C語言)

2051的比較器模擬AD源程序(C語言)

2009-01-15
關鍵詞: 比較器 單片機

2051的比較器模擬AD源程序(C語言)

/* io分配:                                       *
;*   OUTPUT:                                                    *
;*      P1.0 ...... 模擬量輸入     *
;*      P1.1 ...... DA輸入比較基準電壓    *
;*      P1.2~7..... R-2R DA電阻網(wǎng)絡    *
;*      P3.7 ...... LED 模擬亮度輸出    *
;* CPU CLOCK EQU 6M                                             */
//xiaoqi last edit in 2001.11
//#pragma src
#i nclude "AT89x051.h"
#i nclude <stdlib.h>
#i nclude<math.h>
#i nclude<intrins.h>

//變量類型標識的宏定義,大家都喜歡這么做
#define Uchar unsigned char
#define Uint unsigned int

#define Ledlight() (P3 &= 0x7f)
#define Leddark()  (P3 |= 0x80)

sbit P36 = P3^6;  // 比較器內(nèi)部判斷腳
sbit LED = P3^7;  // 一個發(fā)光二級管觀察亮度變化

// 內(nèi)部標志位定義
bit less;   // 比較是否大于 1.小于,0.大于

// 全局變量定義
Uchar timer1,          // 通用延時計數(shù)器
 timer2,          // 按鍵蜂鳴器反應定時器
 adcdata,  // ad轉(zhuǎn)換變量
 pwm1;   // PWM輸出比例

// 函數(shù)列表
void DelayMs(unsigned int number);      // 毫秒延時
void timers0();           // 在定時器中斷中做數(shù)碼管的掃描顯示(ct0)
void Initall(void);          // 系統(tǒng)初始化
void timers1(void);          // TC1定時器中斷用于掃描顯示與鍵盤
Uchar adcread(void);   // adc轉(zhuǎn)換程序

void main(void)  using 0
{
 DelayMs(120);
 Initall();
 pwm1 = adcread();
 LED=1;
 while(1)
 {
  pwm1 = adcread();
  timer2=10;
  while (timer2);
 }
}

// 毫秒延時
void DelayMs(unsigned int number)
{
 unsigned char temp;

 for(;number!=0;number--)
  for(temp=112;temp!=0;temp--);
}

/*************************************
   在定時器中斷中做LED的PWM輸出
*************************************/
void timers0() interrupt 1 using 1
{
 TH0 = 0xff;
 TL0 = 0xd0;
 timer1--;
 if (timer1==pwm1)LED=0;
 if (timer1==0){
  LED=1;
  timer1=0x40;
  timer2--;
  };
}

/****************
;* 6位 ADC轉(zhuǎn)換
;****************/
Uchar adcread(void)
{
 Uchar i=0x3f,temp=0;
 P36 =1;
 P1 = 3; _nop_();_nop_();  // 從零開始
 while ((i--)&& (P36))
  {
  temp += 4;
  P1 = temp|3;
  _nop_();
  }
 temp >>= 2;
 return temp;
}

/****************
;* 系統(tǒng)初始化
;****************/
void Initall(void)
{
 TMOD = 0x11;  // 0001 0001 16進制計數(shù)器
 IP = 0x8;  // 0000 1000 t1優(yōu)先
        IE = 0x8A;  // 1000 1010 t0,t1中斷允許
 TCON = 5;  // 0000 0101 外部中斷低電平觸發(fā)
        TR0 = 1;  // 打開定時器中斷,IE中已經(jīng)打開,在明示一下
 TR1 = 0;
        ET0 = 1;
 ET1 = 0;
        P1 = 0xff;
}
 
/*************************************
   TC1定時器中斷用于掃描顯示與鍵盤(ct1)
*************************************/
void timers1(void) interrupt 3 using 2
{
_nop_();  //實驗中沒有啟用
}

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權者。如涉及作品內(nèi)容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 国产成人精品一区二三区| 天天拍天天干天天操| 亚洲av人无码综合在线观看| 热99re久久精品精品免费| 午夜高清啪啪免费观看完整| 青青青国产精品视频| 国产欧美日韩在线观看一区二区 | 夜精品a一区二区三区| 一级毛片视频在线观看| 日产精品卡一卡2卡三卡乱码工厂 日产精品卡二卡三卡四卡乱码视频 | 在打烊后仅剩两人接档泡面番| √天堂中文官网8在线| 成全高清视频免费观看| 久久久亚洲av波多野结衣| 最近中文字幕mv手机免费高清 | 欧美猛男做受视频| 亚洲综合国产成人丁香五月激情 | 北条麻妃74部作品在线观看| 色偷偷亚洲第一综合网| 国产亚洲av片在线观看18女人| 黑人解禁濑亚美莉| 国产男女爽爽爽免费视频| 香蕉网站在线观看| 欧美国产日韩在线观看| 亚洲精品无码专区| 男女一边摸一边做刺激的视频| 十八岁的天空完整版在线观看| 色偷偷成人网免费视频男人的天堂| 国产又黄又大又粗的视频| 成人羞羞视频网站| 国产成在线观看免费视频| 亚洲精品一二区| 国产精品99久久不卡| caoporn97在线视频| 国产精品久久久久久久网站| 一本一道久久综合久久| 成年女人在线视频| 中文字幕久精品免费视频| 无码欧精品亚洲日韩一区| 久久一区不卡中文字幕| 无遮挡很污很爽很黄的网站|