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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? uart_samplesession.c

?? nec78f9222異步通訊程序,C語言寫的,雖然很簡單,但對初學者還是有一點幫助的.
?? C
字號:
//============================================================================
// PROJECT      = 78K0S/KA1+ Low Pin Count - DemoKit-KA1
// MODULE       = uart_samplesession.c
// SHORT DESC.  = -
// DEVICE       = uPD78F9222
// VERSION      = 1.0
// DATE         = 22.12.2004
// LAST CHANGE  = -
// ===========================================================================
// Description:  This sample program simulates a voltage meter with serial
//               communication channel. The sample program does a cyclic
//               measurement of the input voltage of AD converter channel 0,
//               port P20/ANI0, and transfers the measured result via UART6
//               to a terminal program running at the host machine. The data
//               transfer speed is set to 115200 bps per default. The input
//               voltage can be changed by potentiometer R24.
//
// ===========================================================================

#pragma sfr
#pragma DI
#pragma EI
#pragma interrupt INTTM80 isr_INTTM80
#pragma interrupt INTAD isr_INTADC
#pragma section @@CNST  OPT AT 80H
const char OPTION=0x9A;

//***************************  chose baudrate   *******************************
//#define BAUDRATE 9600
//#define BAUDRATE 38400
#define BAUDRATE 115200

//-----------------------------------------------------------------------------

#define LED1   P2.3    	    // LED D1
#define LED2   P13.0	    // LED D2
#define LED3   P4.5         // LED D3
#define LED4   P12.3	    // LED D4

//-----------------------------------------------------------------------------
// Global variables
//-----------------------------------------------------------------------------
unsigned char result_out;
unsigned char result10;
unsigned char result1;
unsigned char result01;

//-----------------------------------------------------------------------------
// Function prototyps
//-----------------------------------------------------------------------------
void drive_LED(unsigned char value);

//-----------------------------------------------------------------------------
// Module:   init_CPU
// Function: Initialization of CPU
//-----------------------------------------------------------------------------
void init_CPU (void)
{
// stop watchdog timer
  WDTM = 0x70;

//time gererator settings
  PCC = 0x00;			// set CPU time to fx
  PPCC = 0x00;

//  HSRCM = 0x00;			// high speed ring oscillator operates
  LSRCM = 0x01;			// low speed ring oscillator stops

  OSTS  = 0x00;			//shortest stabilisation time 2^10/fx

// interrupt setting
   IF0  = 0x00;
   IF1  = 0x00;
   MK0  = 0xFF;
   MK1  = 0xFF;
}

//-----------------------------------------------------------------------------
// Module:   init_LED
// Function: Initialization of LED ports
//-----------------------------------------------------------------------------
void init_LED (void)
{
  PMC2.3=0;           // set port mode control of P23 to port mode
  PM2.3=0;            // set port P23 to output mode -> LED1
  PM4.5=0;            // set port P45 to output mode -> LED3
  PM12.3=0;           // set port P123 to output mode -> LED4

  LED1=0;     	    // drive LED1
  LED2=0;	    // drive LED2
  LED3=0;           // drive LED3
  LED4=0;	    // drive LED4

  LED1=1;	    // switch LED1 off
  LED2=1;	    // switch LED2 off
  LED3=1;	    // switch LED3 off
  LED4=1;	    // switch LED4 off
}

//-----------------------------------------------------------------------------
// Module:   init_ADC
// Function: Initialization of AD converter
//-----------------------------------------------------------------------------
void init_ADC (void)
{
  PMC2.0=1;               //set alternate function mode
  PM2.0=1;                //set port to input mode

  ADIF = 0;                     //clear interrupt request flag
  ADMK = 0;                     //enable ADC interrupt
}

