單片機:STC12C5A60S2 晶振:22.1184 MHz
1、使用單片機的 串口 2 接收GPS模塊信息;
2、使用定時器 1 來控制 P3 口 輸出高電平;
現在的問題是:
1、我在主函數的while循環里面先將 P3 口輸出低電平, (有動作)
2、在定時器 1 的中斷函數里面將 P3 口輸出高電平,(不會動作)
以下是代碼:
1、主函數循環
while(1)
{
P3=0; // 測試用
GPS_JieXi();
......
2、波特率、定時器 初值設置
void Uart2_Init() // 第二串口,9600bps、22.1184MHz
{
AUXR &= 0xF7; //波特率不倍速
S2CON = 0x50; //8位數據,可變波特率
AUXR |= 0x04; //獨立波特率發生器時鐘為Fosc,即1T
BRT = 0xB8; //設定獨立波特率發生器重裝值
AUXR |= 0x10; //啟動獨立波特率發生器
IE2 = 0x01; //打開串行口中斷
//---------------------------------------------------------------
AUXR |= 0x40; //定時器時鐘1T模式
TMOD &= 0x0F; //設置定時器模式
TL1 = 0x9A; //設置定時初值
TH1 = 0xA9; //設置定時初值
TF1 = 0; //清除TF1標志
TR1 = 1; //定時器1開始計時
ET1 = 1;
//----------------------------------------------------------------
EA = 1; //打開全局中斷控制
}
3、定時器 1 中斷函數,定時100 毫秒
void Timer() interrupt 3
{
Time++;
if(Time==100)
{
Time=0;
P3=1;
}
}
|