旋转编码开关 实例
ec11stm32例程

ec11stm32例程EC11STM32是一种旋转编码器,常用于嵌入式系统中,可以用来获取旋转方向和计算旋转角度。
在STM32开发板上使用EC11STM32,需要进行相应的配置和编程。
本文将介绍EC11STM32的原理、使用方法以及编程实例。
EC11STM32工作原理:EC11STM32包含一个旋转编码器和一个按钮开关。
旋转编码器由两个光电传感器、一个LED和一个编码盘组成。
编码盘上有很多小刻度,每当旋转编码器旋转一格,编码盘上的刻度就会遮挡或透过光电传感器,从而产生一个脉冲信号。
根据脉冲信号的变化,我们可以判断旋转的方向和计算旋转的角度。
EC11STM32的使用方法:在STM32开发板上使用EC11STM32,首先需要将EC11STM32连接到正确的GPIO引脚上。
然后,我们可以通过读取GPIO引脚的状态来获取旋转和按下按钮的信息。
对于旋转编码器,我们可以使用两个引脚来获取旋转方向和计数。
对于按钮开关,我们可以使用一个引脚来获取按下和释放的状态。
编程实例:下面是一个使用EC11STM32的简单编程实例,用于获取旋转方向和计算旋转角度:```c#include "stm32f10x.h"#define CLK_GPIO GPIOA#define DT_GPIO GPIOB#define BTN_GPIO GPIOC#define CLK_PIN GPIO_Pin_0#define DT_PIN GPIO_Pin_1#define BTN_PIN GPIO_Pin_13int main(void){GPIO_InitTypeDef GPIO_InitStructure;//初始化时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC, ENABLE);//配置CLK引脚为输入GPIO_InitStructure.GPIO_Pin = CLK_PIN;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(CLK_GPIO, &GPIO_InitStructure);//配置DT引脚为输入GPIO_InitStructure.GPIO_Pin = DT_PIN;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(DT_GPIO, &GPIO_InitStructure);//配置BTN引脚为输入GPIO_InitStructure.GPIO_Pin = BTN_PIN;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(BTN_GPIO, &GPIO_InitStructure);int count = 0;int last_state = 0;int curr_state = 0;while (1){//读取CLK和DT引脚的状态last_state = curr_state;curr_state = GPIO_ReadInputDataBit(CLK_GPIO, CLK_PIN) << 1 | GPIO_ReadInputDataBit(DT_GPIO, DT_PIN);if (last_state != curr_state){//根据旋转方向增加或减少计数if ((last_state == 0b00 && curr_state == 0b01) || (last_state == 0b11 && curr_state == 0b10))count++;else if ((last_state == 0b01 && curr_state == 0b00) || (last_state == 0b10 && curr_state == 0b11))count--;//打印计数值printf("Count: %d\n", count);}//检测按钮是否按下if (GPIO_ReadInputDataBit(BTN_GPIO, BTN_PIN) == 0){//按钮按下时执行的操作printf("Button pressed\n");}}}```通过上述代码,我们可以实现读取EC11STM32的旋转和按钮信息,并进行相应的操作。
EC110201C2B-HA1编码开关

EC11旋转编码器开关编码器型号EC110201C2B-HA1应用领域汽车空调、汽车音响,汽车导航、调音台、多媒体音响\功放,家用电器等特点体积小,密封性好,可靠性高,有多种不同的规格供选择主要功能调频、调节音量、调节温度、功能切换等主要格规参数外形尺寸:∮11mm额定电压:DC5V;定位数:16/20/30/32个;脉冲数:8/15/16/20;工作温度:-40°C to85°C;旋转寿命:30000次以上;EC11规格参数一、MECHANICAL CHARACTERISTIC机械特性1、Detent Torque定位点力矩:20-200gf.cm2、Number and position of detent定位点数及位置:16/20/30/32点定位3、Shaft wobble轴摆动:0.2mm MAX4、Shaft play in rotational wobble轴的回转方向摆动:2°MAX二、ELECTRICAL CHARACTERISTIC电气特性1、Resolution分解能力:8/16/15/20个脉冲/360°2、Phase difference相位差:≥3ms3、Rated voltage额定电压:DC5V4、Insulation Resistance绝缘电阻:10MΩ1Minute at DC250V5、Dielectric Voltage耐电压:1Minute at AC50V三、ENDURANCE CHARACTERISTIC耐久特性1、Rotational life回转寿命:30,000cycles MinNote:In this catalog,if some parame ters lr drawings are different from the"Approval sheet",it's subject to the"Approval sheet".注明:如说明书与承认书规格参数、图面有异,均以承认书为准。
ec11编码开关 编程范例

