STC单片机学习型遥控器程序

发布者:caoda143最新更新时间:2018-02-01 来源: eefocus关键字:STC单片机  学习型遥控器 手机看文章 扫描二维码
随时随地手机看文章

STC89C52学习型遥控器,可存八个红外遥控信息,只要再把按键用定时器中断2完成就可以用于商业生产. 

RXIN BIT P2.0 
TXZAI BIT P2.2 
TXOUT BIT P2.1 
KEY_SIGN BIT 20H   ;为0按键错误,为1按键正确 

RXTX_SIGN BIT 21H   ;为0是为发射状态,为1是为接收状态 

ISP_DATA DATA 0E2H     ;ISP功能寄存器定义 
ISP_ADDRH DATA 0E3H 
ISP_ADDRL DATA 0E4H 
ISP_CMD DATA 0E5H 
ISP_TRIG DATA 0E6H 
ISP_CONTR DATA 0E7H 

ISP_CMD_NO EQU 0        ;操作数 
ISP_CMD_READ EQU 1 
ISP_CMD_PROGRAM EQU 2 
ISP_CMD_ERASE EQU 3 

WAIT_TIME EQU 1           ;等待时间 

ZHIL EQU 30H 
ZHIH EQU 31H  
GESHU EQU 32H 
JISHU EQU 33H 
KEY_WORD EQU 34H 
KEY_VALUE EQU 35H 
ADDRH EQU 36H 
ADDRL EQU 37H 
TX_GESHU EQU 38H 


ORG 0000H 
LJMP START 
ORG 000BH 
LJMP T0IN 
ORG 001BH 
LJMP T1IN 



ORG 0100H 
START:       MOV  SP,#10H 
            CLR RXTX_SIGN         
            LJMP KEY_MAIN 


KEY_MAIN:LCALL SCAN_KEY             ;检测有没有单个按键按下   
          MOV  A,KEY_WORD 
            CJNE A,#00H,NEXT1 
            LJMP KEY_MAIN 
NEXT1:   JNB KEY_SIGN,KEY_MAIN 
          MOV  KEY_VALUE,A 
       
            LCALL RE_DELAY             ;消抖时间20ms 

            LCALL SCAN_KEY             ;是否依然是按下的 
             MOV  A,KEY_WORD 
            CJNE A,#00H,NEXT2 
            LJMP KEY_MAIN 
NEXT2:   JNB KEY_SIGN,KEY_MAIN 
         CJNE A,KEY_VALUE,KEY_MAIN 

RELEASE: LCALL SCAN_KEY            ;查看是否放开按键了 
             MOV  A,KEY_WORD 
            CJNE A,#00H,RELEASE 


             
          MOV  DPTR,#TAB             ;执行相应的程式 
            CLR C 
             MOV  A,KEY_VALUE 
            ADD A,KEY_VALUE 
          JMP @A+DPTR 
          
TAB:     AJMP KEY_0 
         AJMP KEY_1 
         AJMP KEY_2 
            AJMP KEY_3 
            AJMP KEY_4 
            AJMP KEY_5 
            AJMP KEY_6 
            AJMP KEY_7 
            AJMP KEY_8 
            AJMP KEY_9 
            AJMP KEY_10 
            AJMP KEY_11 
            AJMP KEY_12 
            AJMP KEY_13 
             AJMP KEY_14 
            AJMP KEY_15 
            AJMP KEY_16 

KEY_0: LJMP KEY_MAIN                 ;无效的按健值 

KEY_1:  JNB RXTX_SIGN,T1RX           ;接收发送键设定键,P1灯亮为接收存储状态,灯灭是为发射状态 
T1TX:   CLR RXTX_SIGN 
         MOV  P1,#0FFH 
        LJMP KEY_MAIN 
T1RX:   SETB RXTX_SIGN 
         MOV  P1,#00H 
        LJMP KEY_MAIN 



KEY_2:   MOV  ADDRH,#20H 
         MOV  ADDRL,#00H 
        JB RXTX_SIGN,KEY2_RX 
KEY2_TX:LJMP TX_START 
KEY2_RX:LJMP RX_START 


KEY_3:   MOV  ADDRH,#22H 
         MOV  ADDRL,#00H 
          JB RXTX_SIGN,KEY3_RX 
KEY3_TX:LJMP TX_START 
KEY3_RX:LJMP RX_START 


