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

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

?? banking.c

?? UPSD單片機(jī)驅(qū)動(dòng)程序
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
/*------------------------------------------------------------------------------
banking.c

Version: 
November 23, 2004 Version 2.0 - This is the initial release of the banking demo
for the DK3300-ELCD board.

Description:
This is the banking demo for the uPSD33xx.  This demo is composed of four Demo 
Applications (PWM-ADC, I2C-RTC, Banking and Benchmark) and makes use of the 
Encoder located on the DK boards to select the various menus and control the 
demo.  

This demo is an adaption of the banking demo that runs on the original DK3300 
(that has a 2 line x 16 character dot matrix LCD).  The changes are mainly 
related to the device driver for the enhanced LCD (ELCD) and storage of the 
Tamper Event records in the RTC RAM instead of the SPI EEPROM.  Also added to 
the demo is an option to select whether it runs with English or Chinese 
messages.  


Hardware Platform:
DK3300-ELCD


Copyright (c) 2004 STMicroelectronics Inc.

This example demo code is provided as is and has no warranty,
implied or otherwise.  You are free to use/modify any of the provided
code at your own risk in your applications with the expressed limitation
of liability (see below) so long as your product using the code contains
at least one uPSD products (device).

LIMITATION OF LIABILITY:   NEITHER STMicroelectronics NOR ITS VENDORS OR 
AGENTS SHALL BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF USE, LOSS OF DATA,
INTERRUPTION OF BUSINESS, NOR FOR INDIRECT, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES OF ANY KIND WHETHER UNDER THIS AGREEMENT OR
OTHERWISE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
------------------------------------------------------------------------------*/
#include "upsd3300.h"
#include "upsd3300_hardware.h"
#include "upsd3300_adc.h"
#include "upsd3300_timer.h"
#include "upsd3300_lcd.h"
#include "upsd3300_pca-pwm.h"
#include "upsd3300_i2c.h"
#include "st87.h"
#include "encoder.h"

#include "math.h"
#include "key.h"
#include "intrins.h"

unsigned int benchmark(void);   // external proto type definition for assembly benchmark routine

unsigned char idata  msg_buff[20];
xdata PSD_REGS PSD_reg _at_ PSD_REG_ADDR; 
extern xdata unsigned char i2c_xmit_buf[256];
extern xdata unsigned char i2c_rcv_buf[256];
extern Time st87;
unsigned char idata flag = 0;
extern void STname(void);

void init_msgbuff(unsigned char *dataptr, unsigned char *buffptr)
{
   unsigned char i;
   unsigned char code * temp_add;
   unsigned char src_code;
   unsigned char * dest_add;
   
   for (i=0; i<20; i++)
   {
      temp_add =  (unsigned char code*) (dataptr + i);    // get message byte
      src_code =  *  temp_add;
      dest_add = (unsigned char *) (buffptr + i);         // put message byte
      * dest_add = src_code;
   }
}

// Display selected item in main menu based on Menu_Index
void Show_Menu(unsigned char m_Menu_Index)
{
   lcd_clear();
   switch(m_Menu_Index)
   {
   case 0:
      printfLCD(">PWM/ADC  I2CRTC" );
      printfLCD("\n Banking  Bench\n" );
   break;
   case 1:
      printfLCD(" PWM/ADC >I2CRTC" );
      printfLCD("\n Banking  Bench\n" );
   break;
   case 2:
      printfLCD(" PWM/ADC  I2CRTC" );
      printfLCD("\n Banking >Bench\n" );
   break;
   case 3:
      printfLCD(" PWM/ADC  I2CRTC" );
      printfLCD("\n>Banking  Bench\n" );
   break;
   }
}

void Show_Menu2(unsigned char m_Menu_Index)
{
	lcd_clear();
	switch(m_Menu_Index)
	{
	case 0:

		printfLCD(">  ENGLISH" );
		printfLCD("\n    中文" );
		flag = 1;
	
	break;
	case 1:
	
		printfLCD("   ENGLISH" );
		ulayer = 3;
		ucol = 0;
	
	printfLCD(">   中文" );
		flag =0;
	break;
	}
}

