读内部R/C时钟及ID号C语言参考程序

发布者:JoyfulSerenade最新更新时间:2018-01-12 来源: eefocus关键字:内部R  C时钟  ID号 手机看文章 扫描二维码
随时随地手机看文章

#include 
#include 
sfr  IAP_CONTR =  0xC7; 

sbit MCU_Start_LED  =  P1^7; 
//unsigned char self_command_array[4] =  {0x22,0x33,0x44,0x55}; 


#define Self_Define_ISP_Download_Command  0x22 
#define RELOAD_COUNT  0xfb   //18.432MHz,12T,SMOD=0,9600bps 

void serial_port_initial(); 
void send_UART(unsigned char); 
void UART_Interrupt_Receive(void); 
void SOFt_reset_to_ISP_Monitor(void); 
void delay(void); 
void display_MCU_Start_Led(void); 

void main(void) 

    unsigned  char i = 0; 
    unsigned  char j = 0; 

    unsigned char idata *idata_point; 

    serial_port_initial();      //串口初始化 
//    display_MCU_Start_Led();    //点亮发光二极管表示 单片机 开始工作 
//    send_UART(0x34);            //串口发送数据表示 单片机 串口正常工作 
//    send_UART(0xa7);            //串口发送数据表示 单片机 串口正常工作 
     
    idata_point = 0xF1; 
    for(j=0;j<15;j++) 
    { 
        i = *idata_point; 
        send_UART(i); 
        idata_point++; 
    } 

    while(1); 


void serial_port_initial() 

    SCON    =   0x50;   //0101,0000 8位可变波特率,无奇偶校验位 
    TMOD    =   0x21;   //0011,0001 设置顶时器1为8位自动重装计数器 
    TH1     =   RELOAD_COUNT;   //设置定时器1自动重装数 
    TL1     =   RELOAD_COUNT; 
    TR1     =   1;    //开定时器1 
    ES      =   1;    //允许串口中断 
    EA      =   1;    //开总中断 


void send_UART(unsigned char i) 

    ES     =   0;  //关串口中断 
    TI     =   0;  //清零串口发送完成中断请求标志 
    SBUF   =   i; 
    while(TI ==0); //等待发送完成 
    TI     =   0;  //清零串口发送完成中断请求标志 
    ES     =   1;  //允许串口中断 


void UART_Interrupt_Receive(void) interrupt 4 

    unsigned char   k   =   0; 
    if(RI==1) 
    { 
        RI  =   0; 
        k   =   SBUF; 
        if(k==Self_Define_ISP_Download_Command)   //是自定义下载命令 
        { 
            delay();    //延时1秒就足够了 
            delay();    //延时1秒就足够了 
            soft_reset_to_ISP_Monitor();    //软复位到系统ISP监控区 
        } 
        send_UART(k); 
    } 
    else 
    { 
        TI  =  0; 
    } 


void soft_reset_to_ISP_Monitor(void) 

    IAP_CONTR   =    0x60;   //0110,0000   软复位到系统ISP监控区 


void delay(void) 

    unsigned int j  =   0; 
    unsigned int g  =   0; 
    for(j=0;j<5;j++) 
    { 
        for(g=0;g<60000;g++) 
        { 
            _nop_(); 
            _nop_(); 
            _nop_(); 
            _nop_(); 
            _nop_(); 
        } 
    } 

  
void display_MCU_Start_Led(void)    

    unsigned  char i = 0; 
    for(i=0;i<3;i++) 
    { 
        MCU_Start_Led   =   0;  //顶亮MCU开始工作指示灯 
        delay(); 
        MCU_Start_Led   =   1;  //熄灭MCU开始工作指示灯 
        delay(); 
        MCU_Start_Led   =   0;  //顶亮MCU开始工作指示灯 
    } 


关键字:内部R  C时钟  ID号 引用地址:读内部R/C时钟及ID号C语言参考程序

上一篇:51单片机+18B20显示程序+74HC164扩展显示数码管
下一篇:集约型51系统板输出通道的改进设计

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