ec11编码开关编程范例EC11编码开关是一种常用的旋转编码器,可以用于控制器、电子设备等的编程操作。
下面是一个简单的编程范例,以Python语言为例:python.import RPi.GPIO as GPIO.import time.# 设置GPIO引脚。
CLK = 17。
DT = 18。
SW = 27。
# 初始化GPIO模式。
GPIO.setmode(GPIO.BCM)。
GPIO.setup(CLK, GPIO.IN, pull_up_down=GPIO.PUD_UP)。
GPIO.setup(DT, GPIO.IN, pull_up_down=GPIO.PUD_UP)。
GPIO.setup(SW, GPIO.IN, pull_up_down=GPIO.PUD_UP)。
# 定义回调函数。
def rotate_callback(channel):global counter.if GPIO.input(DT):counter += 1。
else:counter -= 1。
def switch_callback(channel):print("Switch pressed!")。
# 注册回调函数。
GPIO.add_event_detect(CLK, GPIO.RISING, callback=rotate_callback, bouncetime=200)。
GPIO.add_event_detect(SW, GPIO.FALLING, callback=switch_callback, bouncetime=200)。
# 主循环。
counter = 0。
try:while True:print("Counter:", counter)。
time.sleep(0.1)。
except KeyboardInterrupt:GPIO.cleanup()。
上述范例中,我们使用RPi.GPIO库来控制树莓派的GPIO引脚。
旋转编码器编程原理实例

旋转编码器编程原理实例旋转编码器是一种常见的传感器设备,可以用于测量物体的旋转角度和方向。
它通常由光电转换器和代码盘组成,通过检测光电转换器接收到的光线来确定旋转方向和步数。
旋转编码器广泛应用于工控领域、机器人控制、汽车导航系统等。
1.硬件连接:首先,需要将旋转编码器与控制器板连接起来。
通常旋转编码器具有三个引脚:电源正极、电源负极和输出信号。
将正极连接到控制器板的电源输出引脚,负极连接到控制器板的地引脚,输出信号连接到控制器板的一些IO口。
2.编程环境设置:在编程环境中,需要导入旋转编码器的驱动库。
常见的编程语言如C、C++、Python等都有相应的驱动库可供选择。
导入驱动库后,可以使用库中提供的函数来操作旋转编码器。
3.初始化旋转编码器:在开始使用旋转编码器之前,需要初始化其参数。
这些参数包括旋转方向(顺时针或逆时针)、初始位置、步长等。
可以使用驱动库中提供的函数来设置这些参数。
4.监听旋转编码器信号:5.处理旋转编码器信号:在监听到旋转编码器的信号变化后,需要编写相应的处理函数来处理这些变化。
处理函数可以根据信号的变化来判断旋转方向和步数。
通常,顺时针旋转会使输出信号由低到高变化,逆时针旋转则相反。
6.更新位置数据:根据旋转编码器的信号变化和步数,可以更新物体的位置数据。
将每次旋转的步数加到当前位置上,就可以实时获取物体的旋转角度和方向。
通过以上步骤,就可以实现旋转编码器的编程原理。
下面是一个使用Python编写的旋转编码器示例程序:```pythonimport RPi.GPIO as GPIO#定义旋转编码器的IO口A_PIN=17B_PIN=18#初始化GPIOGPIO.setmode(GPIO.BCM)GPIO.setup(A_PIN, GPIO.IN)GPIO.setup(B_PIN, GPIO.IN)#记录旋转方向和步数direction = 0count = 0#定义旋转编码器的信号回调函数def encoder_callback(channel):global direction, countA = GPIO.input(A_PIN)B = GPIO.input(B_PIN)if A == B:direction = 1 # 顺时针旋转count += 1else:direction = -1 # 逆时针旋转count -= 1#监听旋转编码器的信号变化GPIO.add_event_detect(A_PIN, GPIO.BOTH, callback=encoder_callback)GPIO.add_event_detect(B_PIN, GPIO.BOTH, callback=encoder_callback)#主程序if __name__ == "__main__":try:while True:print("Direction:", direction)print("Count:", count)except KeyboardInterrupt:pass#清理GPIO资源GPIO.cleanup```以上程序示例了如何使用树莓派的GPIO接口来读取旋转编码器的信号,并实时获取旋转方向和步数。
(整理)旋转编码开关

