1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉
標題:
51單片機ADC0832模數轉換與顯示實例
[打印本頁]
作者:
ziba108
時間:
2018-6-8 11:50
標題:
51單片機ADC0832模數轉換與顯示實例
##ADC0832
模數轉換與顯示
##
1602液晶顯示的ADC0832模數轉換的電路原理圖如下:
0832.jpg
(80.19 KB, 下載次數: 93)
下載附件
2018-6-8 11:48 上傳
單片機源程序如下:
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
#define delay4us() {_nop_();_nop_();_nop_();_nop_();}
sbit RS = P2^0;
sbit RW = P2^1;
sbit E = P2^2;
sbit CS = P1^0;
sbit CLK = P1^1;
sbit DIO = P1^2;
uchar Display_Buffer[] = "0.00V";
uchar code Line1[] = "Current Voltage:";
void DelayMS(uint ms) {
uchar i;
while(ms--) {
for(i=0;i<120;i++);
}
}
bit LCD_Busy_Check() {
bit result;
RS = 0;
RW = 1;
E = 1;
delay4us();
result = (bit)(P0&0x80);
E = 0;
return result;
}
void LCD_Write_Command(uchar cmd) {
while(LCD_Busy_Check());
RS = 0;
RW = 0;
E = 0;
_nop_();
_nop_();
P0 = cmd;
delay4us();
E = 1;
delay4us();
E = 0;
}
void Set_Disp_Pos(uchar pos) {
LCD_Write_Command(pos | 0x80);
}
void LCD_Write_Data(uchar dat) {
while(LCD_Busy_Check());
RS = 1;
RW = 0;
E = 0;
P0 = dat;
delay4us();
E = 1;
delay4us();
E = 0;
}
void LCD_Initialise() {
LCD_Write_Command(0x38); DelayMS(1);
LCD_Write_Command(0x0c); DelayMS(1);
LCD_Write_Command(0x06); DelayMS(1);
LCD_Write_Command(0x01); DelayMS(1);
}
uchar Get_AD_Result() {
uchar i,dat1=0,dat2=0;
CS = 0;
CLK = 0;
DIO = 1; _nop_(); _nop_();
CLK = 1; _nop_(); _nop_();
CLK = 0;DIO = 1; _nop_(); _nop_();
CLK = 1; _nop_(); _nop_();
CLK = 0;DIO = 1; _nop_(); _nop_();
CLK = 1;DIO = 1; _nop_(); _nop_();
CLK = 0;DIO = 1; _nop_(); _nop_();
for(i=0;i<8;i++) {
CLK = 1; _nop_(); _nop_();
CLK = 0; _nop_(); _nop_();
dat1 = dat1 << 1 | DIO;
}
for(i=0;i<8;i++) {
dat2 = dat2 << ((uchar)(DIO)<<i);
CLK = 1; _nop_(); _nop_();
CLK = 0; _nop_(); _nop_();
}
CS = 1;
return (dat1 == dat2) ? dat1:0;
}
void main() {
uchar i;
uint d;
LCD_Initialise();
DelayMS(10);
while(1)
{
d = Get_AD_Result()*500.0/255;
Display_Buffer[0]=d/100+'0';
Display_Buffer[2]=d/10%10+'0';
Display_Buffer[3]=d%10+'0';
Set_Disp_Pos(0x01);
i = 0;
while(Line1[ i]!='\0') {
LCD_Write_Data(Line1[i+1]);
}
Set_Disp_Pos(0x46);
i = 0;
while(Display_Buffer!='\0')
{
LCD_Write_Data(Display_Buffer[i+1]);
}
}
}
復制代碼
所有資料51hei提供下載:
51單片機ADC0832模數轉換與顯示實例.docx
(49.45 KB, 下載次數: 107)
2018-6-8 11:49 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
踏雨歌行
時間:
2019-11-25 23:07
仿真LM016L怎么全是uuuuuu
作者:
ybsuse
時間:
2020-11-4 20:05
要是你打包資料下載就好了
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1