S3C2440裸机------时钟
1.S3C2440的时钟体系 1.1.S3C2440结构框图 从上面的结构图可以看出,S3C2440主要分为CPU,高速总线,低速总线。其中 CPU工作与FCLK AHB总线工作于HCLK,AHB(Advance High performance Bus)总线主要用于高性能模块。 慢速外设工作于PCLK,APB(Advance Peripheral Bus)总线主要用于低贷款的周边外设之间的连接。 我们的S3C2440硬件电路板上,时钟源是一个12M的晶振,我们用PLL锁相环可以得到上面的三种频率。 1.2 S3C2440时钟树 从上图的左上角可以看出,时钟源有两个选择,可以是晶振,也可以是直接从EX
[单片机]
S3<font color='red'>C</font>2440裸机------<font color='red'>时钟</font>
s3c2410 时钟频率
PLL PLL(Phase Locked Loop): 为锁相回路或锁相环,用来统一整合时脉讯号,使内存能正确的存取资料。PLL用于振荡器中的反馈技术。   锁相环是一种反馈电路,其作用是使得电路上的时钟和某一外部时钟的相位同步。PLL通过比较外部信号的相位和由压控晶振(VCXO)的相位来实现同步的,在比较的过程中,锁相环电路会不断根据外部信号的相位来调整本地晶振的时钟相位,直到两个信号的相位同步。   在数据采集系统中,锁相环是一种非常有用的同步技术,因为通过锁相环,可以使得不同的数据采集 板卡共享同一个采样时钟。因此,所有板卡上各自的本地80MHz和20MHz时基的相位都是同步的,从而采样时钟也是同步的。因为每块板卡的采样时钟
[单片机]
外国器件PCF8563I2C实时时钟/日历芯片在8051系统中的应用
    摘要: PCF8563是PLILIPS公司生产的低功耗CMOS实时时钟/日历芯片,文中介绍了PCF8563的结构、功能及工作原理。结合其在8051系统中的应用实例,给出了PCF8563与8051单片机的硬件接口电路和C语言软件编程程序。     关键词: I2C总线 串行接口 PCF8563 BCD码 C语言 1 PCF8563简介 PCF8563是PHILIPS公司生产的低功耗CMOS实时时钟/日历芯片,芯片最大总线速度为400kbits/s,每次读写数据后,其内嵌的字地址寄存器器会自动产生增量。PCF8563可广泛应用于移动电话、便携仪器、传真机、电池电源等产品中。 PCF8563的引脚
[应用]
stm8 唯一ID加密方法.思路
1.读出ID号 #if defined(STM8S103) #define ID_BaseAddress (0x4865) #else// defined(STM8S105) #define ID_BaseAddress (0x48CD) #endif void GetUniqueID(unsigned char *p) { unsigned char i; unsigned char *pIDStart=(unsigned char *)(ID_BaseAddress); for(i=0;i!=12;i++){*p++=*pIDStart++;} } 2.把读
[单片机]
s3c2410时钟信号:FCLK、HCLK和PCLK;clk_get_rate()
s3c2410 有三个时钟FLCK 、HCLK 和PCLK (这3个时针都是核心时针) s3c2410 芯片有这么一段话: FCLK is used by ARM920T ,内核时钟,主频。 HCLK is used for AHB bus, which is used by the ARM920T, the memory controller, the interrupt controller, the LCD controller, the DMA and USB host block. 也就是为AHB总线上的外设提供时钟信号,包括USB时钟。 AHB总线用于连接高速外设。 PCLK is used for APB bus,
[单片机]
s3<font color='red'>c</font>2410<font color='red'>时钟</font>信号:FCLK、HCLK和PCLK;clk_get_rate()
S3C2443时钟管理
S3C2443有两个PLL用来产生内部时钟,分别是MPLL和EPLL,其中MPLL为包括ARM,AHB和APB的总体功能模块产生内部时钟,而EPLL为比如是USB,I2S和camera等这些具体的模块产生时钟,我们可以通过软件编程来控制这个两个PLL的工作频率,可以关闭和开启内部时钟源来减少功耗。 1.MPLL和EPLL时钟源的选择 从上图可知主要的时钟源来之外部晶振(XTI)或者外部时钟(EXTCLK),时钟产生器由MPLL和EPLL组成,这两个PLL的作用是可以产生S3C2443所需要的高频时钟信号。由OM 来决定MPLL是选择XTI还是EXTCLK来作为时钟源,而OM 是由硬件设计来确定,下图是我们项目OM 的设
[单片机]
S3<font color='red'>C</font>2443<font color='red'>时钟</font>管理
C51实现时钟12MHz
/***************************************************** *任务要求 *1、时钟12MHz,使用定时器T1的方式1定时20mS; *2、对20mS计数50次产生1S; *3、做一个时分秒的电子钟。 * *作者:刘子琰 *时间:2020年3月28日10:13:41 ******************************************************/ #include reg51.h #include intrins.h typedef unsigned char u8; u8 hour=0,minute=0,seco
[单片机]
1602LCD液晶数字电子钟 时钟C语言
1602LCD液晶数字电子钟 基本设计思路: 1. 1602LCD显示: 第一行: 年, 月, 日 2012-01-22 第二行: 时, 分, 秒 23:59:00 2. 独立按键功能: Key1 恢复单片机调时之前的实际时间, 由于在调整时间期间,定时器T0暂停, 则启动定时器T1, 保证单片机的时间正确.(即 取消调时) Key2 进入调整时间状态: 停止定时器T0,启动定时器T1. Key3 退出调整时间状态: 启动定时器T0,停止定时器T1. Key4 选择调整时间: 秒, 分, 时, 日, 月, 年 Key5 调时: 递增 同时启动蜂鸣器 Key6 调时: 递减 同时启动蜂鸣器
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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