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

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

ICL7135(4位半雙積分AD)驅動程序備份

作者:佚名   來源:本站原創   點擊數:  更新時間:2011年09月20日   【字體:
/*********************************************/
//如下程序使用了計數器T0,外部中斷INT0,普通I/O口P3.5
//調用了用于顯示的液晶12864的頭文件
/*********************************************/
#include <reg51.h>
#include <12864A.H>   //調用12864模塊
#define  uchar unsigned char
#define  uint unsigned int
sbit ICL7135_POL=P3^5;
sbit ICL7135_BUSY=P3^2;    //接外部中斷口
sbit ICL7135_CLK=P3^4;    //接計數器口      
int ICL7135_count;     //計數存儲單元
uint ICL7135_out;     //A轉D后數據的10000倍,存于此單元
bit ICL7135_flag;     //輸出正負的位標志
float ICL7135_ref=2.0;  //定義基準電壓變量,方便修改

Init_ICL7135()    //初始化子程序
{
TMOD=0x05;       //T0工作于計數模式
EA=1;
TL0=0;
TH0=0;
EX0=1;
IT0=1;
}
/*-----------------------------------------------------------------------------------------------*/
int0() interrupt 0
{
float a;          //浮點型轉整型中間變量
uchar A1,A2,A3,A4,A5,B1,B2,B3,B4,B5;       //萬、千、百、十、個位
TR0=0;             //停止計數
ICL7135_count=TH0*256+TL0;     //16方式計得的數
ICL7135_flag=ICL7135_POL;     //判斷輸出是正是負
a=ICL7135_ref*(ICL7135_count-10000);   // 正向積分為10000個脈沖ICL7135輸出放大10000倍后的采樣值              
 if(a<0)          //此句是為了避免因計數誤差而導致a<0而出現的錯誤顯示。(前提ICL7135_count必須為有符號變量)
 a=0;
ICL7135_out=a;          //浮點型轉整型。
//被測電壓的各位
A1=ICL7135_out/10000;      
A2=ICL7135_out%10000/1000;      
A3=ICL7135_out%1000/100;
A4=ICL7135_out%100/10;
A5=ICL7135_out%10;
//AD采樣的源碼各位
B1=ICL7135_count/10000;
B2=ICL7135_count%10000/1000;
B3=ICL7135_count%1000/100;
B4=ICL7135_count%100/10;
B5=ICL7135_count%10;
/*****************************************************************/
//顯示模塊 此處用液晶顯示器12864 可替換為CH451驅動的數碼管
/*****************************************************************/
 LCD_Setaddress(1,1);     //送顯示的縱橫坐標
 print("當前測試電壓:"); 
 LCD_Setaddress(2,3);
 if(ICL7135_flag)      //如果為正數
 { 
 LCD_write_dat(0x30+A1);               
 LCD_write_dat(0x2E);     //顯示小數點
 LCD_write_dat(0x30+A2);
 LCD_write_dat(0x30+A3);
 LCD_write_dat(0x30+A4);
 LCD_write_dat(0x30+A5);
 }
 else         //如果為負數
 {
 LCD_write_dat(0x2d);     //顯示負號
 LCD_write_dat(0x30+A1);
 LCD_write_dat(0x2E);
 LCD_write_dat(0x30+A2);
 LCD_write_dat(0x30+A3);
 LCD_write_dat(0x30+A4);
 LCD_write_dat(0x30+A5);
 }
 LCD_Setaddress(3,1);     //送顯示的縱橫坐標
 print("輸出源碼:"); 
 LCD_Setaddress(4,3);
 LCD_write_dat(0x30+B1);               
 LCD_write_dat(0x30+B2);
 LCD_write_dat(0x30+B3);
 LCD_write_dat(0x30+B4);
 LCD_write_dat(0x30+B5);
/**********************************************************************/
TL0=0;          //重新轉載數據 
TH0=0; 
}
/*-----------------------------------------------------------------------------------------------*/

void main()
{

LCD_init();           //初始化12864
Init_ICL7135();        //初始化ICL7135
while(1)
{

while(ICL7135_BUSY==0);
TR0=1;
}
}

 //程序格式粗糙,無暇整理,僅為備份。如需參考,不明白處可留言。
關閉窗口

相關文章

主站蜘蛛池模板: 高清免费av | 青青久草 | 欧美亚洲综合久久 | 三级av在线 | 99精品观看 | 伊人超碰 | 精品一区二区三区在线观看国产 | 欧美激情一区二区 | 99视频 | 国产99小视频 | 看毛片网站 | 日日摸夜夜爽人人添av | 日韩精品免费视频 | 欧美激情a∨在线视频播放 成人免费共享视频 | 日韩一区二区三区av | 97久久精品| 久久伊人精品 | 久久精品视频播放 | av影音| 久久精品国产亚洲夜色av网站 | 狠狠热视频 | 久久精品国产亚洲a | 天天爽天天干 | 成人性视频免费网站 | 国产一区二区在线播放视频 | 亚洲一区二区三区在线 | 久久精选 | 精品视频一区二区 | 国产精品视频久久 | 男人天堂网址 | 精品久久久久久中文字幕 | 成人免费高清 | 国产精品一区一区 | 日韩另类视频 | www.成人免费视频 | 黄网免费| 中文字幕免费视频 | 91人人在线 | 97av视频在线 | 五月天激情电影 | 91精品国产综合久久久久久丝袜 |