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

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

?? disp_drive.c

?? 在keil和proteus中實現兩片51單片機的通信。。。
?? C
字號:
/*
****************************************************

		顯示

****************************************************
*/
#include<rtx51tny.h>
#include <reg52.H>
#include "Typedef.H"
#include "Disp_drive.h"
#include "UserDef.H"


/* 端口定義 */
#define DISPDATAPORT	P0		//數據端口
sbit Pin_RS = P2^5;				//指令、數據選擇(0=指令;1=數據)
sbit Pin_RW = P2^6;				//讀寫選擇(0=寫,1=讀)
sbit Pin_E = P2^7;				//鎖存(下降沿有效)


/*  全局變量 */
static INT8U idata DispBuffer[2][MAXDISPLEN];		//顯示內容緩沖區
static INT8U idata DispPro[2][MAXDISPLEN];		//顯示屬性緩沖區
//顯示屬性定義
#define PRO_BLINK	(1<<1)	//閃爍


/***************************************

	LCD忙等待

****************************************/
void Busy(void)
	{
	INT8U bf;

	Pin_E = 0;
	DISPDATAPORT = 0xFF;	//使端口為輸入狀態
	Pin_RW = 1;				//讀
	Pin_RS = 0;				//指令

	while (1)
		{
		Pin_E = 1;
		bf = DISPDATAPORT;
		Pin_E = 0;
		if ((bf & 0x80) == 0)
			break;
		}
	}


/***************************************

	LCD數據寫

****************************************/
void LCD_Data(INT8U Data)
	{
	Busy();
	
	Pin_E = 0;
	Pin_RW = 0;		//寫
	Pin_RS = 1;		//數據

	Pin_E = 1;

	DISPDATAPORT = Data;

	Pin_E = 0;
	}

/***************************************

	LCD命令寫

****************************************/
void LCD_Cmd(INT8U cmd)
	{
	Busy();
	
	Pin_E = 0;
	Pin_RW = 0;		//寫
	Pin_RS = 0;		//指令

	Pin_E = 1;

	DISPDATAPORT = cmd;

	Pin_E = 0;
	}

/***************************************

	顯示掃描刷新程序

****************************************/
void DispRef(void)
	{
	static INT8U BlinkCnt = 0;		//閃爍顯示計數器
	static BOOLEAN BlinkStatus = 0;	//當前閃爍狀態
	INT8U n;

	/* 計算顯示閃爍狀態 */
	BlinkCnt ++;   							
	BlinkCnt %= T_BLINK;
	if (BlinkCnt == 0)
		BlinkStatus = !BlinkStatus;

	/* 若當前閃爍狀態=0且當前顯示位允許閃爍 */


	/* 輸出行0 */
	LCD_Cmd(0x80);
	for (n=0;n<MAXDISPLEN;n++)
		{
		if ((BlinkStatus == 0) && ((DispPro[0][n] & PRO_BLINK) != 0))
			LCD_Data(' ');
		else
			LCD_Data(DispBuffer[0][n]);
		}

	/* 輸出行1 */
	LCD_Cmd(0xC0);
	for (n=0;n<MAXDISPLEN;n++)
		{
		if ((BlinkStatus == 0) && ((DispPro[1][n] & PRO_BLINK) != 0))
			LCD_Data(' ');
		else
			LCD_Data(DispBuffer[1][n]);
		}
	}


/***************************************

	獲取整數的長度	

****************************************/
 INT8U GetIntLen(INT32U val)
	{
	INT8U len;

	len = 0;
	while (val != 0)
		{
		val /= 10;
		len ++;
		}

	if (len == 0)
		len = 1;

	return len;
	}



/***************************************

	顯示一個整數
	入口參數:整數數值,起始顯示位置,長度

****************************************/
void DispInt(INT32U val,INT8U row,INT8U col,INT8U len)
	{
	INT8U n,end;

   	end = col + len - 1;
	for (n=0;n<len;n++)
		{
		DispBuffer[row][end] = val % 10 + '0';
	
		DispPro[0][end] = 0;
		val /= 10;
		end --;
		}
	}


/***************************************

	顯示一個整數(可閃爍)
	入口參數:整數數值,起始顯示位置,長度

****************************************/
void DispInt_blink(INT32U val,INT8U row,INT8U col,INT8U len,BOOLEAN blink)
	{
	INT8U n,end;

   	end = col + len - 1;
	for (n=0;n<len;n++)
		{
		DispBuffer[row][end] = val % 10 + '0';

	if (blink == TRUE)
		DispPro[row][col+n] = PRO_BLINK;
	else
		DispPro[row][col+n] = 0; 
	//	DispPro[0][end] = 0;
		val /= 10;
		end --;
		}
	}






/***************************************

	顯示一個字符
	入口參數:字符,顯示位置,是否閃爍

****************************************/
void DispChr(INT8U cv,INT8U row,INT8U col,BOOLEAN blink)
	{
	DispBuffer[row][col] = cv;
	if (blink == TRUE)
		DispPro[row][col] = PRO_BLINK;
	else
		DispPro[row][col] = 0;
	}

