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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

stc內部RAM使用測試C語言

[復制鏈接]
跳轉到指定樓層
樓主
ID:59306 發表于 2014-2-27 15:05 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
//讀片外擴展RAM,內部R/C時鐘及ID號C語言參考程序
/* ---  STC International Limited ----------------------------------------------        */
/* ---  宏晶科技    姚永平    2009/3/19    V1.0 --------------------------------        */
/* ---  STC11Fxx/10Fxx  系列單片機,讀片外擴展RAM,軟件實現自定義下載程序---------          */
/* ---  Mobile: 13922805190 ----------------------------------------------------        */
/* ---  Fax: 0755-82944243 -----------------------------------------------------    */
/* ---  Tel: 0755-82948412 -----------------------------------------------------    */
/* ---  本演示程序在STC-ISP Ver 3.0A.PCB的下載編程工具上測試通過 ---------------        */
/* ---  如果要在程序中使用該程序,請在程序中注明使用了宏晶科技的資料及程序 -------        */
/* ---  如果要在文章中引用該程序,請在文章中注明使用了宏晶科技的資料及程序--------   */

#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,9600bps
#define RELOAD_COUNT  0xfd   //11.0592MHz,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 temp_data = 0;
    unsigned  int  k = 0;   
        
        unsigned char xdata *xdata_point;

//        unsigned char idata *idata_point;

    serial_port_initial();      //串口初始化
//    display_MCU_Start_Led();    //點亮發光二極管表示單片機開始工作
//    send_UART(0x34);            //串口發送數據表示單片機串口正常工作
//    send_UART(0xa7);            //串口發送數據表示單片機串口正常工作

//        xdata_point = 0x400;
        xdata_point = 0x0000;
//    temp_data = 0;
    temp_data = 0xff;
        for(k=0;k<32768;k++)
        {
                *xdata_point = temp_data;
                xdata_point++;
        }


        xdata_point = 0x0000;
        for(k=0;k<32768;k++)
        {
                i = 0;
//                P0 = 0xFF;
                i = *xdata_point;
                send_UART(i);
                xdata_point++;
        }
           
/*        
        for(j=0;j<255;j++)
        {
                *xdata_point = temp_data;
                temp_data++;
                xdata_point++;
        }

//        xdata_point = 0x400;
        xdata_point = 0x7800;
        for(j=0;j<255;j++)
        {
                i = 0;
//                P0 = 0xFF;

                i = *xdata_point;

                send_UART(i);

                xdata_point++;
        }

        
        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開始工作指示燈
    }
}


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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三区四区在线播放 | 在线免费黄色 | 99久久婷婷国产综合精品电影 | 天堂网色 | 国产精品视频导航 | 国产精品久久久久久一区二区三区 | 久久99精品久久久久久噜噜 | 亚洲成人精品久久 | 91视频久久 | 草草视频在线免费观看 | av在线一区二区三区 | 国产黄色大片 | 美美女高清毛片视频免费观看 | 日韩伦理一区二区 | 一区 | 狠狠插狠狠操 | 久久精品小视频 | 9久9久9久女女女九九九一九 | 中文字幕精品一区二区三区精品 | 成年人网站免费视频 | 日本欧美在线视频 | 日本二区在线观看 | 美女视频. | 成人免费在线电影 | 福利视频三区 | 激情av网站 | 狠狠综合久久av一区二区小说 | 亚州综合在线 | 四虎影院在线免费观看 | 日韩国产高清在线观看 | 黄色免费av | 日韩91在线 | 亚洲字幕在线观看 | 日韩欧美在线视频 | 91免费福利在线 | 一区二区三区视频在线观看 | 亚洲欧洲精品成人久久奇米网 | 日韩av在线中文字幕 | 久久久久久久久久毛片 | 久久成人一区 | 四虎伊人 |