⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 text.c

📁 基于单片机avr的led,串口模块的编程代码。
💻 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 + -