旋转编码开关(Rotary Encoder switch)这种旋转编码开关(Rotary Encoder switch),一个使用3脚的,后面一个使用5脚的,大家可能对这种玩意都不是很了解,但涉及到有调整的地方,这个玩意使用真是很爽,我弄了2个,研究了一下,供大家参考~5脚的ALPS:具有左转,右转,按下三个功能。
4、5脚是中间按下去的开关接线 1 2 3脚一般是中间2脚接地,1、3脚上拉电阻后,当左转、右转旋纽时,在1、3脚就有脉冲信号输出了。
着这是标准资料:在单片机编程时,左转和右转的判别是难点,用示波器观察这种开关左转和右转时两个输出脚的信号有个相位差,见下图:由此可见,如果输出1为高电平时,输出2出现一个高电平,这时开关就是向顺时针旋转; 当输出1 为高电平,输出2出现一个低电平,这时就一定是逆时针方向旋转.所以,在单片机编程时只需要判断当输出1为高电平时,输出2当时的状态就可以判断出是左旋转或是右旋转了。
还有另外一种3脚的,除了不带按钮开关外,和上面是一样的使用。
参考:#include "reg51.h"#define uint unsigned intsbit CodingsWitch_A=P1_1;sbit CodingsWitch_B=P1_2;uint CodingsWitchPolling()//{static Uchar Aold,Bold; //定义了两个变量用来储蓄上一次调用此方法是编码开关两引脚的电平static Uchar st; //定义了一个变量用来储蓄以前是否出现了两个引脚都为高电平的状态uint tmp = 0;if(CodingsWitch_A&&CodingsWitch_B)st = 1; //if(st) //如果st为1执行下面的步骤 {if(CodingsWitch_A==0&&CodingsWitch_B==0) //如果当前编码开关的两个引脚都为底电平执行下面的步骤{if(Bold) //为高说明编码开关在向加大的方向转{st = 0;tmp++; //}if(Aold) //为高说明编码开关在向减小的方向转{st = 0;tmp--; //设返回值}}}Aold = CodingsWitch_A; //Bold = CodingsWitch_B; //储return tmp; //}//编码器计数程序void encoder_cnt(void){uchar temp;temp = PIND; //取端口D管脚信号couch_clr = (temp & 0x08); //取编码器清零信号if(couch_clr != false) //有编码器清零信号{couch_num = 0; //水平床码清零}else{if(encoder_cnt_en == false) //编码器计数模块没有启动{pr_couch_ba = temp &0x03; //取编码器A、B相电平信号}else{couch_ba = temp & 0x03; //取编码器A、B相电平信号if(pr_couch_ba == 0x00){if(co uch_ba == 0x01){couch_num++; //水平床码加1}elseif(couch_ba == 0x10){couch_num--; //水平床码减1}}else if(pr_couch_ba ==0x01){if(co uch_ba == 0x11){couch_num++; //水平床码加1}elseif(couch_ba == 0x00){ couch_num--; //水平床码减1}}else if(pr_couch_ba == 0x10){if(co uch_ba == 0x00){couch_num++; //水平床码加1}else if(couch_ba == 0x11){couch_num--; //水平床码减1}}else if(pr_couch_ba == 0x11){if(co uch_ba == 0x10){couch_num++; //水平床码加1}else if(couch_ba == 0x01){couch_num--; //水平床码减1}}}pr_couch_ba = couch_ba;}}编码器及其计数模块原理飘扬的旋转编码器的检测程序(MCS51)//旋转编码器检测程序,A/B信号分别接在了INT0和INT1上//程序作者:BG4UVR//2005年1月15用KEIL编译、硬件测试通过//注意:编码器的信号,程序未做消抖处理。
旋转编码器编程原理实例

