|
我們本次的作業(yè)是怎么用上位機(jī)通過(guò)串口操作控制單片機(jī)模塊控制八個(gè)發(fā)光二極管的發(fā)光狀態(tài)。
我是在單片機(jī)貼吧看的一個(gè)大神給出的答案,然后自己加工了一下,可是沒法控制P2口的明滅
這是我的proteus圖:
QQ截圖20170503155852.png (23.55 KB, 下載次數(shù): 69)
下載附件
2017-5-3 15:59 上傳
這是程序圖:
#include<reg51.h>
#define uchar unsigned char
uchar num=0;
void delayms(int z)
{
int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void Uart_init()
{
SCON=0xd0; //SM1=1 REN=1
TMOD=0x20; //D5=1 D4=0 即M1=1 M0=0
TH1=0xfd; //TH1=0XFD TL1=0XFD 將波特率設(shè)為9600
TL1=0xfd;
TR1=1; //啟動(dòng)定時(shí)器1
ES=1; //打開串口中斷
EA=1; //打開總中斷
}
void main()
{
Uart_init();
while(1);
}
void interrupt_uart() interrupt 4 //串口中斷優(yōu)先等級(jí)為4
{
if(TI)
{
TI=0;
REN=1; //不發(fā)送時(shí)允許接收
}
if(RI)
{
RI=0; //先把接收標(biāo)志位清零
num=SBUF; //把數(shù)據(jù)送給SBUF
P2=num;
num++;
SBUF=num; //SBUF再接收加1以后的數(shù)據(jù)
REN=0; //發(fā)送時(shí)不允許接收
}
}
可是還是沒法通過(guò)串口調(diào)試助手發(fā)送指令控制二極管發(fā)光
PS:波特率,COM之類的都沒問(wèn)題
|
|