亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? loader_f02x.c

?? C8051F單片機(jī)在系統(tǒng)編程和在應(yīng)用編程實(shí)例
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
//-----------------------------------------------------------------------------
// loader_F02x.c
//-----------------------------------------------------------------------------
// Copyright 2002 Cygnal Integrated Products, Inc.
// 交互選擇性固件刷新程序,針對(duì)BTF020開發(fā)板做了程序改動(dòng);針對(duì)一些keil c語言函數(shù)做了注釋說明
// AUTH: 鐘磊
// DATE: 04 sep 07
//
// This program shows an example 'selective code loader' using the 'F02x. It 
// designates the FLASH page at 0x1000 for the code loaded through the UART. 
// 
// Control Function:
//
// The system is controlled via the hardware UART, operating at a baud rate
// determined by the constant <BAUDRATE>, using Timer1 overflows as the baud
// rate source.
//
// Received File Type:
//
// This example receives Intel HEX files which are OMF51 (linker output files)
// passed through the OH51 utility in the 'CYGNAL\IDEfiles\C51\Bin' folder. 
// 
// Note: Because this program writes to FLASH, the MONEN pin should be tied 
//       high.
//
// Target: C8051F02x
// Tool chain: KEIL C51 6.03 / KEIL EVAL C51
//

//-----------------------------------------------------------------------------
// Includes
//-----------------------------------------------------------------------------
#include <c8051f020.h>                 // SFR declarations
#include <stdio.h>                     // printf() and getchar()
#include <ctype.h>                     // tolower() and toint()

//-----------------------------------------------------------------------------
// 16-bit SFR Definitions for 'F02x
//-----------------------------------------------------------------------------
sfr16 DP       = 0x82;                 // data pointer
sfr16 TMR3RL   = 0x92;                 // Timer3 reload value
sfr16 TMR3     = 0x94;                 // Timer3 counter
sfr16 ADC0     = 0xbe;                 // ADC0 data
sfr16 ADC0GT   = 0xc4;                 // ADC0 greater than window
sfr16 ADC0LT   = 0xc6;                 // ADC0 less than window
sfr16 RCAP2    = 0xca;                 // Timer2 capture/reload
sfr16 T2       = 0xcc;                 // Timer2
sfr16 RCAP4    = 0xe4;                 // Timer4 capture/reload
sfr16 T4       = 0xf4;                 // Timer4
sfr16 DAC0     = 0xd2;                 // DAC0 data
sfr16 DAC1     = 0xd5;                 // DAC1 data

//-----------------------------------------------------------------------------
// Global CONSTANTS
//-----------------------------------------------------------------------------
#define TRUE         1
#define FALSE        0

#define SYSCLK       22118400          // SYSCLK frequency in Hz
#define BAUDRATE     115200            // Baud rate of UART in bps

sbit LED = P2^4;                       // LED='1' means ON
sbit SW2 = P2^0;                       // SW2='0' 表示按鍵按下

//-----------------------------------------------------------------------------
// Reserved Memory Space
//-----------------------------------------------------------------------------

char reserved_memory_bank[2] _at_ 0x08;// This memory bank is used by the
                                       // functions that will be loaded 
                                       // through the UART.
                                       // The memory bank location and size
                                       // are based on values from the M51 map
                                       // file generated when the loaded code
                                       // is linked.
									   //保留數(shù)據(jù)區(qū)的大小有待刷程序所使用的數(shù)據(jù)區(qū)
									   //大小決定,可以查看M51文件得到

//-----------------------------------------------------------------------------
// Function PROTOTYPES
//-----------------------------------------------------------------------------

void main (void);

// Support Subroutines
void print_menu(void);
void erase_flash_page(void);
void receive_code(void);
unsigned char hex2char();

// Initialization Subroutines
void SYSCLK_Init (void);
void PORT_Init (void);
void UART0_Init (void);

//-----------------------------------------------------------------------------
// Global VARIABLES
//-----------------------------------------------------------------------------

#define input_str_len 4                // buffer to hold characters entered               
char input_str[input_str_len];         // at the command prompt

void (*f)();                           // function pointer declaration

bit code_erased = FALSE;               // flag used to indicate that the FLASH
                                       // erase operation is complete
bit f_valid = FALSE;                   // flag to indicate that the FLASH 
                                       // programming operation is complete
									   // 標(biāo)志先置零

//-----------------------------------------------------------------------------
// MAIN Routine
//-----------------------------------------------------------------------------