KEY_4:   MOV  ADDRH,#24H 
         MOV  ADDRL,#00H 
          JB RXTX_SIGN,KEY4_RX 
KEY4_TX:LJMP TX_START 
KEY4_RX:LJMP RX_START 


KEY_5:   MOV  ADDRH,#26H 
         MOV  ADDRL,#00H 
          JB RXTX_SIGN,KEY5_RX 
KEY5_TX:LJMP TX_START 
KEY5_RX:LJMP RX_START 


KEY_6:   MOV  ADDRH,#28H 
         MOV  ADDRL,#00H 
          JB RXTX_SIGN,KEY6_RX 
KEY6_TX:LJMP TX_START 
KEY6_RX:LJMP RX_START 


KEY_7:   MOV  ADDRH,#2AH 
         MOV  ADDRL,#00H 
          JB RXTX_SIGN,KEY7_RX 
KEY7_TX:LJMP TX_START 
KEY7_RX:LJMP RX_START 


KEY_8:   MOV  ADDRH,#2CH 
         MOV  ADDRL,#00H 
          JB RXTX_SIGN,KEY8_RX 
KEY8_TX:LJMP TX_START 
KEY8_RX:LJMP RX_START 


KEY_9:   MOV  ADDRH,#2EH 
         MOV  ADDRL,#00H 
          JB RXTX_SIGN,KEY9_RX 
KEY9_TX:LJMP TX_START 
KEY9_RX:LJMP RX_START 



KEY_10:   MOV  ADDRH,#2EH 
          MOV  ADDRL,#00H 
           JB RXTX_SIGN,KEY10_RX 
KEY10_TX:LJMP TX_START 
KEY10_RX:LJMP RX_START 


KEY_11:   MOV  ADDRH,#2EH 
          MOV  ADDRL,#00H 
           JB RXTX_SIGN,KEY11_RX 
KEY11_TX:LJMP TX_START 
KEY11_RX:LJMP RX_START 



KEY_12:   MOV  ADDRH,#2EH 
          MOV  ADDRL,#00H 
           JB RXTX_SIGN,KEY12_RX 
KEY12_TX:LJMP TX_START 
KEY12_RX:LJMP RX_START 


KEY_13:   MOV  ADDRH,#2EH 
          MOV  ADDRL,#00H 
           JB RXTX_SIGN,KEY13_RX 
KEY13_TX:LJMP TX_START 
KEY13_RX:LJMP RX_START 


KEY_14:   MOV  ADDRH,#2EH 
          MOV  ADDRL,#00H 
           JB RXTX_SIGN,KEY14_RX 
KEY14_TX:LJMP TX_START 
KEY14_RX:LJMP RX_START 


KEY_15:   MOV  ADDRH,#2EH 
          MOV  ADDRL,#00H 
           JB RXTX_SIGN,KEY15_RX 
KEY15_TX:LJMP TX_START 
KEY15_RX:LJMP RX_START 


KEY_16:   MOV  ADDRH,#2EH 
          MOV  ADDRL,#00H 
           JB RXTX_SIGN,KEY16_RX 
KEY16_TX:LJMP TX_START 
KEY16_RX:LJMP RX_START 



SCAN_KEY:CLR KEY_SIGN 
          MOV  KEY_WORD,#00H 


KEY1:     MOV  P3,#11111110B      ;第一行 
         JB P3.4,KEY2 
         JB KEY_SIGN,KEYWRONG1 
          MOV  KEY_WORD,#1 
            SETB KEY_SIGN 
KEY2:       JB P3.5,KEY3 
            JB KEY_SIGN,KEYWRONG1 
             MOV  KEY_WORD,#2 
            SETB KEY_SIGN 
KEY3:    JB P3.6,KEY4 
         JB KEY_SIGN,KEYWRONG1 
             MOV  KEY_WORD,#3 
            SETB KEY_SIGN 
KEY4:    JB P3.7,KEY5 
         JB KEY_SIGN,KEYWRONG1 
             MOV  KEY_WORD,#4 
            SETB KEY_SIGN 
            LJMP KEY5 
KEYWRONG1: LJMP KEYWRONG 

KEY5:     MOV  P3,#11111101B      ;第二行 
         JB P3.4,KEY6 
            JB KEY_SIGN,KEYWRONG2 
             MOV  KEY_WORD,#5 
            SETB KEY_SIGN 
