📄 text.c
字号:
#include "at89x52.h"
#include "SERIAL.h"
#include "led.h"
#define uchar unsigned char
#define uint unsigned int
#define CONTRALLINE P0_0
uchar count = 0;
uint highnumber; //高位时的T0初计数值
uint lownumber; //低位时的T0初计数值
uint initnumber;
uchar T0_lowbool = 0;
void ConutIni(float angle) // 1ms需要1843.2个机器周器 hightime
{
float hightime;
hightime = 0.5 + 2.0 / 180.0 * angle;
highnumber = 0xffff - ( int ) ( hightime * 1843.2 ) ;
lownumber = 0xffff - ( int ) ( ( 20 - hightime ) * 1843.2 ) ;
}
void time0_over(void) interrupt 1
{
count %= 2;
if( count == 0)
{
initnumber = highnumber;
P0_0 = 1;
P0_7 = 1;
}
else
{
initnumber = lownumber;
P0_0 = 0;
P0_7 = 0;
T0_lowbool = 1;
}
count ++;
TL0 = 0xff & initnumber;
TH0 = 0xff & ( initnumber >> 8 );
}
void device_ini(void)
{
TMOD = 0x01;
IE = 0x82;
TR0 = 0x01; //启动定时器T0;
}
void main(void)
{
DeviceIniSerial(0xff, 0xb8);
ComSend(0x12);
device_ini();
ConutIni(90);
while (1)
{
//if(T0_lowbool == 1)
//{
if(receive_bool)
{
//ConutIni(0);
LedPrint(receive_number);
receive_bool = 0;
}
T0_lowbool = 0;
LedScan();
//}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -