久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2112|回復: 1
打印 上一主題 下一主題
收起左側

STC單片機不重新加電燒寫方法

[復制鏈接]
跳轉到指定樓層
樓主
ID:686809 發表于 2020-1-16 23:56 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
###############################main.c#############################
#include <intrins.h>
#include "myreg.h"
#include "uart.h"
#include "tool.h"

void RdUART();
void main(void)
{
        volatile unsigned long CNT = 0;
        UCHAR I=0;
        UART_init(38400,RdUART);
        UART_open();
        while(1)
        {
                while(CNT<10000)
                {
                        CNT++;//約1秒1次
                }
                CNT = 0;
                I = I + 45;
        //        I = I;
                P2        = I;
        }
}

void RdUART()
{
        // 拷到ISP軟件中  0 1 2 3 4 5 6 7 8 9 A B C D E F 10

        static UCHAR i        = 0;
        UCHAR Rd;
        UART_get(&Rd);
        P2 = Rd;
        UART_send(Rd);
        if(Rd == i)
        {
                i++;
        }
        else
        {
                i=0;
        }

        if(i>16)
        {
                UART_close();
                delay();
                P2        = 0xAA;
                delay();
                P2        = 0x55;
                soft_reset_to_ISP_Monitor();
                i        = 0;
        }
}

###############################uart.h#############################
#ifndef _UART_H_
#define _UART_H_

#include "myreg.h"

// 波特率可設的中斷型發送接收

typedef struct
{
        UCHAR        isBusy;
        UCHAR        RxCnt;
        UCHAR        RxD;
        void        (*Fun)();
}LocUART;

extern void UART_init(USHORT Rate, void (*pFun)());
extern void UART_open();
extern void UART_close();
extern UCHAR UART_isBusy();
extern void UART_send(UCHAR D);
extern UCHAR UART_get(UCHAR *D);
extern void UART_Interrupt_Receive(void);





#endif


##########################uart.c######################################

#include "uart.h"
#include "myreg.h"

LocUART LocUSta;
void UART_init(USHORT Rate, void (*pFun)())
{
        // SCON = SM0/FE SM1 SM2 REN TB8 RB8 TI RI
       
        USHORT SetVal        = 0;
        SetVal        = 65536 - (SYSFREQ / Rate / 32);
        UART_close();
        SM0        = 0;
        SM1        = 1;
        SM2        = 0;
        RCAP2H        = SetVal>>8;
        RCAP2L        = SetVal & 0x00FF;
        RCLK        = 1;
        TCLK        = 1;
        EXEN2        = 1;
        C_T2        = 0;
        LocUSta.isBusy        = 0;
        LocUSta.Fun                = pFun;
//        DECN        = 0;       
//        T2OE        = 1;        //定時器2輸出
}
void UART_open()
{
        TI        = 0;        //接收標志位清空
        RI        = 0;        //發送標志位清空
        REN        = 1;        //允許串口接收
        ES        = 1;        //打開串口中斷
        EA        = 1;        //使能全局中斷
        TR2        = 1;        //定時器2開始運行
}
void UART_close()
{
        TR2        = 0;        //定時器2停止
        REN        = 0;        //禁止串口接收
        ES        = 0;        //禁止中斷
}

UCHAR UART_isBusy()
{
        return LocUSta.isBusy;
}

void UART_send(UCHAR D)
{
        SBUF                        = D;
        LocUSta.isBusy        = 1;
}

UCHAR UART_get(UCHAR *D)
{
        *D        = LocUSta.RxD;
        return LocUSta.RxCnt;
}

void UART_Interrupt_Receive(void) interrupt 4 using 1
{
        if(TI)
        {
                LocUSta.isBusy        = 0;
                TI        = 0;
        }
        if(RI)
        {       
                LocUSta.RxD        = SBUF;
                LocUSta.RxCnt++;
                RI = 0;
                if(LocUSta.Fun)
                {
                        LocUSta.Fun();
                }
        }
}

##########################################myreg.h########################
/*--------------------------------------------------------------------------
REG52.H

Header file for generic 80C52 and 80C32 microcontroller.
Copyright (c) 1988-2001 Keil Elektronik GmbH and Keil Software, Inc.
All rights reserved.
--------------------------------------------------------------------------*/


/*
Data Type                 Bits         Bytes         Value Range
bit                                1                                 0 to 1
signed char         8                 1                 -128 to +127
unsigned char         8                 1                 0 to 255
enum                         16                 2                 -32768 to +32767
signed short         16                 2                 -32768 to +32767
unsigned short         16                 2                 0 to 65535
signed int                 16                 2                 -32768 to +32767
unsigned int         16                 2                 0 to 65535
signed long         32                 4                 -2,147,483,648 to +2,147,483,647
unsigned long         32                 4                 0 to 4,294,967,295
float                         32                 4                 ±1.175494E-38 to ±3.402823E+38
sbit                         1                                 0 to 1
sfr                         8                 1                 0 to 255
sfr16                         16                 2                 0 to 65535
*/


#ifndef _MYREG_H_
#define _MYREG_H_

// redefine
typedef signed char         SCHAR;        //8
typedef unsigned char         UCHAR;        //8
typedef unsigned short        USHORT;        //16

// system parameter
#define SYSFREQ        (22118400)


/*  BYTE Registers  */
sfr P0    = 0x80;
sfr P1    = 0x90;
sfr P2    = 0xA0;
sfr P3    = 0xB0;
sfr PSW   = 0xD0;
sfr ACC   = 0xE0;
sfr B     = 0xF0;
sfr SP    = 0x81;
sfr DPL   = 0x82;
sfr DPH   = 0x83;
sfr PCON  = 0x87;
sfr TCON  = 0x88;
sfr TMOD  = 0x89;
sfr TL0   = 0x8A;
sfr TL1   = 0x8B;
sfr TH0   = 0x8C;
sfr TH1   = 0x8D;
sfr IE    = 0xA8;
sfr IP    = 0xB8;
sfr SCON  = 0x98;
sfr SBUF  = 0x99;


/*  8052 Extensions  */
sfr T2CON  = 0xC8;
sfr T2MOD  = 0xC9;
sfr RCAP2L = 0xCA;
sfr RCAP2H = 0xCB;
sfr TL2    = 0xCC;
sfr TH2    = 0xCD;

sfr IAP_CONTR        = 0xE7;
/*  BIT Registers  */
/*  PSW  */
sbit CY    = PSW^7;
sbit AC    = PSW^6;
sbit F0    = PSW^5;
sbit RS1   = PSW^4;
sbit RS0   = PSW^3;
sbit OV    = PSW^2;
sbit P     = PSW^0; //8052 only

/*  TCON  */
sbit TF1   = TCON^7;
sbit TR1   = TCON^6;
sbit TF0   = TCON^5;
sbit TR0   = TCON^4;
sbit IE1   = TCON^3;
sbit IT1   = TCON^2;
sbit IE0   = TCON^1;
sbit IT0   = TCON^0;

/*  IE  */
sbit EA    = IE^7;
sbit ET2   = IE^5; //8052 only
sbit ES    = IE^4;
sbit ET1   = IE^3;
sbit EX1   = IE^2;
sbit ET0   = IE^1;
sbit EX0   = IE^0;

/*  IP  */
sbit PT2   = IP^5;
sbit PS    = IP^4;
sbit PT1   = IP^3;
sbit PX1   = IP^2;
sbit PT0   = IP^1;
sbit PX0   = IP^0;

/*  P3  */
sbit RD    = P3^7;
sbit WR    = P3^6;
sbit T1    = P3^5;
sbit T0    = P3^4;
sbit INT1  = P3^3;
sbit INT0  = P3^2;
sbit TXD   = P3^1;
sbit RXD   = P3^0;

/*  SCON  */
sbit SM0   = SCON^7;
sbit SM1   = SCON^6;
sbit SM2   = SCON^5;
sbit REN   = SCON^4;
sbit TB8   = SCON^3;
sbit RB8   = SCON^2;
sbit TI    = SCON^1;
sbit RI    = SCON^0;

/*  P1  */
sbit T2EX  = P1^1; // 8052 only
sbit T2    = P1^0; // 8052 only

/*  T2CON  */
sbit TF2    = T2CON^7;
sbit EXF2   = T2CON^6;
sbit RCLK   = T2CON^5;
sbit TCLK   = T2CON^4;
sbit EXEN2  = T2CON^3;
sbit TR2    = T2CON^2;
sbit C_T2   = T2CON^1;
sbit CP_RL2 = T2CON^0;

/* T2MOD */
//sbit T2OE        = T2MOD^1;
//sbit DECN        = T2MOD^0;

#endif

###########################tool.h#####################################
#ifndef _TOOL_H_
#define _TOOL_H_

extern void delay();
extern void soft_reset_to_ISP_Monitor();

#endif
##############################tool.c#################################
#include "tool.h"
#include "myreg.h"
void delay()
{
        volatile unsigned long CNT = 0;
        while(10000>CNT++);
}


void soft_reset_to_ISP_Monitor(void)
{
        IAP_CONTR = 0x60; //0110,0000 soft reset system to run ISP monitor
}


以上是個例子,利用STC_ISP_V483是可以的,其他版本未證實
無法上傳照片
記得把0 1 2 3 4 5 6 7 8 9 A B C D E F 10拷貝到自定義下載中。


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:53978 發表于 2020-1-17 10:31 | 只看該作者
看不懂,這個是做一個下載器嗎?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品亚洲一区二区三区 | 成人九色 | 欧美电影大全 | 国产成人影院 | 欧美视频第二页 | 欧美成人性生活 | 国产成人精品一区二 | 免费一区二区三区 | 91中文字幕在线 | 99pao成人国产永久免费视频 | 免费黄色成人 | 国产91视频一区二区 | 精品国产乱码久久久久久果冻传媒 | www.99re5.com| 亚洲精品小视频在线观看 | 久久99国产精一区二区三区 | 欧美一区二区三区视频 | 日韩高清三区 | 国产精品国产精品国产专区不片 | 精品国产一区二区在线 | 9久久婷婷国产综合精品性色 | 精品亚洲一区二区三区四区五区 | 亚洲国产一区在线 | 男女在线网站 | 香蕉大人久久国产成人av | 你懂的国产| 在线观看国产网站 | 国产成人精品一区二区三 | 精品久久久久久国产 | www.日韩系列 | 99精品国产在热久久 | 美女国产 | 国内久久精品 | 成人av一区二区亚洲精 | 久久99精品久久久久久国产越南 | 欧美日韩中文在线 | 成人在线免费 | 国产精品久久久久久妇女 | 日日碰狠狠躁久久躁婷婷 | 国产一区二区免费在线 | 亚洲欧美一区二区三区情侣bbw |