这个不知道为什么,怎么也读不出来
#include <reg51.h>
#define LCD_DataPortH P2 //高8位数据口,8位模式下只使用高8位
sbit LCD_CS=P1^0; //片选
sbit LCD_REST = P1^1; //复位
sbit LCD_RS = P1^2; //数据/命令切换
sbit LCD_WR = P1^3; //写控制
sbit LCD_RD =P1^4; //读控制
void UART_init(); //串口初始化函数
void COM_send(void); //串口发送函数
char bdata Temp;
char str[16];
//-------------------------------------------------------------------
void COM_send(void)
{
char point;
for(point=0;point< 16;point++) //连续发送一百位数据 //把缓存区的数据都发送到串口
{
SBUF=str[point];
while(!TI);
TI=0;
}
}
//--------------------------------------------------------------
void UART_init()
{
//初始化串行口和波特率发生器
SCON =0x40; //选择串口工作方式1,不允许接收
TMOD =0x20; //定时器1工作在方式2,定时器0工作在方式1
TH1 =0xfA; //
PCON = 0x80; //速度加倍
TR1 =1; //启动定时器T1
//ET1 =0;
//ES=1; //允许串行口中断
//PS=1; //设计串行口中断优先级
//EA =0; //单片机中断允许
}
void delayms(int count) // /* X1ms */
{
int i,j;
for(i=0;i<count;i++)
for(j=0;j<1000;j++);
}
void LCD_Writ_Bus(char VH,char VL) //并行数据写入函数
{
LCD_DataPortH=VH;
LCD_WR=0;
LCD_WR=1;
LCD_DataPortH=VL;
LCD_WR=0;
LCD_WR=1;
}
void Lcd_Write_Com(char VH,char VL) //发送命令-8位参数
{
LCD_RS=0;
LCD_Writ_Bus(VH,VL);
}
void Lcd_Write_Data(char VH,char VL) //发送数据-8位参数
{
LCD_RS=1;
LCD_Writ_Bus(VH,VL);
}
void Lcd_Write_Com_Data(int com,int val) //发送数据命令
{
Lcd_Write_Com(com>>8,com);
Lcd_Write_Data(val>>8,val);
}
main()
{
while(1)
{
unsigned char i;
UART_init(); //初始化串口
//P0=0Xf0;
P2=0XF0;
Temp=P2;
for(i=8;i>0;i--)
{
str[i]= Temp&0x01 + 0x30;
Temp= Temp>>1;
}
COM_send();
}
} |