如何使用旋转编码器、编码开关,旋转编码开关、编码器的原理在电子产品设计中,经常会用到旋转编码开关,也就是所说的旋转编码器、数码电位器、Rotary Encoder 。
它具有左转,右转功能,有的旋转编码开关还有按下功能。
为了使刚接触这种开关的朋友了解旋转开关的编程,我来介绍下它的原理和使用方法:以我厂生产的EC11型编码开关为例:如图1:三只脚:1 2 3脚一般是中间2脚接地,1、3脚上拉电阻后,当左转、右转旋转时,在1、3脚就有脉冲信号输出了。
两只脚:为按压开关,按下时导通,回复时断开。
在单片机编程时,左转和右转的判别是难点,用示波器观察这种开关左转和右转时两个输出脚的信号有个相位差,如图2。
由此可见,如果输出1为高电平时,输出2出现一个高电平,这时开关就是向顺时针旋转;当输出1 为高电平,输出2出现一个低电平,这时就一定是逆时针方向旋转。
所以,在单片机编程时只需要判断当输出1为高电平时,输出2当时的状态就可以判断出是左旋转或是右旋转了。
旋转编码开关(Rotary Encoder switch)我前面介绍的2篇文章:“自己动手做收音机(LC72131)”和“电脑USB接口LCD液晶显示板(LCD Smartie)”都使用了这种旋转编码开关(Rotary Encoder switch),一个使用3脚的,后面一个使用5脚的,大家可能对这种玩意都不是很了解,但涉及到有调整的地方,这个玩意使用真是很爽,我弄了2个,研究了一下,供大家参考~5脚的ALPS:<-- ALPS Incremental Encoder (EC11 series)具有左转,右转,按下三个功能。
4、5脚是中间按下去的开关接线 1 2 3脚一般是中间2脚接地,1、3脚上拉电阻后,当左转、右转旋纽时,在1、3脚就有脉冲信号输出了。
这是标准资料:在单片机编程时,左转和右转的判别是难点,用示波器观察这种开关左转和右转时两个输出脚的信号有个相位差,见下图:由此可见,如果输出1为高电平时,输出2出现一个高电平,这时开关就是向顺时针旋转; 当输出1 为高电平,输出2出现一个低电平,这时就一定是逆时针方向旋转.所以,在单片机编程时只需要判断当输出1为高电平时,输出2当时的状态就可以判断出是左旋转或是右旋转了。
单片机操作旋转编码器

