虫虫首页|资源下载|资源专辑|精品软件
登录|注册

位定时

  • MCU主频12MHz

    MCU主频12MHz,软PWM控制IO模拟。PWM脉宽调节10uS PWM频率20mS=50Hz, PWM高电平脉宽700uS~2300uS,PWM低电平脉宽19300uS~17700uS "零耗时"并非不耗时。只是没用软件空等待等恼人的函数。 其主要原理是利用低频宽脉冲软PWM信号的“低速”而T2的16位定时器自动装载功能。 T2在每个PWM周期内中断两次。即PWM高电平和PWM低电平各中断1次。 合理应用RCAP2的预装载功能并进行简单的减法运算而轻松完成任务的要求。

    标签: MCU MHz 12 主频

    上传时间: 2014-11-17

    上传用户:wpt

  • 为了方便读者整理 8051 相关专题制作报告

    为了方便读者整理 8051 相关专题制作报告,需要使用到的 8051 基本资料电子文件 51.TXT 收录于此目录中,读者可以依需要自行应用,加入到自己的报告中,但仅限于学校的学生制作报告用,不得移做它用,并遵守知识产权使用的所有规定。其中文字内容取材至 "单芯片 8051 实作入门",书号 P2277,文魁图书出版。 8051 基本资料如下: □8051 主要特性 □8051 引脚说明 □8051 中断服务常式的进入点 □8051 特殊目的寄存器 □8051 内部控制寄存器 at89c51 为 ATMEL 所生产的可电气烧录清洗的 8051 相容单芯片,其内部程序代码容量为4KB 8051主要功能列举如下: □ 为一般控制应用的 8 位单芯片 □ 晶片内部具时钟振荡器(传统最高工作频率可至 12MHz) □ 内部程式存储器(ROM)为 4KB □ 内部数据存储器(RAM)为 128B □ 外部程序存储器可扩充至 64KB □ 外部数据存储器可扩充至 64KB □ 32 条双向输入输出线,且每条均可以单独做 I/O 的控制 □ 5 个中断向量源 □ 2 组独立的 16 位定时器 □ 1 个全多工串行通信端口 □ 8751 及 8752 单芯片具有数据保密的功能 □ 单芯片提供位逻辑运算指令

    标签: 8051 报告

    上传时间: 2016-10-29

    上传用户:plsee

  • 使用单片机

    使用单片机,正弦波发生器,key0口按键减小输出频率,key1口按键增加输出频率 sinout口输出正弦波,(cosout口输出余弦波),使用定时器T0,16位定时模式。 R6、R7用作10毫秒延时寄存器。Fout输出方波。且输出的正弦波在0.01-83Hz范围内,方波在1.3Hz-10.6kHz范围内。

    标签: 用单片机

    上传时间: 2017-09-03

    上传用户:cmc_68289287

  • 12345

    /****************temic*********t5557***********************************/    #include   <at892051.h>     #include   <string.h>    #include   <intrins.h>     #include   <stdio.h>     #define    uchar    unsigned char     #define    uint     unsigned int     #define    ulong    unsigned long     //STC12C2051AD的SFR定义     sfr  WDT_CONTR = 0xe1;//stc2051的看门狗??????     /**********全局常量************/    //写卡的命令     #define    write_command0       0//写密码     #define    write_command1       1//写配置字     #define    write_command2       2//密码写数据     #define    write_command3       3//唤醒     #define    write_command4       4//停止命令     #define    TRUE       1     #define    FALSE      0     #define    OK         0     #define    ERROR      255     //读卡的时间参数us     #define ts_min          250//270*11.0592/12=249//取近似的整数     #define ts_max          304//330*11.0592/12=304     #define t1_min          73//90*11.0592/12=83:-10调整     #define t1_max          156//180*11.0592/12=166     #define t2_min          184//210*11.0592/12=194     #define t2_max          267//300*11.0592/12=276     //***********不采用中断处理:采用查询的方法读卡时关所有中断****************/     sbit p_U2270B_Standby = P3^5;//p_U2270B_Standby PIN=13     sbit p_U2270B_CFE = P3^3;//p_U2270B_CFE     PIN=6     sbit p_U2270B_OutPut = P3^7;//p_U2270B_OutPut  PIN=2     sbit wtd_sck = P1^7;//SPI总线     sbit wtd_si = P1^3;    sbit wtd_so = P1^2;    sbit iic_data = P1^2;//lcd IIC     sbit iic_clk = P1^7;    sbit led_light = P1^6;//测试绿灯     sbit led_light1 = P1^5;//测试红灯     sbit led_light_ok  = P1^1;//读卡成功标志     sbit fengmingqi = P1^5;    /***********全局变量************************************/       uchar data Nkey_a[4] = {0xA0, 0xA1, 0xA2, 0xA3};//初始密码             //uchar idata card_snr[4];   //配置字     uchar data bankdata[28] = {1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7};     //存储卡上用户数据(1-7)7*4=28     uchar data cominceptbuff[6] = {1,2,3,4,5,6};//串口接收数组ram     uchar command; //第一个命令     uchar command1;//     //uint  temp;     uchar j,i;    uchar myaddr = 8;    //uchar ywqz_count,time_count;             //ywqz jishu:     uchar bdata DATA;    sbit BIT0 = DATA^0;    sbit BIT1 = DATA^1;    sbit BIT2 = DATA^2;    sbit BIT3 = DATA^3;    sbit BIT4 = DATA^4;    sbit BIT5 = DATA^5;    sbit BIT6 = DATA^6;    sbit BIT7 = DATA^7;    uchar bdata DATA1;    sbit BIT10 = DATA1^0;    sbit BIT11 = DATA1^1;    sbit BIT12 = DATA1^2;    sbit BIT13 = DATA1^3;    sbit BIT14 = DATA1^4;    sbit BIT15 = DATA1^5;    sbit BIT16 = DATA1^6;    sbit BIT17 = DATA1^7;    bit i_CurrentLevel;//i_CurrentLevel  BIT 00H(Saves current level of OutPut pin of U2270B)     bit timer1_end;    bit read_ok = 0;    //缓存定时值,因用同一个定时器     union HLint { uint W;    struct   {    uchar H;uchar L;   }   B; };//union HLint idata a     union HLint data a;    //缓存定时值,因用同一个定时器     union HLint0 { uint W;    struct {   uchar H;   uchar L; } B; };//union HLint idata a     union HLint0 data b;    /**********************函数原型*****************/    //读写操作     void f_readcard(void);//全部读出1~7 AOR唤醒     void f_writecard(uchar x);//根据命令写不同的内容和操作     void f_clearpassword(void);//清除密码     void f_changepassword(void);//修改密码     //功能子函数     void write_password(uchar data *data p);//写初始密码或数据     void write_block(uchar x,uchar data *data p);//不能用通用指针     void write_bit(bit x);//写位     /*子函数区*****************************************************/    void delay_2(uint x)    //延时,时间x*10us@12mhz,最小20us@12mhz     {    x--; x--;    while(x)    {      _nop_();      _nop_();      x--;    }    _nop_();//WDT_CONTR=0X3C;不能频繁的复位     _nop_();    }    /////////////////////////////////////////////////////////////////////     void initial(void)    {    SCON = 0x50; //串口方式1,允许接收     //SCON  =0x50;     //01010000B:10位异步收发,波特率可变,SM2=0不用接收到有效停止位才RI=1,     //REN=1允许接收     TMOD = 0x21; //定时器1 定时方式2(8位),定时器0 定时方式1(16位)     TCON = 0x40; //设定时器1 允许开始计时(IT1=1)     TH1 = 0xfD;  //FB 18.432MHz 9600 波特率     TL1 = 0xfD;  //fd 11.0592 9600     IE = 0X90;     //EA=ES=1     TR1 = 1;     //启动定时器     WDT_CONTR = 0x3c;//使能看门狗     p_U2270B_Standby = 0;//单电源     PCON = 0x00;    IP = 0x10;//uart you xian XXXPS PT1 PX1 PT0 PX0     led_light1 = 1;    led_light = 0;    p_U2270B_OutPut = 1;    }    /************************************************/    void f_readcard()//读卡     {    EA = 0;//全关,防止影响跳变的定时器计时     WDT_CONTR = 0X3C;//喂狗     p_U2270B_CFE = 1;//      delay_2(232);  //>2.5ms            /*   //   aor    用唤醒功能来防碰撞   p_U2270B_CFE = 0; delay_2(18);//start gap>150us   write_bit(1);//10=操作码读0页   write_bit(0);       write_password(&bankdata[24]);//密码block7   p_U2270B_CFE =1 ;//    delay_2(516);//编程及确认时间5.6ms   */    WDT_CONTR = 0X3C;//喂狗     led_light = 0;    b.W = 0;    while(!(read_ok == 1))    {             //while(p_U2270B_OutPut);//等一个稳定的低电平?超时判断?              while(!p_U2270B_OutPut);//等待上升沿的到来同步信号检测1       TR0 = 1;      //deng xia jiang       while(p_U2270B_OutPut);//等待下降沿       TR0 = 0;   a.B.H = TH0;   a.B.L = TL0;   TH0 = TL0 = 0;   TR0 = 1;//定时器晚启动10个周期       //同步头       if((324 < a.W) && (a.W < 353)) ;//检测同步信号1                  else     {     TR0 = 0;     TH0 = TL0 = 0;     goto read_error;    }      //等待上升沿        while(!p_U2270B_OutPut);   TR0 = 0;   a.B.H = TH0;   a.B.L = TL0;   TH0 = TL0 = 0;   TR0 = 1;//b.N1<<=8;            if(a.B.L < 195);//0.5p       else     {     TR0 = 0;     TH0 = TL0 = 0;     goto read_error;    }      //读0~7块的数据       for(j = 0;j < 28;j++)      {       //uchar i;                  for(i = 0;i < 16;i++)//8个位        {        //等待下降沿的到来         while(p_U2270B_OutPut);                TR0 = 0;     a.B.H = TH0;     a.B.L = TL0;     TH0 = TL0 = 0;     TR0 = 1;              if(t2_max < a.W/*)&&(a.W < t2_max)*/)//1P          {         b.W >>= 2;//先左移再赋值          b.B.L += 0xc0;                             i++;        }        else if(t1_min < a.B.L/*)&&(a.B.L < t1_max)*/)//0.5p         {         b.W >>= 1;         b.B.L += 0x80;                           }        else      {      TR0 = 0;      TH0 = TL0 = 0;      goto read_error;     }        i++;        while(!p_U2270B_OutPut);//上升                   TR0 = 0;     a.B.H = TH0;     a.B.L = TL0;     TH0 = TL0 = 0;     TR0 = 1;                      if(t2_min < a.W/*)&&(a.W < t2_max)*/)//1P          {         b.W >>= 2;         i++;        }        else if(t1_min < a.B.L/*a.W)&&(a.B.L < t1_max)*/)//0.5P         //else if(!(a.W==0))         {         b.W >>= 1;         //temp+=0x00;          //led_light1=0;led_light=1;delay_2(40000);         }        else      {      TR0 = 0;      TH0 = TL0 = 0;      goto read_error;     }        i++;       }       //取出奇位        DATA = b.B.L;       BIT13 = BIT7;    BIT12 = BIT5;    BIT11 = BIT3;    BIT10 = BIT1;       DATA = b.B.H;       BIT17 = BIT7;    BIT16 = BIT5;    BIT15 = BIT3;    BIT14 = BIT1;       bankdata[j] = DATA1;      }              read_ok = 1;//读卡完成了     read_error:    _nop_();    }       }    /***************************************************/    void f_writecard(uchar x)//写卡     {    p_U2270B_CFE = 1;    delay_2(232);  //>2.5ms            //psw=0 standard write     if (x == write_command0)//写密码:初始化密码     {      uchar i;      uchar data *data p;      p = cominceptbuff;      p_U2270B_CFE = 0;   delay_2(31);//start gap>330us       write_bit(1);//写操作码1:10       write_bit(0);//写操作码0       write_bit(0);//写锁定位0       for(i = 0;i < 35;i++)      {       write_bit(1);//写数据位1       }      p_U2270B_CFE = 1;      led_light1 = 0;   led_light = 1;   delay_2(40000);//测试使用       //write_block(cominceptbuff[4],p);       p_U2270B_CFE = 1;      bankdata[20] = cominceptbuff[0];//密码存入       bankdata[21] = cominceptbuff[1];      bankdata[22] = cominceptbuff[2];      bankdata[23] = cominceptbuff[3];    }    else if (x == write_command1)//配置卡参数:初始化     {      uchar data *data p;      p = cominceptbuff;      write_bit(1);//写操作码1:10       write_bit(0);//写操作码0       write_bit(0);//写锁定位0               write_block(cominceptbuff[4],p);      p_U2270B_CFE=  1;    }    //psw=1  pssword mode     else if(x == write_command2)  //密码写数据    {      uchar data*data p;      p = &bankdata[24];      write_bit(1);//写操作码1:10       write_bit(0);//写操作码0       write_password(p);//发口令       write_bit(0);//写锁定位0       p = cominceptbuff;      write_block(cominceptbuff[4],p);//写数据            }    else if(x == write_command3)//aor    //唤醒 {      //cominceptbuff[1]操作码10 X xxxxxB       uchar data *data p;      p = cominceptbuff;      write_bit(1);//10       write_bit(0);             write_password(p);//密码       p_U2270B_CFE = 1;//此时数据不停的循环传出     }    else //停止操作码     {      write_bit(1);//11       write_bit(1);             p_U2270B_CFE = 1;         }    p_U2270B_CFE = 1;    delay_2(560);//5.6ms     }    /************************************/    void f_clearpassword()//清除密码     {    uchar data *data p;    uchar i,x;          p = &bankdata[24];//原密码     p_U2270B_CFE = 0; delay_2(18);//start gap>150us     //操作码10:10xxxxxxB     write_bit(1);    write_bit(0);              for(x = 0;x < 4;x++)//发原密码     {             DATA = *(p++);      for(i = 0;i < 8;i++)      {       write_bit(BIT0);       DATA >>= 1;      }    }    write_bit(0);//锁定位0:0     p = &cominceptbuff[0];    write_block(0x00,p);//写新配置参数:pwd=0             //密码无效:即清除密码     DATA = 0x00;//停止操作码00000000B     for(i = 0;i < 2;i++)    {    write_bit(BIT7);    DATA <<= 1;    }    p_U2270B_CFE = 1;       delay_2(560);//5.6ms     }    /*********************************/    void f_changepassword()//修改密码            {       uchar data *data p;    uchar i,x,addr;    addr = 0x07;//block7     p = &Nkey_a[0];//原密码     DATA = 0x80;//操作码10:10xxxxxxB     for(i = 0;i < 2;i++)    {      write_bit(BIT7);      DATA <<= 1;    }    for(x = 0;x < 4;x++)//发原密码     {             DATA = *(p++);      for(i = 0;i < 8;i++)      {       write_bit(BIT7);       DATA >>= 1;      }    }    write_bit(0);//锁定位0:0     p = &cominceptbuff[0];    write_block(0x07,p);//写新密码     p_U2270B_CFE = 1;    bankdata[24] = cominceptbuff[0];//密码存入     bankdata[25] = cominceptbuff[1];    bankdata[26] = cominceptbuff[2];    bankdata[27] = cominceptbuff[3];    DATA = 0x00;//停止操作码00000000B     for(i = 0;i < 2;i++)    {      write_bit(BIT7);      DATA <<= 1;    }    p_U2270B_CFE = 1;       delay_2(560);//5.6ms     }    /***************************子函数***********************************/    void write_bit(bit x)//写一位     {    if(x)    {      p_U2270B_CFE = 1;   delay_2(32);//448*11.0592/120=42延时448us       p_U2270B_CFE = 0;   delay_2(28);//280*11.0592/120=26写1     }    else    {      p_U2270B_CFE = 1;   delay_2(92);//192*11.0592/120=18       p_U2270B_CFE = 0;   delay_2(28);//280*11.0592/120=26写0     }    }    /*******************写一个block*******************/    void write_block(uchar addr,uchar data *data p)    {    uchar i,j;        for(i = 0;i < 4;i++)//block0数据     {             DATA = *(p++);      for(j = 0;j < 8;j++)      {       write_bit(BIT0);       DATA >>= 1;      }    }    DATA = addr <<= 5;//0地址     for(i = 0;i < 3;i++)    {      write_bit(BIT7);      DATA <<= 1;    }                   }    /*************************************************/    void write_password(uchar data *data p)    {    uchar i,j;        for(i = 0;i < 4;i++)//     {             DATA = *(p++);      for(j = 0;j < 8;j++)      {       write_bit(BIT0);       DATA >>= 1;      }    }        }   /*************************************************/   void main()    {    initial();    TI = RI = 0;    ES = 1;    EA = 1;  delay_2(28);   //f_readcard();     while(1) {   f_readcard();      //读卡   f_writecard(command1);  //写卡    f_clearpassword();   //清除密码     f_changepassword();    //修改密码 } }

    标签: 12345

    上传时间: 2017-10-20

    上传用户:my_lcs

  • FC162中文版说明书v21

    FC162是一款低功耗,高速,高噪声容限,EPROM/ROM基于8位CMOS工艺制造的单片机,采用RISC指令集,共有42条指令, 除分支指令为两个周期指令以外其余为单周期指令。这种易用、易记的指令集大大缩短了开发时间。 FC162包含了上电复位(Power-on Reset POR),掉电复位(Brown-out Reset BOR), 上电复位计数器(Power-up Reset Timer PWRT),振荡启动计数器 (Oscillator Start-up Timer OST), 看门狗定时器(Watchdog Timer), EPROM/ROM, SRAM,双向三 态I/O口,(可以设置为上拉/下拉), 省电睡眠模式, 一个带8位预置器的8位定时/计数器,独立中断,睡眠唤醒模式和可靠的代码保 护,有两个振荡源可供用户配置选择,包含省电振荡源和低功耗振荡器。 FC162可访问256×13的程序存储空间。 FC162能直接或间接访问寄存器以及数据存储区,所有的特殊功能寄存器分布在数据存储区同时包含特定的程序指针。

    标签: fc162

    上传时间: 2021-11-13

    上传用户:qingfengchizhu

  • SH79F1622 集成20路触摸按键输入和音频发生器的增强型8051微控制器

    SH79F1622是一种高速高效率8051兼容单片机。在同样振荡频率下,较之传统的8051芯片具有运行更快速,性能更优越的特性。SH79F1622保留了标准8051芯片的大部分特性,包括内置256字节RAM和3个16位定时器/计数器。此外, SH79F1622还集成了1280字节外部扩展RAM,以及存储程序的16K字节Flash块。SH79F1622还集成双路音频发生模块,低电压复位, TWI通讯功能, 以及触摸按键与LED共享功能来节省引脚,非常适合于触摸按键应用控制。此外, SH79F1622集成了看门狗定时器, EUART等功能。

    标签: 音频发生器

    上传时间: 2022-02-12

    上传用户:得之我幸78

  • 电池管理和均衡MCU 智能锂电池管理芯片 SH39F003A 手册

    产品特性介绍AFE 特性■ 集成硬件过充电保护功能     -  独立PF管脚输出低电平■ 集成硬件放电短路保护功能■ 集成平衡开关■ 集成充电器检测功能■ 集成负载检测功能■ 集成充放电状态检测功能■ 集成小电流唤醒功能■ 集成WatchDog/Reset功能■ 集成Alarm功能■ 集成负端NMOS驱动(放电PWM调控)■ 支持电芯乱序上电■ 2通道温度采集■ 12-bit VADC电压采集■ 13-bit  Ʃ-∆ CADC电流采集■ 集成LDO模块:3.3V/25mA@MAX■ 集成TWI通讯(CRC-8,10KHz~400KHz)■ 低功耗模式     - 正常模式≤70uA@25℃     - PowerDown模式≤1uA@25℃■ 工作电压     - 8V~50V(VBAT端口)MCU 特性■ 基于8051指令流水线结构的8位单片机     - CPU机器周期:1个振荡周期■ Flash ROM:64K字节■ RAM:内部256字节,外部2816字节■ 类EEPROM:最大4096字节(代码选项可选)■ 内部RC振荡器:24MHz(±1%)/128K(±10%)■ I/O内建上拉电阻(30kΩ)■ 1个16位定时器/计数器T3■ 3个16位PCA0、PCA1、PCA2各含2个比较/捕捉单元■ 3路12位PWM定时器■ SPI接口(主从模式)■ TWI接口(主从模式)■ 内建数字逻辑可配置模块(LCM)■ 3路增强型UART(3V/5V通讯)(自带波特率的uart通讯)■ 11通道12位模数转换器(ADC)■ 内建CRC校验模块,校验空间大小可选■ 看门狗定时器(WDT)■ 预热计数器■ 中断源     - 定时器3,PCA0-2,外部中断1-2,外部中断4:6输入     - ADC,EUART,SPI,PWM,SCM,CRC,TWI,LPD■ 低功耗工作模式:空闲模式/掉电模式■ 工作电压:VDD = 2.7V - 5.5V■ 封装:     - LQFP 64L

    标签: 锂电池管理芯片 mcu

    上传时间: 2022-03-24

    上传用户:qingfengchizhu

  • 致象尔微TG401数据手册

    特点:o ARM® Cortex®-M4 CPU 平台o 高达150MHz 的高性能Cortex®-M4 处理器o 集成FPU 和MPUo 内存o 512KB 片上SRAMo 2KB 至512KB 可编程保持存储区o 闪存o 1MB 集成闪存o 原地执行NOR 闪存接口,在闪存中执行时接近0 等待状态o 供电和复位管理系统o 片上稳压器,支持1.7V-3.6V 输入o 上电复位(POR)o 时钟管理o 10-30MHz 晶体振荡器o 内部16MHz RCo 32kHz 晶体振荡器o 内部32kHz RCo 具有可编程输出频率的低功耗PLLo 通用DMA:具有硬件流控制的8 通道DMA 控制器o 安全o 使用TRNG(真随机数发生器)的简单加密引擎o 定时器/计数器o 1x 系统节拍定时器o 4x 32 位定时器o 1x 看门狗定时器o 功耗(待确认)o 满载:待定uA/MHz @ 25°Co 运行:待定uA /MHz @ 25°Co 停止:待定@ 25°Co 保留:待定@ 25°C,32kB 保留存储器o 待机:待定@ 25°C,内部32kHz RCo 12 位逐次逼近寄存器(SAR)ADCo 每秒最多2M 样本o 可通过8:1 多路复用器选择输入o 1 个带有集成PHY 的USB 2.0 高速双角色端口o 两个SD / SDIO 主机接口o SD/SDIO 2.0 模式:时钟高达50MHzo LCD 控制器o 分辨率高达480x320o 6800 和8080 异步模式(8 位)o JTAG 调试功能o 3 个PWM(6 个输出),3 个捕捉和3 个QEP 模块o 4x UART,带有HW 流控制,最高可达4Mbpso 3x I2C,支持Fast Mode+(1000kbps)o 2x I2S 接口o 3x SPI 主器件高达25MHz,1x SPI 从器件高达10MHzo 32 个GPIOo 68 引脚QFN 封装o 温度范围:-40 至85°C4.1 带FPU 内核的ARM®CORTEX®-M4带有FPU 处理器的ARM®Cortex®-M4 是一款32 位RISC 处理器,具有出色的代码和功率效率。它支持一组DSP 指令,以允许高效执行信号处理算法,非常适合于可穿戴和其他嵌入式市场。集成的单精度FPU(浮点单元)便于重用第三方库,从而缩短开发时间。内部内存保护单元(MPU)用于管理对内的访问,以防止一个任务意外破坏另一个活动任务使用的内存。集成紧密耦合的嵌套向量中断控制器,提供多达16 个优先级。4.2 系统内存Bock 包含512kB 零等待状态SRAM,非常适合于当今算法日益增长的需求。同时,内存被细分为更小的区,从而可以单独地关闭以降低功耗。4.3 闪存和XIP 单元提供1MB 的集成NOR 闪存,以支持CPU 直接执行。为了提高性能,XIP 单元具有集成的缓存系统。缓冲内存与系统内存共享。与从系统内存运行性能相比,XIP 单元使得许多应用程序的运行接近100%。4.4 ROM集成ROM 固件包含通过NOR 闪存正常引导所需的引导加载程序,支持用于批量生产的闪存编程,还包括用于调试目的的UART 和USB 启动功能。

    标签: tg401

    上传时间: 2022-06-06

    上传用户:qdxqdxqdxqdx

  • at89c52芯片资料中文版

    AT89C52是美国ATMEL,公司生产的低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C52单片机适合于许多较为复杂控制应用场合主要性能参数:·与MCS-51产品指令和引脚完全兼容.8k字节可重擦写Flash闪速存储器.1000次擦写周期静态操作:OHz-24MHz·三级加密程序存储器•256х8 hA部RAM•32编程1/0口线.3个16位定时/计数器•8个中断源·程串行UART通道低功耗空闲和掉电模式·PO口:P0口是一组8位漏极开路型双向1/0口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写"1"时,可作为高阻抗输入端用.在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间滋活内部上拉电阻.在Flash编程时,PO口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

    标签: at89c52

    上传时间: 2022-06-18

    上传用户:2431247090

  • 增强型8051单片机实用开发技术

    STC12C5A60S2单片机是深圳宏晶科技有限公司的典型单片机产品,采用了增强型8051内核,片内集成了60KB程序Flash、1KB数据Flash(EEPROM)、1280字节RAM、2个16位定时/计数器、44根I/O口线、2个全双工异步串行口(UART)、高速同步通信端口(SPI)、8通道10位ADC、2通道PWM/可编程计数器阵列/捕获/比较单元(PWM/PCA/CCU)、MAX810专用复位电路和硬件看门狗等资源。STC12C5A60S2指令系统完全兼容8051单片机,并具有在系统可编程(ISP)功能和在系统调试(ISD)功能,可以省去价格较高的专门编程器,开发环境的搭建非常容易。STC12C5A60S2的所有指令和标准的8051内核完全兼容,具有良好的兼容性和很强的数据处理能力,所以,原来讲解8051单片机的师资力量可以充分发挥以前讲解单片机原理及应用课程的经验;对于具有8051单片机知识的读者,不存在转型困难的问题。本书介绍了STC12C5A60S2单片机的硬件结构、汇编语言程序设计,并详细介绍了应用于单片机的C语言程序设计,以KeiluVision集成开发环境作为程序设计和调试环境介绍了程序的调试方法。以目前流行的智能车竞寒中的智能汽车控制器以及压力测控系统两个综合设计实例为背景,介绍了单片机中各部分的硬件功能和应用设计以及相关的汇编语言、C语言程序设计与调试;特别介绍了嵌入式操作系统以C/OS-IⅡ的裁减和应用。教材的每一章都给出了相应的习题,便于教学。与教材配套的电子教案、书中的所有实例以及最后一章的应用系统设计相关内容都可以从站上下载。

    标签: 8051 单片机

    上传时间: 2022-06-25

    上传用户:wky20090436