|
單片機(jī)源程序:
- /**********************BST-V51實(shí)驗(yàn)開發(fā)板例程************************
- * 平臺:BST-V51 + Keil U3 + STC89C52
- * 名稱:四路AD數(shù)值LCD1602屏顯示
- * 公司:深圳市亞博軟件開發(fā)有限公司
- * 晶振:11.0592MHZ
- * 說明:免費(fèi)開源,不提供源代碼分析.
- ******************************************************************/
- /*-----------------------------------------------
- 名稱:IIC協(xié)議 PCF8591ADDA轉(zhuǎn)換 顯示有4個(gè),注意只有2個(gè)可以調(diào)節(jié)電壓的
- 內(nèi)容:此程序通過IIC協(xié)議對DAAD芯片操作,讀取電位器的電壓通過液晶顯示,并輸出模擬量,用LED亮度漸變指示
- ------------------------------------------------*/
- #include <reg52.h> //包含頭文件,一般情況不需要改動(dòng),頭文件包含特殊功能寄存器的定義
- #include <intrins.h> //包含NOP空指令函數(shù)_nop_();
- #include "LCD1602.h"
- #include "IIC.h"
- #include "stdio.h"
- unsigned char TempData[8];
- unsigned char showtext[12];
- /*------------------------------------------------
- 延時(shí)程序
- ------------------------------------------------*/
- void mDelay(unsigned char j)
- {
- unsigned int i;
- for(;j>0;j--)
- {
- for(i=0;i<125;i++);
- }
- }
- /*------------------------------------------------
- 初始化定時(shí)器1
- ------------------------------------------------*/
- void Init_Timer1(void)
- {
- TMOD |= 0x10;
- TH1=0xff; /* Init value */
- TL1=0x00;
- EA=1; /* interupt enable */
- ET1=1; /* enable timer1 interrupt */
- TR1=1;
- }
- /*------------------------------------------------
- 主程序
- ------------------------------------------------*/
- void main()
- {
- //unsigned char num; //DA數(shù)模輸出變量
- float ADtemp; //定義中間變量
-
- LCD1602_init();
- mDelay(20);
- Init_Timer1();
-
- LCD_Write_String(0,0,"rank:"); //在第一行顯示
-
- while(1)
- {
- mDelay(20); //延時(shí)用于清晰看出變化
-
- if(ADFlag) //定時(shí)采集輸入模擬量
- {
- ADFlag=0;
- ADtemp = ReadADC(0)*(5.0/256);
-
- // TempData[0]=(unsigned int)(ReadADC(0))*(5/256);//處理0通道電壓顯示
- // TempData[1]=(unsigned int)(ReadADC(0))*50/256%10;
- // TempData[2]=(unsigned int)(ReadADC(0))*500/256%10;
- sprintf(showtext,"%1.2fV",ADtemp);
-
- LCD_Write_String(5,0,showtext);
-
- // LCD_Write_Char(5,0,TempData[0] + '0');
- // LCD_Write_Char(6,0,'.');
- // LCD_Write_Char(7,0,TempData[1] + '0');
- // LCD_Write_Char(8,0,TempData[2] + '0');
- // LCD_Write_Char(9,0,'V');
- }
- }
- }
- /*------------------------------------------------
- 定時(shí)器中斷程序
- ------------------------------------------------*/
- void Timer1_isr(void) interrupt 3 using 1//定時(shí)器1執(zhí)行數(shù)碼管動(dòng)態(tài)掃描
- {
- static unsigned int j;
- TH1=0xfb; //重新賦值
- TL1=0x00;
- j++;
- if(j==200)
- {j=0;ADFlag=1;} //定時(shí)置位AD采樣標(biāo)志位
-
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
【實(shí)驗(yàn)52】AD模塊.zip
(57.88 KB, 下載次數(shù): 124)
2018-4-27 09:31 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|