//-----------------------------------------------------------------------------
// Module:   init_UART
// Function: Initialization of UART6
//-----------------------------------------------------------------------------
void init_UART(void)
{

  PM4.4=1;            //input mode for RxD
  PM4.3=0;            //output mode for TxD
  P4.3=1;             //set TxD output to high level

  POWER6 = 1;               //enable internal clock operation

  ASIM6 |= 0xE5;            //enable transmission
                            //enable reception
                            //no parity
                            //character lenght of data = 8-bits
                            //number of stop bits = 1

#if BAUDRATE==9600          //initialization for baudrate = 9600
  CKSR6 = 0x02;
  BRGC6 = 104;
#elif BAUDRATE==38400       //initialization for baudrate = 38400
  CKSR6 = 0x00;
  BRGC6 = 104;
#elif BAUDRATE==115200      //initialization for baudrate = 115200
  CKSR6 = 0x00;
  BRGC6 = 35;
#endif
}

//-----------------------------------------------------------------------------
// Module:   init_TM80
// Function: Initialization of Timer80
//-----------------------------------------------------------------------------
void init_TM80(unsigned char interval)
{
   TCE80 = 0;                   // stop timer80
   TMC80 = 0x06;		// set input clock to fxp / 2^10 7.81Khz @ 8MHz
   CR80  = interval;		// set interval time
   TCE80 = 1;                   // start timer80
   TMIF80 = 0;                  // clear interrupt request flag
   TMMK80=0;                    // enable timer80 interrupt
}

//-----------------------------------------------------------------------------
// Module:   UART_SendChar
// Function: Send char via UART6
//-----------------------------------------------------------------------------

void UART_SendChar (unsigned char ucData)
{
    TXB6 = ucData;              // load UART transmit buffer
    while(!STIF6);              // wait for transmission finished
    STIF6=0;
}

//-----------------------------------------------------------------------------
// Module:   UART_GetChar
// Function: Get char from UART6
//-----------------------------------------------------------------------------

unsigned char UART_GetChar(void)
{
     unsigned char receive_byte;
     while(!SRIF6);               // wait for uart receive byte
     receive_byte = RXB6;         // load UART receive buffer
     SRIF6=0;
     return (receive_byte);
}

//-----------------------------------------------------------------------------
// Module:   UART_SendString
// Function: Send string via UART6
//-----------------------------------------------------------------------------
void UART_SendString (char *ucpStr)
{
    unsigned char ucData;
    while (1)
    {
       	ucData = (unsigned char)(*ucpStr++);	
	if(ucData) UART_SendChar (ucData);	
	else break;
    }
}

//-----------------------------------------------------------------------------
// Module:   UART_SendResult
// Function: Send measured result via UART6
//-----------------------------------------------------------------------------
void UART_SendResult(void)
{
    UART_SendString("Voltage = ");
    UART_SendChar(result10+0x30);
    UART_SendString(".");
    UART_SendChar(result1+0x30);
    UART_SendChar(result01+0x30);
    UART_SendString(" V\r");
    drive_LED(result10);
    result_out = 0;
}

//-----------------------------------------------------------------------------
// Module:   wait
// Function: generates a wait loop
//-----------------------------------------------------------------------------
__callt void wait(void)
{
  char a=0;
  while(a!=0xff)
  {
    a++;
  }
}

//-----------------------------------------------------------------------------
// Module:   main
// Function: main program
//-----------------------------------------------------------------------------
void main(void)
{
  DI();	// global interrupt disable

  init_CPU();                   // cpu initialization
  init_LED();			// led port initialization
  init_UART();			// uart60 initialization

  UART_SendString("***************************************\n\r");
  UART_SendString("*                                     *\n\r");
  UART_SendString("*         K_Line    78K0S/KA1+        *\n\r");
  UART_SendString("*                                     *\n\r");
  UART_SendString("*         Low Pin Count - Do it!      *\n\r");
  UART_SendString("*                                     *\n\r");
  UART_SendString("***************************************\n\n\r");
  UART_SendString("Press a key to start voltage measuring!\n\n\r");

  UART_GetChar();               // wait for uart receive byte

  UART_SendString("***************************************\n\n\r");

  init_ADC();			// adc initialization
  init_TM80(60);		// initialization of timer80

  EI(); 	// global interrupt enable

  while(1)
  {
    wait();
    if (result_out) UART_SendResult();
  }
}