KEY6:    JB P3.5,KEY7 
         JB KEY_SIGN,KEYWRONG2 
             MOV  KEY_WORD,#6 
            SETB KEY_SIGN 
KEY7:    JB P3.6,KEY8 
         JB KEY_SIGN,KEYWRONG2 
             MOV  KEY_WORD,#7 
            SETB KEY_SIGN 
KEY8:    JB P3.7,KEY9 
         JB KEY_SIGN,KEYWRONG2 
             MOV  KEY_WORD,#8 
            SETB KEY_SIGN 
            LJMP KEY9 

KEYWRONG2:LJMP KEYWRONG          
             
KEY9:     MOV  P3,#11111011B     ;第三行 
         JB P3.4,KEY10 
            JB KEY_SIGN,KEYWRONG3 
             MOV  KEY_WORD,#9 
            SETB KEY_SIGN 
KEY10:   JB P3.5,KEY11 
         JB KEY_SIGN,KEYWRONG3 
             MOV  KEY_WORD,#10 
            SETB KEY_SIGN 
KEY11:   JB P3.6,KEY12 
         JB KEY_SIGN,KEYWRONG3 
             MOV  KEY_WORD,#11 
            SETB KEY_SIGN 
KEY12:   JB P3.7,KEY13 
         JB KEY_SIGN,KEYWRONG3 
             MOV  KEY_WORD,#12 
            SETB KEY_SIGN 
            LJMP KEY13 

KEYWRONG3:LJMP KEYWRONG 

KEY13:    MOV  P3,#11110111B       ;第四行 
         JB P3.4,KEY14 
            JB KEY_SIGN,KEYWRONG4 
             MOV  KEY_WORD,#13 
            SETB KEY_SIGN 
KEY14:   JB P3.5,KEY15 
         JB KEY_SIGN,KEYWRONG4 
             MOV  KEY_WORD,#14 
            SETB KEY_SIGN 
KEY15:   JB P3.6,KEY16 
         JB KEY_SIGN,KEYWRONG4 
             MOV  KEY_WORD,#15 
            SETB KEY_SIGN 
KEY16:   JB P3.7,SCAN_END 
         JB KEY_SIGN,KEYWRONG4 
          MOV  KEY_WORD,#16             
            SETB KEY_SIGN 
            LJMP SCAN_END 

KEYWRONG4: LJMP KEYWRONG 

KEYWRONG:CLR KEY_SIGN 
SCAN_END:RET 



RE_DELAY: MOV  R7,#5 
     DE2: MOV  R6,#10 
      DE1: MOV  R5,#200 
            DJNZ R5,$ 
             DJNZ R6,DE1 
             DJNZ R7,DE2 
             RET 


RX_START:  CLR P2.4                              ;接收红外信号,存入外部扩展寄存器0~256 
           CLR P2.6 
           CLR P2.7 
           CLR P2.2 
            CLR TXOUT 
             MOV  R1,#00H 
            MOV  R0,#00H 
            MOV  TMOD,#00010001B 
             MOV  TH0,#00H 
             MOV  TL0,#00H 
             MOV  TH1,#00H 
             MOV  TL1,#00H 
           CLR ET0 
            CLR ET1 
            CLR EA 
            CLR TR0 
            CLR TR1 
           LJMP RX_MAIN 

RX_MAIN:  MOV  R0,#00H 
         JB RXIN,$ 
         SETB TR0 

JUDGE1: JB TF0,RXEND 
        JNB RXIN,JUDGE1 
         CLR TR0 
         SETB TR1 
          MOV  A,TL0 
          MOV X @R0,A 
        INC R0 
          MOV  A,TH0     
          MOV X @R0,A 
         INC R0 
          MOV  TL0,#00H 
          MOV  TH0,#00H 
         INC R1 
JUDGE2: JB TF1,RXEND     
         JB RXIN,JUDGE2 
         CLR TR1 
         SETB TR0 
          MOV  A,TL1 
          MOV X @R0,A 
        INC R0 
          MOV  A,TH1 
          MOV X @R0,A 
         INC R0 
          MOV  TL1,#00H 
          MOV  TH1,#00H 
         INC R1 
         AJMP JUDGE1 

