stc单片机入门c语言,谈谈单片机入门
該樓層疑似違規已被系統折疊?隱藏此樓查看此樓
#include "reg52.h"
#include"intrins.h"
typedef unsigned int u16;
typedef unsigned char u8;
u8 Duty_cycle,angle_PC,angle;
sbit pwmPIN=P2^0;
u8 map(u8 mapping,u8 in_min,u8 in_max,u8 out_min,u8 out_max) //將串口接收數據映射到PWM可調占空比范圍5到25
{
return(mapping-in_min)*(out_max-out_min)/(in_max-in_min)+out_min;
}
void uartinit()
{
TMOD=0x20;//T1設定波特率
TH1=0xF3;
TL1=0xF3;
TR1=1;//打開T1
SCON=0x50;//配置通訊方式
PCON=0X00;
EA=1;//打開中斷
ES=1;
PS=1;
}
void InitTimer0()//定時100us進入一次中斷
{
TMOD=0x01;
TH0=0x0FF;
TL0=0x9C;
EA=1;
ET0=1;
TR0=1;
}
void main()
{
InitTimer0();
uartinit();
while(1);
}
void uart(void) interrupt 4
{
RI=0;
angle_PC=SBUF;
angle=map(angle_PC,0,180,5,25);
SBUF=angle_PC;
while(!TI);
TI=0;
}
void servo(void) interrupt 1 //產生舵機PWM波,占空比0.5MS到2.5MS可調。周期20MS
{
Duty_cycle++;
if(Duty_cycle>=angle)
pwmPIN=0;
else pwmPIN=1;
if(Duty_cycle>=200)
Duty_cycle=0;
TH0 = 0x0FF;
TL0 = 0x9C;
}
總結
以上是生活随笔為你收集整理的stc单片机入门c语言,谈谈单片机入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言1e12怎么识别,掌握C语言中基本
- 下一篇: c语言选择夹答案,单片机串口通讯制作说明