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

来源:本站
导读:目前正在解读《读内部R/C时钟及ID号C语言参考程序》的相关信息,《读内部R/C时钟及ID号C语言参考程序》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《读内部R/C时钟及ID号C语言参考程序》的详细说明。
简介:这里给大家分享了一个读51单片机内部R/C时钟及ID号C语言参考程序

#include<reg51.h>#include<intrins.h>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,9600bpsvoid 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号C语言参考程序》最后刷新时间 2024-03-14 01:02:35,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《读内部R/C时钟及ID号C语言参考程序》该内容的真实性请自行鉴别。