RXEND:  CLR TR0 
        CLR TR1 
         CLR TF0 
         CLR TF1 
         MOV  TL0,#00H 
          MOV  TH0,#00H 
          MOV  TL1,#00H 
          MOV  TH1,#00H 
          MOV  GESHU,R1 




            MOV  R1,GESHU                               ;取反转换重新存入外部扩展寄存器 
            MOV  R0,#00H 
LOOP_CPL:  MOV X A,@R0 
          CPL A 
            MOV X @R0,A 
           INC R0 
           MOV X A,@R0 
          CPL A 
            MOV X @R0,A 
           INC R0 
           DJNZ R1,LOOP_CPL 
          LJMP ISP_STORE 
             
ISP_STORE:   LCALL ISP_ERASE  
                  


                  MOV  ISP_DATA,GESHU                         ;将个数输入到ISP_EEPROM的第一位 
                  MOV  ISP_ADDRH,ADDRH 
                  MOV  ISP_ADDRL,ADDRL 
                 CLR EA 
                  MOV  ISP_CONTR,#WAIT_TIME 
                 ORL ISP_CONTR,#10000000B 
                  MOV  ISP_CMD,#ISP_CMD_PROGRAM 
                  MOV  ISP_TRIG,#46H 
                  MOV  ISP_TRIG,#0B9H 
                 NOP 


              MOV  R1,GESHU        
                  MOV  R0,#00H 
LOOP_WRITE:  LCALL BYTE_WRITE                           ;将扩展寄存器中的计时值依次放入ISP_EEPROM第二位开始的存储器中 
             INC R0 
                 LCALL BYTE_WRITE 
                 INC R0 
                 DJNZ R1,LOOP_WRITE 

                  MOV  ISP_CMD,#00H                           ;ISP指令清零,防止误触发 
              MOV  ISP_TRIG,#00H 
              MOV  ISP_ADDRH,#00H 
              MOV  ISP_ADDRL,#00H 
              MOV  p1,geshu 

                 LJMP KEY_MAIN 
                  

                  

                  

BYTE_WRITE:   MOV X A,@R0 
              MOV  ISP_DATA,A 
              MOV  ISP_ADDRH,ADDRH 
                 INC R0 
                  MOV  ISP_ADDRL,R0 
                 DEC R0 
                 CLR EA 
                  MOV  ISP_CONTR,#WAIT_TIME 
                 ORL ISP_CONTR,#10000000B 
                  MOV  ISP_CMD,#ISP_CMD_PROGRAM 
                  MOV  ISP_TRIG,#46H 
                  MOV  ISP_TRIG,#0B9H 
                 NOP 
                 RET 

ISP_ERASE:    MOV  ISP_ADDRH,ADDRH 
              MOV  ISP_ADDRL,ADDRL 
                 CLR EA 
                  MOV  ISP_CONTR,#WAIT_TIME 
                 ORL ISP_CONTR,#10000000B 
                  MOV  ISP_CMD,#ISP_CMD_ERASE 
                  MOV  ISP_TRIG,#46H 
                  MOV  ISP_TRIG,#0B9H 
                 NOP 
                 RET 






TX_START:     MOV  ISP_ADDRH,ADDRH                        ;取出第一位的个数 
              MOV  ISP_ADDRL,ADDRL 
                 CLR EA 
                  MOV  ISP_CONTR,#WAIT_TIME 
                 ORL ISP_CONTR,#10000000B 
                  MOV  ISP_CMD,#ISP_CMD_READ 
                  MOV  ISP_TRIG,#46H 
                  MOV  ISP_TRIG,#0B9H 
                 NOP 
              MOV  ISP_CMD,#00H                           ;ISP指令清零,防止误触发 
              MOV  ISP_TRIG,#00H 
              MOV  ISP_ADDRH,#00H 
              MOV  ISP_ADDRL,#00H 

                  MOV  A,ISP_DATA                             ;为0FF则是错误的,回去,不为0FF则继续 
                 CJNE A,#0FFH,ISP_READ 
                 LJMP KEY_MAIN 


ISP_READ:    MOV  GESHU,ISP_DATA 
             MOV  R1,GESHU 
             MOV  R0,#00H 
LOOP_READ:  LCALL BYTE_READ 
            INC R0 
                LCALL BYTE_READ 
                INC R0 
                DJNZ R1,LOOP_READ 
                LJMP TX_EXROM 