void Tamper_check()
{
	unsigned char Tamper_sum,Tamper_No;
	signed char Menu_Index;
	unsigned char temp,temp_Dir = 0;

	if((ST87_tamper_check())==1)
	{
        lcd_clear();
		if(flag)
		{
        	printfLCD("New Tamper event" );
    		printfLCD("\n--record saved--" );
		}
		else
	 	{
			printfLCD("新觸發(fā)事件" );
    		printfLCD("\n--已記錄--" );
	 	}
		ST87_tamper_save();
		delay_1sec();
		delay_1sec();

        lcd_clear();
		if(flag)
		{
       		printfLCD("Turn Enc. to see" );
        	printfLCD("\nTamper Records" );
		}
		else
		 {
			printfLCD("轉(zhuǎn)動(dòng)編碼器查看" );
        	printfLCD("\n觸發(fā)記錄" );
	 	}
		delay_1sec();
		delay_1sec();
		delay_1sec();
			
		i2c_xmit_buf[0] = 0x20;		// Setup ST87 start address
		Turbo_i2c_MX (0xD0,1);		// send 1 bytes for st87: addr 0xD0, @ 0x00
	 	Turbo_i2c_MR (0xD0,2);	    // Read address 0x0F for check TB1 and TB2 bits   
		Tamper_sum=i2c_rcv_buf[0];
		Tamper_No=i2c_rcv_buf[1];

		if(Tamper_sum>Tamper_No)temp=Tamper_sum;
		else temp=Tamper_No;
		Menu_Index=0;
		ST87_tamper_Show(Menu_Index);
	
		temp_Dir = 0; 
		while(temp_Dir!=3) 
		{
			temp_Dir=Polling_Encoder();
			if(temp_Dir==2)	
			{
				Menu_Index++;
				if(Menu_Index>=temp)Menu_Index=0;
				ST87_tamper_Show(Menu_Index);
			}
			else if(temp_Dir==1)
			{
				Menu_Index--;
				if(Menu_Index<0)Menu_Index=temp-1;
				ST87_tamper_Show(Menu_Index);
			}
				
			PSD_reg.DIRECTION_B|=0x80;
			PSD_reg.DATAOUT_B|=0x80;
			PSD_reg.DIRECTION_B&=0x7F;	// IN direction
		}
        lcd_clear();
	}
}


// Main Program