void main (void) 
{

   WDTCN = 0xde;                       // disable watchdog timer
   WDTCN = 0xad;

   PORT_Init ();                       // initialize crossbar and GPIO
   SYSCLK_Init ();                     // initialize oscillator
   UART0_Init ();                      // initialize UART0
   
   print_menu();                       // print the command menu

   while (1){
         
      printf("\nEnter a command > ");
      gets(input_str, input_str_len);  //gets()讀取的字符串,其長(zhǎng)度沒有限制,編程
	                                   //者要保證字符數(shù)組有足夠大的空間,存放輸入的字符串。

      
      switch ( input_str[0] ){
      
         case '1': erase_flash_page();   
                   printf("\nFlash page 0x1000 has been erased.\n");
                   break;

         case '2': printf("\nReady to receive HEX file...\n");
                   receive_code();
                   break;

         case '3': if(f_valid){
                     f = (void code *) 0x1000;
                     f();
                     printf("\nFinished\n");
                   } else {
                     printf("\n*** No function exists at 0x1000.\n");
                   }
                   break; 

         case '?': print_menu(); 
                   break;    

         default:  printf("\n*** Unknown Command.\n");
                   break;
      }   

   } // end while

} // end main

//-----------------------------------------------------------------------------
// Support Subroutines
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// print_menu
//-----------------------------------------------------------------------------
//
// This routine uses prints the command menu to the UART.
//
void print_menu(void)
{
  
   printf("\n\nC8051F02x Selective Code Loader Example\n");
   printf("------------------------------------------\n");
   printf("1. Erase the flash page at 0x1000\n");
   printf("2. Receive HEX file\n");
   printf("3. Execute the function at 0x1000\n");
   printf("?. Print Command List\n");
}