/***************************************

	顯示一個字符串
	入口參數:字符串指針,顯示位置,是否閃爍

****************************************/
void DispStr(INT8U *str,INT8U row,INT8U col,BOOLEAN blink)
	{
	while ((*str)!=0)
		{
		DispBuffer[row][col] = *str;
		if (blink == TRUE)
			DispPro[row][col] = PRO_BLINK;
		else
			DispPro[row][col] = 0;

		str ++;
		col ++;
		}
	}

/***************************************

	顯示一個浮點數
	注:無超顯示范圍判斷
		使用全部的顯示區域

****************************************/
void DispFloat(float val,INT8U row,INT8U col,INT8U Len)
	{
	INT8U IntLen,n;
	INT32U iv,ivf;


	/* 符號位處理 */
	if (val < 0)
		{
		DispBuffer[row][col] = '-';
		val = -val;
		col ++;
		Len --;
		}
		
	/* 整數位數計算 */
	IntLen = GetIntLen((INT32U)val);	

	/* 整數部分 */
	iv = (INT32U)val;

	/*  */
	for (n=0;n<(Len-IntLen);n++)
		{
		val *= 10;
		}
	ivf = (INT32U)val;
	ivf += 5;
	ivf /= 10;

	/* 顯示整數部分 */
	DispInt(iv,row,col, IntLen);
	/* 顯示小數點 */
	DispChr('.',row,col+IntLen ,FALSE);
	/* 顯示小數部分 */
	for (n=0;n<(Len-IntLen-1);n++)
		{
		DispInt(ivf%10 , row , col + Len -n -1, 1);
		ivf /= 10;
		}

	/* 計算實際有效位數,去掉小數部分尾數的所有0 */
	n = col + Len - 1;
	while (n >= IntLen)
		{
		if (DispBuffer[row][n] != '0')
			{
			break;
			}
		DispBuffer[row][n] = ' ';
		n --;
		}
	}

/***************************************

	顯示清屏

****************************************/
void DispCls(void)
	{
	INT8U col,row;

	for (row=0;row<2;row++)
		{
		for (col=0;col<MAXDISPLEN;col++)
			{
			DispBuffer[row][col] = ' ';
			DispPro[row][col] = 0;
			}
		}
	}



