|
串口调试助手发送的数据P2所有的管脚都没办接收到时什么情况?我想接收六组数据然后在六个不同的数码管进行显示,P2是段选,P3是位选。请大神们赐教!!!万分感激!!!
- void delay1ms(x) //0.5ms
- {
- int y,z;
- for(y=x;y>0;y--)
- for(z=60;z>0;z--);
- }void init_uart()
- {
- TMOD=0x20; //定时器/计算器工作模式寄存器
- TH1=0xFD; //timer high 1
- TL1=0xFD; //timer low 1
- TR1=1; //定时器T1的运行控制位
- SCON=0x50; //串行控制寄存器
- EA=1; //CPU的总中断允许控制位
- ES=1; //串行口中断允许位
- }
- void UART_R() interrupt 4
- {
- RI=0;
- Serial_digtal[ch++]=SBUF;
- if(ch==N) //获取SBUF接收到的数据
- flag=1;
- }
- void main()
- {
- init_uart();
- while(1)
- {
- if(flag==1) //接收完成标志为1
- {
- ES=0; //关串口中断
- for(ch=0;ch<N;ch++)
- {
- SBUF=Serial_digtal[ch]; //发送数据
- while(!TI); //等待发送中断请求标志位为1
- TI=0;
- } //发送中断请求标志位清0
- ES=1; //开串口中断
- ch=0;
- flag=0; //接收完成标志清0
- }
- // P2=~Serial_digtal[0];
- // P3=digtalW[2];
- P3=~Serial_digtal[0];
- P2=digtal1[6];
- delay1ms(10);
- }
- }
复制代码
|
|