.最近做了一个关于旋转编码器的项目,在网上查阅了很多资料,然后又是进行了诸多的实验,分享给大家。
1 旋转编码器原理(借用一下别的文档里的图片)5脚的旋转编码开关具有左转,右转,按下三个功能。
2脚接地,1,3脚接上拉电阻。
4脚,5脚是按下功能的两个脚,可以根据需求自己接线。
检查方向时,通常采用两种做法.的上升沿或下跳沿,在中断程序中,检测此时另外获取(1)中断法:A或B相为高电平一相的电平。
例如上图中,A相上跳沿,相为低电平则为顺时针转动;BB 二者为逆时针方向转动。
不相同时,则能判,BAB)电平法:同时检测A相和相的电平,当出现2 (B相的电平,则能判断出转动的方向。
定发生了转动,根据前一时刻A相和硬件电路2本设计在PIC16单片机上进行开发,采用中断法。
旋转编码开关输出上拉,之后采用RC 滤波器对信号进行先一步滤波,此处的RC滤波器的元器件大小可以适当调整。
中断源采用的是捕捉模块(CCP2)的捕捉中断(外部中断用于别处)。
3 C代码中断响应函数:void interrupt ISR(void){if(CCP2IF){CCP2IF=0;Change();}// 程序中CCP2设置成捕捉下跳沿void Change(){...unsigned int t2=2000;if(RC3)// 高电平{while((!RC1)&&(t2--))//等待RC1的低电平持续完{Delay();}的电平,以确认转动发生if(!RC3)//判断此时RC3{// 增或减操作}else{while((!RC1)&&(t2--))//等待RC1的低电平持续完{Delay();}RC3if(RC3)//判断此时的电平,以确认转动发生{// 增或减操作}}}注意事项:4滤波电路,延迟时间等均需要根据具体的旋转开关进行调整。
一般的单片机程序中,并不建议在中断中添加延迟函数,但应视具体情况而定。
8421旋转编码开关接线方法

8421旋转编码开关接线方法摘要:一、8421旋转编码开关简介二、8421旋转编码开关接线方法1.电源接线2.信号输出接线3.编码器与微控制器的连接三、接线注意事项四、总结正文:一、8421旋转编码开关简介8421旋转编码开关是一种常用的电子元器件,广泛应用于各种电子设备中,如机器人、自动化设备、智能家居等。
它具有四个输出端,可以输出0-15的状态信号,用于表示旋转的角度或位置。
本文将详细介绍8421旋转编码开关的接线方法。
二、8421旋转编码开关接线方法1.电源接线首先,为8421旋转编码开关提供适当的电源。
根据开关电源电压要求,将电源线连接到开关的VCC和GND引脚。
一般情况下,VCC接电源正极,GND接电源负极。
2.信号输出接线8421旋转编码开关有四个输出信号,分别为A、B、C、D。
根据实际需求,将这四个信号输出接到相应的接收端。
例如,可以将A、B、C接到微控制器的输入端,用于检测旋转开关的状态变化。
3.编码器与微控制器的连接将旋转编码器的输出信号接到微控制器的相应输入端。
同时,根据微控制器的工作电压和电源电压,为微控制器提供适当的电源。
需要注意的是,编码器与微控制器之间的连接线应尽量缩短,以降低信号干扰。
三、接线注意事项1.接线时,请使用足够线径的导线,以保证电流畅通。
2.避免将电源线与信号线紧挨着,以降低电磁干扰。
3.接线时要确保牢固,避免松动导致接触不良。
4.接线完成后,进行实际测试,确保旋转编码开关正常工作。
四、总结掌握8421旋转编码开关的接线方法,对于使用这种开关的电子设备来说至关重要。
正确的接线不仅可以保证设备正常运行,还能提高设备的使用寿命。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#define uchar unsigned char #define uint unsigned int
/* 数码管的控制引脚定义 */
sbit w4=P2^1;
/* 第 4 个数码管的共阳极控制*/
sbit w2=P3^7;
sbit w3=P2^7;
sbit w1=P2^6;
/* 定义编码开关控制引脚 */ //中间脚(第 2 脚)接地 sbit CodingsWitch_B=P2^3; //A 脚定义(即 1 脚) 这两脚必须接 10K 上拉电阻
{
st = 0;
if(tmp==9999)
tmp=0;
else
tmp++;
//
} if(Aold)
//为高说明编码开关在向减小的方向转
{
st = 0;
if(tmp==0)
tmp=9999;
else tmp--;
//设返回值
}
}
} Aold = CodingsWitch_A;
//保持这次检测的电平,以备下次调用比较用
uchar i,j,k; for(i=0;i<1;i++)
for(j=0;j<15;j++) for(k=0;k<250;k++) ;
}
//旋转编码开关处理函数 //顺时针计数值增加,逆时针计数值减少,这里上限是 9999,高于清 0 //此函数没有包括按键处理部分
uint CodingsWitchPolling(void)//
本人看到这种按钮非常激动,第 1 时间从淘宝网买了 10 个(3 元一个,配旋钮等 4 元 1 个),连夜进行焊接和程序的调试,终于成功。程序是从网上下载的,但发现有错,现已 改正。
现上两图,以飨读者。 图一:开关实物照片(反面)
图二:开关与单片机实验系统 V2 版本(沈红卫课程教学用)的演示照片
旋钮,可左 转右转
EC11 带按键旋转编码开关及其演示程序 沈红卫 绍兴文理学院 2010 年 11 月
w1=w2=w3=w4=1; /* 关闭 4 数码管 */
while(1)
{
ttt=CodingsWitchPolling(); //调用编码开关函数
a=ttt/1000; //把二进制转化为 4 位 BCD 码,以便显示在数码管上,这是千位
st = 1; if(st)
//如果 st 为 1 执行下面的步骤
{
EC11 带按键旋转编码开关及其演示程序 沈红卫 绍兴文理学院 2010 年 11 月
if(CodingsWitch_A==0&&CodingsWitch_B==0) //如果两引脚都为低执行下面
{ if(Bold)
//为高说明编码开关在向加大的方向转
Bold = CodingsWitch_B; return tmp;
// //返回计数值
}
{
static uchar Aold,Bold; //两个变量用来储存上一次调用时编码开关两引脚的电平
static uchar st=0;
//用来储存以前是否出现了两个引脚都为高电平的状态
static uint tmp=0;
// ***这 3 个均为静态变量,以便保持上次结果***
if(CodingsWitch_A&&CodingsWitch_B)
*/
uchar seg[10]={0x84,0x9f,0xd0,0x91,0x8b,0xa1,0xa0,0x97,0x80,0x81};
//函数说明 void delay(void); uint CodingsWitchPolling(void);
//主函数 void main(void) {
uint ttt=2345; uchar a,b,c,d;
w1=0;
EC11 带按键旋转编码开关及其演示程序 沈红卫 绍兴文理学院 2010 年 11 月
P1=seg[a]; delay(); w1=1; delay();
} }
/* 延时函数 */ /* 如果把 i 改为 1,试试是啥效果:静态显示 4 位数 4321 */ void delay(void) {
EC11 带按键旋转编码开关及其演示程序 沈红卫 绍兴文理学院 2010 年 11 月
EC11 带按键旋转编码开关及其演示程序
旋转编码开关(Rotary Encoder switch)分带按键和不带按键两种,又分一圈 20 脉冲和 30 脉冲输出两种。前者使用 5 脚的,后面一个使用 3 脚的。大家可能对这种玩意都不是很了解, 但这个玩意已大量开始应用于家电的设定、仪表的设定和一键飞梭遥控中,是单片机系统经 济美观的人机界面,因为可以省去按键了。
EC11 带按键旋转编码开关及其演示程序 沈红卫 绍兴文理学院 2010 年 11 月
sbit CodingsWitch_A=P1^7; //B 脚定义(即 3 脚) /* 数码管的段码定义*/
/* P1.7 此时固定为 1 */ /* h c b f a g d e /* P2.0 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 */ /* 1 0 0 1 1 1 1 1
b=ttt%1000/100;
//百位
c=ttt%100/10;
//十
d=ttt%100%10;
//个
w4=0; P1=seg[d]; delay(); w4=1; delay();
w3=0; P1=seg[c]; delay(); w3=1; delay();
w2=0; P1=seg[b]; delay(); w2=1; delay();
EC11 带按键旋转编码开关及其演示程序 沈红卫 绍兴文理学院 2010 年 11 月
这种开关可方便地应用单片机系统中,成为一个人机交流界面。具体应用程序可根据 需要自己编写。
以下是在单片机实验系统 V2(也可应用于 V1)(沈红卫开发,用于课程教学)实现的 范例程序,供大家应用时参考,希望大家能喜欢。
11010000 10010001 10001011 10100001 10100000 10010111 10000000 10000001 10000100
*/
'1' 0x9f '2' 0xd0 '3'xa1 '6' 0xa0 '7' 0x97 '8' 0x80 '9' 0x81 '0' 0x84
一起来吧!
/* EC11 系列旋转编码开关演示程序
*/
/* 把旋转开关旋转产生的脉冲数依次在 4 个数码管上显示
*/
/* 绍兴文理学院自动化教研室 沈红卫
*/
/* 2010 年 11 月 2 日
*/
/* CPU: STC12C 系列
*/
/* 主频:12M
*/
#include <stc12c5410ad.h> /* 这是所用单片机头文件,必须包含*/