BYTE_READ:   INC R0 
              MOV  ISP_ADDRH,ADDRH                        
              MOV  ISP_ADDRL,R0 
                 DEC R0 
                 CLR EA 
                  MOV  ISP_CONTR,#WAIT_TIME 
                 ORL ISP_CONTR,#10000000B 
                  MOV  ISP_CMD,#ISP_CMD_READ 
                  MOV  ISP_TRIG,#46H 
                  MOV  ISP_TRIG,#0B9H 
                 NOP 
                  MOV  A,ISP_DATA 
                  MOV X @R0,A 
                 RET 
                  




TX_EXROM:     MOV  TMOD,#00010010B 
               MOV  TH0,#0F4H 
               MOV  TL0,#0F4H 
               MOV  R1,GESHU 
               MOV  R0,#00H 
               MOV X A,@R0 
               MOV  TL1,A 
              INC R0 
               MOV X A,@R0 
               MOV  TH1,A 
              INC R0 
              DEC R1 
               MOV X A,@R0 
               MOV  ZHIL,A 
              INC R0 
               MOV X A,@R0 
               MOV  ZHIH,A 
              INC R0 
              DEC R1 

              SETB ET1 
              SETB ET0 
              SETB EA 
              SETB TR1 
              SETB TR0         
              CLR TXOUT 

MAIN2:CJNE R1,#00H,MAIN2 
      CLR TXOUT 
       MOV  p1,#55h 
      LJMP KEY_MAIN 


T0IN:CPL TXZAI                
     RETI                  

T1IN:  MOV  TL1,ZHIL 
       MOV  TH1,ZHIH 
      JB TR0,NEXTT1        
      SETB TR0 
      LJMP NEXTT 
NEXTT1:CLR TR0             
       CLR TXZAI           

NEXTT:CPL TXOUT 
       MOV X A,@R0 
       MOV  ZHIL,A 
      INC R0 
         MOV X A,@R0 
       MOV  ZHIH,A 
      INC R0 
        DJNZ R1,OUTTI 
      CLR TR1 
      CLR TR0              
      CLR TXZAI            
      CLR TXOUT  
OUTTI:RETI 

DELAYXMS: MOV  R7,#255 
    DEL1: MOV  R6,#4 
     DEL2: MOV  R5,#5 
            DJNZ R5,$ 
         DJNZ R6,DEL2 
            DJNZ R7,DEL1 
            RET 

DELAYX2MS: MOV  R7,#255 
    DEL12: MOV  R6,#50 
     DEL22: MOV  R5,#50 
    DJNZ R5,$ 
         DJNZ R6,DEL22 
    DJNZ R7,DEL12 
            RET 


END 


关键字:STC单片机  学习型遥控器 引用地址:STC单片机学习型遥控器程序

上一篇:STC单片机控制DS1302 (1TMCU C程序)
下一篇:最简单的GPIO驱动的智慧

推荐阅读最新更新时间:2024-03-16 15:54

基于单片机的智能学习型红外空调遥控器
为了解决空调遥控器不兼容问题,设计了一款基于Atmega16单片机的智能空调遥控器。该遥控器采用测量脉冲宽度的方法学习红外信号,同时使用游程编码算法对数据进行压缩后存储,并利用单片机内部定时器PWM模式产生红外载波,成功实现了对红外遥控的学习与再现,并可通过上位机进行控制。经运行测试表明,该智能遥控器操作灵活,性能稳定,为智能遥控器设计提供了一种新方案。 1 引言 本文设计了一款针对空调设备的智能学习型红外遥控器,采用记录脉冲宽度的方法,成功实现了对多种红外空调遥控信号的学习与再现,真正实现了 万能 。本文在阐述了系统的总体结构及硬件设计的基础上,详细研究了系统学习,发送及通信功能的软件设计与实现。 2 系统总体结构与硬件设
[电源管理]
基于单片机的智能<font color='red'>学习型</font>红外空调<font color='red'>遥控器</font>
STC单片机流水灯新花样程序
ORG 000H;设置起始地址 START: MOV A,#0FFH;向A寄存器中载入十六进制数0FFH D2: SUBB A,#1;A寄存器中数据减一 call DE ;调入延时程序(修改延时时间可以实现水滴效果) MOV R1,A;将寄存器A中数据传送给R1 MOV P1,R1;输出(外接8个LED,共阳极接法,低电平有效) DJNZ R1,D2;检测R2是否为零,否则跳到D2处继续执行 JMP
[单片机]
基于STC单片机的LED智能照明系统
   1 引言   LED被称为第四代照明光源或绿色光源,LED的发光器件是冷光源,具有节能、环保、寿命长、体积小等特点。白炽灯,卤钨灯的光效为12~24lm/W,荧光灯50~70lm/W,钠灯90~140lm/W,而且大部分的耗电变成了热耗。LED可达到50~200lm/W,而且单光的单色性好,光谱窄,无需过滤,可直接发出有色可见光。在相同照明效果的情况下,耗电量约为白炽灯的十分之一,荧光灯的二分之一。同样效果的一支日光灯40多瓦,而采用LED每支的功率只有8瓦。LED的平均寿命达10万小时,安全可靠性强,不含汞,钠元素等可能危害健康的物质,有利于环保,被称为“绿色照明光源”。   2 智能照明控制方案设计