/***************************************

	屏初始化

****************************************/
void DispInit(void)
	{

	LCD_Cmd(0x38);		//Function Set
						//data bus length = 1 (8 bits)
						//display lines = 1 (2 lines)
						//character font = 0(5x7 Dot Font)
		
	LCD_Cmd(0x06);		//Entry Mode Set
						//Sets DD RAM counter to increment

	LCD_Cmd(0x0C);		//Sets Display 
					
	LCD_Cmd(0x01);		//Clears Display
						//returns cursor to the Home Position (Address 00)
	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品ww久久久久久p站| 日韩一区二区三区电影| 中文字幕一区免费在线观看| 国产成人精品网址| 欧美激情在线看| 99久久精品免费| 一区二区在线观看不卡| 欧美日韩免费电影| 美女网站一区二区| 欧美激情一区二区三区不卡| 成年人国产精品| 亚洲亚洲精品在线观看| 欧美一区二区三区喷汁尤物| 国产一区二区主播在线| 亚洲欧美在线观看| 欧美日韩国产系列| 九九视频精品免费| 最新欧美精品一区二区三区| 欧美日韩一区二区三区在线看| 狠狠狠色丁香婷婷综合激情 | 成人午夜激情影院| 亚洲精品国产视频| 日韩一级成人av| 懂色av噜噜一区二区三区av| 亚洲欧美激情视频在线观看一区二区三区 | 国产精品美女久久久久高潮| 91蜜桃婷婷狠狠久久综合9色| 亚洲不卡av一区二区三区| 欧美r级在线观看| 色婷婷综合视频在线观看| 日韩中文字幕一区二区三区| 国产清纯白嫩初高生在线观看91 | 色哦色哦哦色天天综合| 日本va欧美va瓶| 国产精品福利在线播放| 欧美日韩在线直播| 成人午夜伦理影院| 男人的天堂亚洲一区| 国产精品成人免费| 精品国内片67194| 91久久精品国产91性色tv| 精品一二线国产| 亚洲国产精品一区二区www| 久久久国产精品麻豆| 欧美日韩国产乱码电影| 成人a级免费电影| 蜜臀精品一区二区三区在线观看| 国产精品国产精品国产专区不片| 日韩精品影音先锋| 欧美综合色免费| 成人精品免费看| 免费成人在线视频观看| 一区二区三区精品在线| 国产精品免费aⅴ片在线观看| 91精品国产一区二区人妖| 日本丶国产丶欧美色综合| 床上的激情91.| 精品一区二区免费在线观看| 婷婷激情综合网| 一个色妞综合视频在线观看| 国产精品美女久久久久久久网站| 2欧美一区二区三区在线观看视频| 欧美午夜理伦三级在线观看| 色综合天天综合网国产成人综合天| 国产精品 日产精品 欧美精品| 美日韩一级片在线观看| 日韩不卡一二三区| 亚洲成人av中文| 亚洲综合网站在线观看| 亚洲另类在线制服丝袜| 亚洲欧美日韩一区二区三区在线观看| 久久亚洲精华国产精华液 | 久久久美女艺术照精彩视频福利播放| 日韩午夜小视频| 欧美一区二区网站| 91精品国产福利| 日韩视频一区二区三区在线播放 | 免费成人av在线| 成人av第一页| 91一区二区在线| 欧洲精品一区二区| 欧美日韩一区二区在线视频| 欧美日本一区二区三区四区| 69久久夜色精品国产69蝌蚪网| 欧美三级欧美一级| 91精品福利在线一区二区三区| 91精品国产综合久久精品麻豆| 91精品国产福利| 精品国产成人系列| 国产精品日韩精品欧美在线| 国产精品福利电影一区二区三区四区| 中文天堂在线一区| 一区二区在线观看视频| 亚洲成人精品在线观看| 蜜臀va亚洲va欧美va天堂| 国产伦精品一区二区三区视频青涩| 国产又粗又猛又爽又黄91精品| 国产精品白丝av| 97国产一区二区| 欧美日韩国产一级| 欧美精品一区二区三区四区| 国产精品污www在线观看| 国产精品对白交换视频| 亚洲高清免费观看 | 精品一区二区三区视频在线观看| 国内精品写真在线观看| a在线播放不卡| 欧美男生操女生| 欧美成人官网二区| 亚洲日本在线a| 麻豆免费精品视频| 不卡的电视剧免费网站有什么| 欧美性猛片xxxx免费看久爱| 日韩精品一区二区三区在线| 中文字幕一区二区三| 日韩黄色免费电影| 成年人午夜久久久| 日韩免费观看高清完整版 | 不卡欧美aaaaa| 欧美一级欧美三级在线观看| 欧美国产成人在线| 日韩影院免费视频| 99re热视频这里只精品| 精品欧美久久久| 亚洲一区二区成人在线观看| 国产一区二区三区在线观看精品| 一本到不卡免费一区二区| 国产精品天干天干在观线| 日韩高清不卡一区二区三区| 成人精品小蝌蚪| 日韩美女主播在线视频一区二区三区| 国产精品久久久久久亚洲伦| 麻豆一区二区在线| 欧美自拍偷拍一区| 国产精品美女久久久久久久 | 国内偷窥港台综合视频在线播放| 欧洲一区二区三区在线| 国产清纯白嫩初高生在线观看91| 日韩极品在线观看| 欧美在线一二三四区| 中文字幕的久久| 精品一区二区免费看| 欧美日韩日日骚| 亚洲乱码国产乱码精品精小说| 国产九九视频一区二区三区| 91精品久久久久久久99蜜桃| 亚洲美女屁股眼交| www.欧美色图| 国产亚洲精品超碰| 久久国产精品无码网站| 69堂国产成人免费视频| 亚洲国产精品久久艾草纯爱| 99re视频精品| 国产精品久久一级| 顶级嫩模精品视频在线看| 久久综合九色综合97_久久久| 日本人妖一区二区| 91精品国产综合久久香蕉麻豆| 亚洲图片欧美综合| 欧美中文字幕亚洲一区二区va在线 | 日本欧美一区二区在线观看| 欧美午夜精品电影| 亚洲一区二区三区四区的| 色哟哟一区二区在线观看| 国产精品情趣视频| 成人av一区二区三区| 国产精品久久久久影院色老大| 国产一区二区导航在线播放| 精品国产一区久久| 国内精品伊人久久久久av一坑| 欧美电影免费观看高清完整版在 | 欧美午夜电影在线播放| 亚洲午夜在线观看视频在线| 色婷婷亚洲一区二区三区| 亚洲精品欧美二区三区中文字幕| 91麻豆蜜桃一区二区三区| 亚洲精品免费播放| 欧美日韩第一区日日骚| 午夜久久久久久久久| 91精品国产一区二区三区香蕉| 日韩经典中文字幕一区| 精品国产伦理网| 成人白浆超碰人人人人| 亚洲嫩草精品久久| 欧美日韩国产在线播放网站| 蜜臀久久久久久久| 久久精品日韩一区二区三区| 丁香另类激情小说| 一区二区三区在线不卡| 777欧美精品| 国产原创一区二区| 国产精品国产三级国产| 欧美熟乱第一页| 激情小说亚洲一区| 国产精品久久久一本精品| 在线精品视频小说1| 久久精品国产亚洲高清剧情介绍 | 国产精品激情偷乱一区二区∴| 色综合久久久久综合体桃花网| 图片区小说区国产精品视频|