//-----------------------------------------------------------------------------
// hex2char
//-----------------------------------------------------------------------------
//
// This routine converts a two byte ascii representation of a char to an
// 8-bit variable;
//
unsigned char hex2char()
{
   
   unsigned char retval;
   char byteH, byteL;
   
   // get a two-byte ASCII representation of a char from the UART
   byteH = _getkey();          //等待一個(gè)字符(使用_getkey函數(shù))  
                               //函數(shù)_getkey和putchar使用片內(nèi)串口來完成串行I/O
   byteL = _getkey();          //這些子程序包含在C51庫(kù)中,每個(gè)函數(shù)的源文件位于\C51\LIB目錄下
   
   // convert to a single 8 bit result
   retval = (char) toint(byteH) * 16;       //toint可重入轉(zhuǎn)換一個(gè)十六進(jìn)制數(shù)為一個(gè)十進(jìn)制數(shù)

   retval += (char) toint(byteL);
   return retval;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品888| 日本欧美一区二区| 色婷婷亚洲精品| 亚洲永久免费视频| 欧美老女人在线| 久久福利资源站| 中文字幕欧美区| 91免费观看国产| 天堂va蜜桃一区二区三区| 91精品国产综合久久久久| 九九久久精品视频| 国产精品午夜在线| 欧美日韩一级大片网址| 天天操天天综合网| 国产午夜亚洲精品午夜鲁丝片| 国产精品白丝jk黑袜喷水| 1024成人网| 欧美理论在线播放| 国产成人精品aa毛片| 亚洲综合在线免费观看| 欧美一区二区高清| www.在线成人| 天天综合网 天天综合色| 久久女同互慰一区二区三区| 91啪亚洲精品| 久久国产精品色婷婷| 国产精品福利一区二区三区| 在线电影院国产精品| 成人久久久精品乱码一区二区三区| 亚洲影院久久精品| 26uuu精品一区二区三区四区在线| 91视频观看免费| 精品一区二区三区久久| 亚洲精品国产高清久久伦理二区| 欧美一区二区三区性视频| 不卡在线视频中文字幕| 蜜臀av一区二区在线免费观看| 国产精品久久久久久久久果冻传媒| 67194成人在线观看| www.亚洲激情.com| 精品一区二区三区香蕉蜜桃| 亚洲精选免费视频| 国产精品丝袜一区| 精品久久久久久久久久久久久久久| 色综合久久中文字幕| 国产精品一区三区| 久久国产精品99精品国产| 一区二区三区蜜桃| 国产精品国产自产拍在线| 日韩免费视频一区| 制服丝袜在线91| 在线看日韩精品电影| 丁香激情综合五月| 狠狠色狠狠色综合日日91app| 午夜激情综合网| 伊人婷婷欧美激情| 18成人在线观看| 国产精品无人区| 久久久亚洲精品一区二区三区| 欧美一级电影网站| 欧美精品高清视频| 欧美日韩一区二区三区视频| 91丨porny丨蝌蚪视频| 日韩一区二区三区四区| 欧美午夜精品久久久久久孕妇| 成人美女视频在线观看18| 国产高清在线精品| 国产成人精品一区二| 国产精品综合一区二区| 久久99九九99精品| 精品一区二区三区免费视频| 麻豆成人免费电影| 精品亚洲porn| 国产一区二区免费视频| 韩国v欧美v日本v亚洲v| 精品一区二区三区免费播放| 狂野欧美性猛交blacked| 毛片不卡一区二区| 久久99精品一区二区三区三区| 日本不卡的三区四区五区| 日韩主播视频在线| 奇米色777欧美一区二区| 免费观看久久久4p| 精品一区二区在线看| 国产精品一区二区免费不卡| 国产乱一区二区| 成人免费视频国产在线观看| 99久久精品国产导航| 91成人免费电影| 欧美精品v国产精品v日韩精品| 日韩欧美一区中文| 久久久午夜电影| 18欧美乱大交hd1984| 亚洲午夜一二三区视频| 日本不卡一区二区三区| 国产真实乱对白精彩久久| 国产91在线看| 91极品视觉盛宴| 欧美日韩精品福利| 亚洲精品在线电影| 国产精品福利电影一区二区三区四区| 亚洲欧美另类小说视频| 天天综合日日夜夜精品| 韩国欧美一区二区| 91蝌蚪porny九色| 91精品国产麻豆国产自产在线| 26uuu色噜噜精品一区二区| 欧美韩日一区二区三区| 亚洲伊人伊色伊影伊综合网| 免费观看日韩电影| 99久久精品费精品国产一区二区| 欧美美女一区二区| 国产女人aaa级久久久级| 亚洲黄色片在线观看| 久久机这里只有精品| av不卡免费在线观看| 欧美一区二区高清| 中文字幕一区二区三区精华液 | 欧美视频精品在线| 精品国产1区2区3区| 一区二区三区欧美日| 九九精品视频在线看| 色av综合在线| 久久久亚洲国产美女国产盗摄| 亚洲亚洲人成综合网络| 国产91清纯白嫩初高中在线观看| 欧美亚洲一区二区在线| 久久久精品国产免大香伊| 亚洲一区二区美女| 高清不卡在线观看| 日韩欧美123| 成人的网站免费观看| 欧美一区午夜精品| 亚洲精品中文在线| 国产精品18久久久久久久久 | 91麻豆精品国产自产在线观看一区 | 国产精品一卡二卡| 在线成人小视频| 亚洲乱码国产乱码精品精98午夜 | 爽好多水快深点欧美视频| 北岛玲一区二区三区四区| 日韩欧美亚洲国产另类| 亚洲欧美一区二区三区久本道91 | 午夜欧美在线一二页| 波多野结衣91| 国产欧美va欧美不卡在线| 久久99精品国产麻豆婷婷洗澡| 欧美午夜精品免费| 中文字幕亚洲视频| 国产成人综合自拍| 欧美不卡一区二区三区| 秋霞午夜av一区二区三区| 欧美三级日韩在线| 亚洲国产日韩av| 在线看国产日韩| 亚洲黄色小视频| 欧美性色综合网| 亚洲电影第三页| 欧美三级电影在线看| 亚洲最新视频在线播放| 99久久精品国产导航| 中文字幕一区二区三区不卡| 丁香婷婷深情五月亚洲| 欧美国产禁国产网站cc| 国产成人在线视频免费播放| 2023国产一二三区日本精品2022| 老司机精品视频一区二区三区| 日韩视频在线永久播放| 麻豆精品一区二区综合av| 精品剧情v国产在线观看在线| 日本不卡一二三| 久久一留热品黄| 国产成人精品在线看| 中文字幕av一区二区三区免费看| 成人动漫一区二区| 亚洲欧美日韩综合aⅴ视频| 色伊人久久综合中文字幕| 亚洲午夜免费电影| 欧美夫妻性生活| 国产一区二区三区综合| 国产欧美久久久精品影院| 成人久久18免费网站麻豆| 亚洲乱码一区二区三区在线观看| 91精品福利在线| 蜜臀久久久久久久| 欧美国产精品久久| 色爱区综合激月婷婷| 日本成人在线看| 久久精品人人做人人爽97| 91在线免费视频观看| 亚洲一级二级三级| 日韩欧美国产综合| 国产91清纯白嫩初高中在线观看| 一区精品在线播放| 欧美精品精品一区| 成人性生交大片免费| 亚洲国产精品久久久男人的天堂 | 日本一区二区成人| 国产片一区二区| 色狠狠av一区二区三区|