ADC0832數字電壓表例程代碼,附件中自取
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (17.76 KB, 下載次數: 76)
下載附件
2018-1-10 03:27 上傳
數字電壓表單片機源程序如下:
- #include<reg52.h>
- #include <intrins.h>
- #include <delay.h>
- #include <lcd1602.h>
- #include <adc0832.h>
- #include <led.h>
- #include<stdio.h>
- unsigned char code dianya[]="0123456789";
- unsigned char i,Volt=0;
- unsigned int V=0,bai,shi,ge,temp=0;
- float vprint;
- /*------------------------------------------------
- 串口通訊初始化
- ------------------------------------------------*/
- void UART_Init(void)
- {
- SCON = 0x50; // SCON: 模式 1, 8-bit UART, 使能接收
- TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit 重裝
- TH1 = 0xFD; // TH1: 重裝值 9600 波特率 晶振 11.0592MHz
- TR1 = 1; // TR1: timer 1 打開
- //EA = 1; //打開總中斷
- //ES = 1; //打開串口中斷
- TI=1;
- } //這一塊與上位機通信的還沒編寫好!!
- /*------------------------------------------------
- 顯示
- ------------------------------------------------*/
- void display(void)
- { LCD_Write_Char(6,1,dianya[bai]);
- LCD_Write_Char(7,1,0x2e);
- LCD_Write_Char(8,1,dianya[shi]);
- LCD_Write_Char(9,1,dianya[ge]);
- }
- main(void)
- { UART_Init();
- LCD_Init();
- LCD_Write_String(3,0," Volt Peak");
-
- while(1)
- { V= Adc0832(0); //剛開始一瞬間這個值有變化
- Volt=Adc0832(0);//到這里不會有變化了
- if(temp<Volt)temp=Volt;
-
- vprint=(float)(temp*5.0/255);
- // Send adc results to the serial interface
- printf("Volt Peak: %7.3f\n",vprint);
- V=(unsigned int)((temp*100)/51);
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
proteus數字電壓表.rar
(84.99 KB, 下載次數: 101)
2018-1-3 15:26 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|