main()
{  
   unsigned char temp_Dir =0;
   unsigned char event, k, ADC_channel;
   signed char Menu_Index;
   unsigned int ADC_result;
   unsigned char tmp;
   unsigned int end_time, delta_time, mips, instr, ns_T0, T0_clks, instructions; 

   PSD_reg.VM |= 0x80;                       //Enable peripheral I/O
   timer0_init(); 
   ADC_Init(7);
   lcd_init();  
   lcd_clear();    
   printfLCD("DK3300-ELCD Demo");      
   printfLCD("\nV2.0 Turbo uPSD");
   delay_1sec();
   delay_1sec();
   delay_1sec();
   lcd_clear();               
   printfLCD("Turn Encoder R/L");                     
   printfLCD("\nPress to Select");
   delay_1sec();
   delay_1sec();
   delay_1sec();
   
//------------------------------------------------------------------------------
Menu_Index=0;
	PSD_reg.OMC_AB&=0xF8;
	PSD_reg.OMC_AB|=0x04;
	Show_Menu2 (Menu_Index);
temp_Dir = 0;
	while(temp_Dir!=3)
	{
		temp_Dir=Polling_Encoder();
		if(temp_Dir==2)
		{
				Menu_Index++;
				if(Menu_Index==2)Menu_Index=0;
				Show_Menu2 (Menu_Index);
		}
		else if(temp_Dir==1)
		{
				Menu_Index--;
				if(Menu_Index==-1)Menu_Index=1;
				Show_Menu2 (Menu_Index);
		}
		
		PSD_reg.DIRECTION_B|=0x80;
		PSD_reg.DATAOUT_B|=0x80;
		PSD_reg.DIRECTION_B&=0x7F;	// IN direction
		
	}
//----------------------------------------------------------------------------------------

RESTART:
	//-----Waiting user select a demo to run-----------------------------------------
	//	use OMC_AB[0,1] as a 2-bit counter to identify running of Encoder
	//	use OMC_AB[2] as a running direction indication of Encoder
	//-------------------------------------------------------------------------------
	Menu_Index=0;
	PSD_reg.OMC_AB&=0xF8;
	PSD_reg.OMC_AB|=0x04;
	Show_Menu (Menu_Index);

	temp_Dir = 0;
	while(temp_Dir!=3)
	{
		temp_Dir=Polling_Encoder();
		if(temp_Dir==2)
		{
				Menu_Index++;
				if(Menu_Index==4)Menu_Index=0;
				Show_Menu (Menu_Index);
		}
		else if(temp_Dir==1)
		{
				Menu_Index--;
				if(Menu_Index==-1)Menu_Index=3;
				Show_Menu (Menu_Index);
		}
		
		PSD_reg.DIRECTION_B|=0x80;
		PSD_reg.DATAOUT_B|=0x80;
		PSD_reg.DIRECTION_B&=0x7F;	// IN direction
		
	}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品在线麻豆| 欧美高清视频在线高清观看mv色露露十八| 亚洲欧美另类小说| 91精品福利在线一区二区三区| 成人午夜精品在线| 麻豆成人免费电影| 亚洲欧美色一区| 国产亚洲欧洲997久久综合 | 奇米影视7777精品一区二区| 国产精品国产三级国产| 2022国产精品视频| 欧美日本视频在线| 91碰在线视频| 东方欧美亚洲色图在线| 日韩av一区二区在线影视| 亚洲私人影院在线观看| 国产欧美精品国产国产专区| 欧美一区二区在线看| 在线看日本不卡| 成人国产精品免费观看视频| 精品一区二区三区视频| 日韩电影网1区2区| 亚洲成av人片一区二区| 一区二区三区在线播| 国产精品美女久久久久久久网站| 日韩视频一区二区| 91精品福利在线一区二区三区| 欧美在线免费视屏| 欧美在线播放高清精品| 99久久精品国产网站| 粉嫩高潮美女一区二区三区| 国产在线日韩欧美| 九九精品一区二区| 老司机精品视频一区二区三区| 亚洲二区在线视频| 亚洲高清免费在线| 亚洲小说春色综合另类电影| 亚洲欧美偷拍卡通变态| 成人免费在线观看入口| 中文字幕在线不卡视频| 国产精品第五页| 亚洲男同性视频| 亚洲最大成人网4388xx| 亚洲一二三级电影| 午夜欧美视频在线观看| 亚洲一二三四久久| 性做久久久久久免费观看 | 国产成人av自拍| 国产成人精品三级| jlzzjlzz欧美大全| 色综合中文字幕国产 | 欧美系列在线观看| 欧美日本免费一区二区三区| 777亚洲妇女| 欧美第一区第二区| 国产欧美一区在线| 亚洲欧美日韩电影| 亚洲一区在线视频观看| 日韩精品国产欧美| 精品在线播放免费| 懂色av一区二区三区免费看| 91看片淫黄大片一级| 欧美视频完全免费看| 91精品国模一区二区三区| 日韩一区二区在线播放| 国产色产综合色产在线视频| 国产精品久久久久久久久动漫| 中文字幕一区二区三区视频| 一区二区在线免费观看| 免费的成人av| 高清在线成人网| 91官网在线免费观看| 欧美一区二区三区视频在线| 久久无码av三级| 亚洲丝袜制服诱惑| 日本不卡1234视频| 成人v精品蜜桃久久一区| 欧美午夜精品免费| 337p日本欧洲亚洲大胆精品| 亚洲人成人一区二区在线观看| 亚洲电影第三页| 国产一区二区三区在线观看精品 | 亚洲va韩国va欧美va精品| 日韩av一区二区三区四区| 成人午夜私人影院| 欧美高清视频不卡网| 欧美激情中文字幕一区二区| 亚洲午夜精品一区二区三区他趣| 狠狠色丁香久久婷婷综| 日本韩国欧美国产| 国产日韩欧美精品综合| 亚洲成人av电影在线| 成人av在线网| 日韩三级免费观看| 亚洲人成人一区二区在线观看 | 日本精品视频一区二区三区| 欧美精品一区二区三区蜜臀| 一区二区三区在线观看网站| 国产一区二区视频在线| 欧美日韩国产首页| 日韩一区在线看| 国内精品伊人久久久久av一坑| 91美女蜜桃在线| 国产欧美一区二区在线观看| 毛片基地黄久久久久久天堂| 一本色道久久综合狠狠躁的推荐| 欧美成人福利视频| 同产精品九九九| 94-欧美-setu| 国产日韩影视精品| 精品一区二区三区免费毛片爱 | 国产福利一区二区三区在线视频| 欧美三级欧美一级| 亚洲视频在线一区| 风间由美一区二区av101| 日韩精品一区二区三区视频在线观看 | 国产露脸91国语对白| 欧美精品tushy高清| 亚洲一区二区高清| 91色.com| 成人免费一区二区三区在线观看| 国产精品系列在线播放| 日韩精品在线网站| 麻豆精品一区二区三区| 在线播放视频一区| 亚洲v精品v日韩v欧美v专区| 欧美这里有精品| 亚洲综合激情网| 在线欧美小视频| 亚洲欧洲www| 本田岬高潮一区二区三区| 中文字幕精品一区二区精品绿巨人| 国产综合色在线视频区| 精品国产1区二区| 国产精品综合av一区二区国产馆| 欧美va亚洲va| 精品影视av免费| 精品久久久久久综合日本欧美 | 色婷婷综合久久| 亚洲人吸女人奶水| 在线免费观看日韩欧美| 亚洲电影在线免费观看| 欧美日韩久久一区二区| 午夜精品成人在线视频| 91精品国产91久久久久久一区二区| 免费看黄色91| 久久久精品一品道一区| 成人一区二区三区| 日韩美女啊v在线免费观看| 91蜜桃网址入口| 亚洲午夜日本在线观看| 欧美久久久久久蜜桃| 久久电影网站中文字幕| 久久精品视频免费| 成人美女在线视频| 亚洲精品高清视频在线观看| 欧美日韩久久久一区| 免费成人小视频| 国产欧美日韩不卡免费| 91在线国产观看| 亚洲成人在线免费| 欧美mv和日韩mv的网站| 粉嫩久久99精品久久久久久夜| 亚洲欧美综合色| 欧美日韩成人一区| 狠狠色狠狠色综合日日91app| 国产精品网友自拍| 欧美在线视频日韩| 国模一区二区三区白浆| 亚洲国产成人私人影院tom| 日本韩国欧美一区| 精品一区二区三区在线播放视频| 亚洲国产精品av| 欧美日本一区二区| 丁香激情综合国产| 天堂精品中文字幕在线| 久久久久久久久久久久久夜| 色狠狠桃花综合| 老司机一区二区| 亚洲欧美区自拍先锋| 精品久久久久久久人人人人传媒 | 亚洲美女淫视频| 91精品国产综合久久精品图片| 国产精品一品二品| 亚洲一级不卡视频| 日本一区二区视频在线观看| 欧美日韩国产一二三| 丁香六月综合激情| 日本不卡中文字幕| 最新不卡av在线| 欧美一级二级三级乱码| 91在线播放网址| 精品一区中文字幕| 图片区日韩欧美亚洲| 国产精品久久久久天堂| 日韩欧美一二三区| 在线观看不卡视频| 不卡视频在线看| 国产一区二区三区最好精华液| 亚洲小说欧美激情另类|