//-----------------------------------------------------------------------------
// ISR: 	  isr_INTTM80
// Function: Interrupt service routine of Timer80
//-----------------------------------------------------------------------------
__interrupt void isr_INTTM80(void)
{
    ADCE = 1;                     //enable voltage generator
    ADS  = 0x00;                  //AD channel select
    ADCS = 1;                     //start conversion
}

//-----------------------------------------------------------------------------
// ISR: 	  isr_INTADC
// Function: Interrupt service routine of ASD converter
//-----------------------------------------------------------------------------
__interrupt void isr_INTADC(void)
{
    unsigned short result;
    unsigned char temp;

    result = ADCRH;              //load AD conversion result
    ADCS = 0;                    //stop AD converter
    ADCE = 0;                    //disable voltage generator

    result=result<<1;            //convert AD result for
    result10 = result/100;       //decimal output
    result1  = result%100;       //
    temp = result1;              //
    result1  = result1/10;       //
    result01   = temp % 10;      //
    result_out = 1;              //
}

//-----------------------------------------------------------------------------
// Module:   drive_LED
// Function: Output of 4-bit value to LED port
//-----------------------------------------------------------------------------
void drive_LED(unsigned char value)
{
  LED1 =~(value>>3);
  LED2 =~(value>>2);
  LED3 =~(value>>1);
  LED4 =~(value);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆.com| 韩国一区二区视频| 在线观看日韩一区| 亚洲国产一区二区三区| 欧美日韩黄色影视| 日韩av网站在线观看| 欧美精品一区二区三区在线| 国产一区二区三区在线观看精品| 久久色中文字幕| 99这里都是精品| 一区二区三区**美女毛片| 欧美绝品在线观看成人午夜影视 | 国产亚洲综合性久久久影院| 国产精品资源网| 中文字幕日韩一区二区| 欧美日韩在线观看一区二区| 日日夜夜一区二区| 日韩三级伦理片妻子的秘密按摩| 国产一区二区福利| 伊人夜夜躁av伊人久久| 欧美日韩亚洲综合| 国产精品 欧美精品| 亚洲狼人国产精品| 日韩三级精品电影久久久| 国产成都精品91一区二区三| 亚洲综合免费观看高清完整版| 日韩三级视频在线看| 99精品在线观看视频| 日本不卡123| 日韩一区有码在线| 日韩视频一区二区| 91女人视频在线观看| 免费成人av在线播放| 国产精品国产三级国产aⅴ入口| 91久久精品一区二区三| 久久99国产精品久久99果冻传媒| 国产精品久久久久久久久免费桃花| 欧美日韩一本到| 高清成人在线观看| 日韩电影在线一区二区| 亚洲品质自拍视频| 国产日韩精品一区二区三区在线| 欧美最猛黑人xxxxx猛交| 国产精品1区2区3区在线观看| 亚洲午夜av在线| 国产精品免费视频观看| 欧美成人在线直播| 欧美午夜不卡视频| www.亚洲在线| 国产揄拍国内精品对白| 日韩精品视频网站| 亚洲国产日产av| 一区在线观看视频| 国产亚洲美州欧州综合国| 在线电影国产精品| 欧美无乱码久久久免费午夜一区| 国产ts人妖一区二区| 日本va欧美va精品发布| 夜夜嗨av一区二区三区网页| 日本一区二区视频在线| 精品乱码亚洲一区二区不卡| 欧美丝袜丝nylons| 91美女福利视频| 白白色亚洲国产精品| 成人激情校园春色| 国产白丝精品91爽爽久久| 国产精品一区二区在线播放| 久久国产日韩欧美精品| 麻豆一区二区三| 免费人成黄页网站在线一区二区| 亚洲第一福利视频在线| 亚洲一区精品在线| 午夜av电影一区| 视频一区在线播放| 日本va欧美va精品| 美女一区二区久久| 精品一区二区久久| 美日韩黄色大片| 国产真实乱偷精品视频免| 国精品**一区二区三区在线蜜桃| 久久成人久久鬼色| 国产乱人伦精品一区二区在线观看| 另类小说综合欧美亚洲| 国产一区二区电影| 成人激情黄色小说| 94-欧美-setu| 欧美性生活一区| 欧美男女性生活在线直播观看| 精品视频1区2区| 日韩一二三区不卡| 久久久久久久久久美女| 欧美激情一区二区在线| 亚洲视频一区在线| 夜色激情一区二区| 日本91福利区| 国产成人综合自拍| 色菇凉天天综合网| 在线电影国产精品| 国产日产欧美一区二区三区 | 国产精品欧美精品| 国产精品初高中害羞小美女文| 亚洲人成精品久久久久久 | 欧美不卡在线视频| 久久精品免视看| 一区二区三区四区视频精品免费 | 欧美午夜精品电影| 欧美一区二区三区系列电影| 精品捆绑美女sm三区| 中文字幕一区二区视频| 亚洲第一精品在线| 国产精品一区在线观看乱码| 97国产一区二区| 日韩欧美国产三级电影视频| 中文字幕欧美区| 亚洲成人黄色影院| 在线成人av影院| 国产午夜精品美女毛片视频| 亚洲少妇30p| 免费在线观看一区| 国产成人av在线影院| 欧美性色欧美a在线播放| 欧美顶级少妇做爰| 亚洲三级在线看| 日本色综合中文字幕| www.色综合.com| 日韩欧美一区二区不卡| 亚洲日本电影在线| 国产精品一区二区在线播放| 精品视频123区在线观看| 国产精品女上位| 韩国v欧美v日本v亚洲v| 在线观看不卡视频| 国产亚洲一区二区三区在线观看 | 国产丝袜欧美中文另类| 五月激情综合色| 97国产精品videossex| 久久久久久久网| 日韩不卡手机在线v区| 91麻豆精品秘密| 国产日韩一级二级三级| 久久精品国产成人一区二区三区| 99精品在线观看视频| 久久久久久免费毛片精品| 日韩高清一区在线| 欧美视频在线不卡| 亚洲蜜臀av乱码久久精品蜜桃| 久久99精品久久只有精品| 7777精品伊人久久久大香线蕉完整版 | 亚洲成人激情自拍| 91蝌蚪国产九色| 中文字幕 久热精品 视频在线| 激情五月播播久久久精品| 欧美男女性生活在线直播观看| 一区二区三区成人| 91福利精品第一导航| 国产精品不卡一区二区三区| 国产激情视频一区二区三区欧美 | 精品处破学生在线二十三| 日本午夜一本久久久综合| 欧美日韩激情一区二区三区| 亚洲综合色视频| 欧美丝袜自拍制服另类| 亚洲国产一区二区在线播放| 欧美最猛性xxxxx直播| 亚洲综合无码一区二区| 色婷婷国产精品| 亚洲综合在线第一页| 欧美日韩在线免费视频| 亚洲成人高清在线| 欧美一区二区视频在线观看| 日本不卡不码高清免费观看| 日韩精品中文字幕一区二区三区| 日本中文一区二区三区| 欧美一区二区私人影院日本| 亚洲第一福利视频在线| 欧美日韩欧美一区二区| 午夜精彩视频在线观看不卡| 91精品国产一区二区三区香蕉 | 欧美成人精品1314www| 蜜臀av性久久久久蜜臀aⅴ流畅| 欧美一区二区精品久久911| 九九视频精品免费| 国产日本亚洲高清| 国产日韩精品视频一区| 成人开心网精品视频| 亚洲精选视频免费看| 91精品在线免费| 韩国视频一区二区| 国产精品午夜电影| 91极品美女在线| 午夜精品久久久久久久久| 日韩一区二区精品葵司在线 | 五月激情综合色| 欧美一区二区三区免费在线看 | 日本在线观看不卡视频| 久久蜜桃香蕉精品一区二区三区| 成人av在线网站| 五月激情综合色| 日本一区二区久久| 欧美日韩亚洲综合在线|