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

📄 pc-51-keil.c

📁 VC++通信介面和PIC联机.PIC单片机通过光敏电阻的变化传送到上位机.并在VC++上拉机介面显示
💻 C
字号:
#include "reg51.h"
#define uchar unsigned char
sbit motor=P3^3;
uchar pulse=9;
uchar spead=0;
uchar spead_temp=0;
uchar cgf2[15]={0x0c0,0x0f9,0x0A4,0X0B0,0x99,0x92,0x82,0x0F8,0x80,0x90};	
										//数码管显示字型表	

uchar code cgf1[10][20]={"电机低速运行","第1级火力","第2级火力","第3级火力","第4级火力","第5级火力","第6级火力","第7级火力","第8级火力","电机全速运行"};

void timer0(void) interrupt 1
{
TR0=0;
TH0=0X0ff;
TL0=0x0e5;									//40US
if(--spead==0) 	{spead=spead_temp;motor=1;}
if(--pulse==0)	{pulse=9;motor=0;spead=spead_temp;}
TR0=1;
}
										
										
void main(void)					
{
uchar i,k=0;
uchar temp=0;
i=0;
EA=1;
TH0=0X0ff;
TL0=0x0e5;									//40US
PCON=0X80;
TMOD=0X21;
ET0=1;
TH1=0X0F7;TL1=0X0F7;						//4200
TR1=1;
//TR0=1;
SCON=0X50;

motor=1;									
P1=0X0C0;

while(1)									//循环
{
RI=0;
while(!RI)									//RI=0等待
{if(spead_temp==0)	{TR0=0;motor=1;}}		//此句放在这里最好,保证0级火力一定能关机	
i=SBUF;										//RI=1存入数据
i=i&0x0f;									//保留低四位
if((i==2||i==1)&&temp==0)					//当电机从无运行到一级火力时,开关来一个PULSE启动
{
TH0=0X0f5;
TL0=0x0;									//pulse
}
temp=i;
spead=i;									//速度值送spead
spead_temp=spead;							//存入TEMP中

if(spead!=0)		{TR0=1;motor=0;pulse=9;}
if(spead_temp==0)	{TR0=0;motor=1;}


P1=cgf2[i];									//查字型表送P1显示
RI=0;										//清RI

TI=0;
for(k=0;k<=19;k++)
{
SBUF=cgf1[i][k];								//取cgf1字符串中第i个字符发送
while(!TI);
TI=0;
}
}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -