我有一个这样的程序在PROTUSE中
仿真是成功的 可是在实际
电路中却无法实现 我的实际电路用的
单片机是STC90C52的 我想可能会是单片机型号的问题 可是不知道怎么解决···有知道的朋友给解答下啊? 拜谢了!!! .
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define delay4us() {_nop_();_nop_();_nop_();_nop_();}
sbit CS=P1^0;
sbit CLK=P1^1;
sbit DIO=P1^2;
sbit RS=P2^0;
sbit RW=P2^1;
sbit E=P2^2;
uchar Display_Buffer[]="0.00V";
uchar code Line1[]="weswesw Voltage:";
void delay_ms(unsigned char i)
{
unsigned char a, b;
for (a = 1; a < i; a++)
{
for (b = 1; b; b++)
{ ; }
}
}
bit LCD_Busy_Check()
{
bit result;
RS=0;RW=1;E=1;delay4us();result=(bit)(P0&0x80);E=0;
return result;
}
void LCD_write_com(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_com(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_Ini
tialise()
{
LCD_write_com(0x38); /*ÏÔʾģʽÉèÖÃ*/
delay_ms(5);
LCD_write_com(0x38);
delay_ms(5);
LCD_write_com(0x38);
delay_ms(5);
LCD_write_com(0x38);
LCD_write_com(0x08); /*ÏÔʾ¹Ø±Õ*/
LCD_write_com(0x01); /*ÏÔʾÇåÆÁ*/
LCD_write_com(0x06); /*ÏÔʾ¹â±êÒƶ¯ÉèÖÃ*/
delay_ms(5);
LCD_write_com(0x0C);
}
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=0;_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();
delay_ms(100);
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]!=' ')
LCD_Write_Data(Line1[i++]);
Set_Disp_Pos(0x46);
i=0;
while(Display_Buffer[i]!=' ')
LCD_Write_Data(Display_Buffer[i++]);
}
}
-
仿真电路
一周热门 更多>