dstemp.c

来自「一个通过打印机端口[378h]驱动lcd的程序. 并可通过ds1620测量温度,」· C语言 代码 · 共 82 行

C
82
字号
#include "lcdtemp.h"#include "dstemp.h"static int powerof2( int n ){	int i,res = 1;	for( i = 1 ; i < n ; i++ )		res *= 2;	return res;}void DS_DQ_HIGH(void){	LCD_RS_HIGH();}void DS_DQ_LOW(void){	LCD_RS_LOW();}void DS_CLK_HIGH(void){	unsigned char tmp = inb( PORTA + 2 );	outb( 0xF7 & tmp , PORTA + 2 );}void DS_CLK_LOW(void){	unsigned char tmp = inb( PORTA + 2 );	outb( 0X08 | tmp , PORTA + 2 );}void DS_RST_HIGH(void){	unsigned char tmp = inb( PORTA + 2 );	outb( 0X04 | tmp , PORTA + 2 );}void DS_RST_LOW(void){	unsigned char tmp = inb( PORTA + 2 );	outb( 0XFB & tmp , PORTA + 2 );}void DS_WRITECMD(unsigned char cmd){	DS_RST_HIGH();	int i;	for(i=0;i<8;i++)	{		DS_CLK_LOW();		if( cmd & 0x01 )			DS_DQ_HIGH();		else			DS_DQ_LOW();				DS_CLK_HIGH();		cmd >>=1 ;	}}int DS_READ(void){	DS_DQ_HIGH();	int i,res,data = 0;	for( i=0 ; i < 9 ; i++ )	{		DS_CLK_LOW();				res = inb( PORTA + 1 );		if( res & 0x40 )			data = data + powerof2(i);		DS_CLK_HIGH();		 	}	DS_RST_LOW();	return data;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?