[单片机]
基于<font color='red'>STC单片机</font>的LED智能照明系统
有关STC单片机发热、复位的问题
最近有个项目,需要一个继电器,接收到低电平就动作,用的STC15W104、使用的市面上的开关电源5V/3A. 本来看似简单到底的一个东西,却花费了将近3天的时间搞定。 1.现象一 产品是1U机箱 内部一个ARM主板,需要定时硬重启一次。暂且叫STC控制板,控制板在不带载的情况下,触发正常,与程序很符合,但是带载后,第一次触发正常,第二次单片机就开始发烫,能到80多度,然后直接冒烟,这个现象100%会出现,控制板的继电器没有使用隔离。 解决办法: 在5V电源处并了一个1000UF的大电容。曾尝试并5.1V稳压管,发现不顶用。 2.现象二 板子会误动作,尤其是周围有人,或者是工作一段时间,或者是开关963电
[单片机]
STC单片机+DM134实现LED多段控制
单片机源程序如下: //============================================================================ //================翼芯科技 LED流星灯8段16段==软件生成生成数据================= //============================================================================ // 此源码版权属 翼芯科技 全权享有,如欲引用,敬请署名并告知 // 严禁随意用于商业目的,违者必究,后果自负 //程序说明:本程序用于实现LED流星灯8段16
[单片机]
<font color='red'>STC单片机</font>+DM134实现LED多段控制
STC单片机PWM程序设计与应用
/*============================================================== at12c2052所带的PWM功能演示,内部公用了一个定时器,当启动PWM时PCA 定时器只工作在8位模式,匹配比较器也是按8位的。本程序演示了PWM启动 的设置和调节。 改用在tasking c51下面编译,并尝试了tasking 方便的在线汇编方式 ===============================================================*/ #include STC12C2052AD.h /*#include INTRINS.h */ #define uint
[单片机]
STC单片机控制DS1302 (1TMCU C程序)
#include REG51.H #include INTRINS.H typedef unsigned char BYTE; sbit SCLK = P1^0; //DS1302时钟口P1.0 sbit IO = P1^1; //DS1302数据口P1.1 sbit RST = P1^2; //DS1302片选口P1.2 //秒 分 时 日 月 星期 年 BYTE code init = {0x00, 0x00, 0x20, 0x01, 0x01, 0x05, 0x10}; BYTE data now ; void DS1302_In
[单片机]
STC单片机硬件PWM的使用分析
STC单片机(具有PCA功能的),怎么实现可变频率的PWM输出?很多朋友还在使用定时器做可变频PWM, 这里我就介绍怎么使用硬件PWM,在定时器0的分频基数下设计PWM。 首先看CMOD这个寄存器,这里我们主要关注 CPS0,CPS1,CPS2,这三个位控制选择PCA的计数脉冲源。 对应PWM功能,则是选择频率。 首先可以选择 6个固定分频,可以看图片看出,分别是1,2,4,6,8,12的系统分频。我们需要做可变频率的PWM,所以我们需要选择模式2,选择定时器0的溢出作为系统分频基数。 然后,我么看怎么具体的去计算,去实现分频。 这里就需要上面这个图片的计算规则。 这里我举一个例子来说明,比如我们单片机的晶振使用的是12MH
[单片机]
<font color='red'>STC单片机</font>硬件PWM的使用分析
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多每日新闻
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved