資源簡(jiǎn)介
項(xiàng)目名稱是簡(jiǎn)易溫度測(cè)量C語(yǔ)言編程,利用C語(yǔ)言編寫(xiě)控制程序,控制溫度傳感器檢測(cè)溫度,并在液晶屏上顯示溫度。
代碼片段和文件信息
???#include?
#include
sbit?RS?=?P1^2;???//定義端口?
sbit?RW?=?P1^1;
sbit?EN?=?P1^0;
sbit?DQ=P1^6;
sbit?FMQ=P1^5;
sbit?SCL=?P3^6;
sbit?SDA=?P3^7;
sbit?P22=P2^2;?//將?P14位定義為?P1.4引腳
sbit?P23=P2^3;?//將?P15位定義為?P1.5引腳
sbit?P24=P2^4;?//將?P16位定義為?P1.6引腳
sbit?P25=P2^5;?//將?P17位定義為?P1.7引腳 ???
#define?RS_CLR?RS=0?
#define?RS_SET?RS=1
#define?RW_CLR?RW=0?
#define?RW_SET?RW=1?
#define?EN_CLR?EN=0
#define?EN_SET?EN=1
#define?DataPort?P0
#define?uint?unsigned?int
#define?uchar?unsigned?char
?typedef?unsigned?int?u16; ??//對(duì)數(shù)據(jù)類型進(jìn)行聲明定義
uchar?key;
uchar?data?b[8];
int?num1=50;//上限溫度定義
int?num2=20; ?//下限溫度定義
int?num3=50;//上限溫度定義
int?num4=10; ?//下限溫度定義?
??/*----------------------------------------------
??????????????延時(shí)函數(shù)
------------------------------------------------*/
void?DelayUs2x(unsigned?char?t)
{???
?while(t--);
}
void?DelayMs(unsigned?char?t)
{
??while(t--)
?{
?????//大致延時(shí)1mS
?????DelayUs2x(245);
?DelayUs2x(245);
?}
}
/*----------------------------------------------
??????????????LCD液晶顯示程序
------------------------------------------------*/
?bit?LCD_Check_Busy(void)????//判忙函數(shù)
?{?
???DataPort=?0xFF;?
???RS_CLR;?
???RW_SET;?
???EN_CLR;?
???_nop_();?
???EN_SET;
???return?(bit)(DataPort?&?0x80);
?}
/*****************寫(xiě)入命令函數(shù)******************/
?void?LCD_Write_Com(unsigned?char?com)?
?{??
???while(LCD_Check_Busy());?//忙則等待
???RS_CLR;?
???RW_CLR;?
???EN_SET;?
???DataPort=?com;?
???_nop_();?
???EN_CLR;
?}
/******************寫(xiě)入數(shù)據(jù)函數(shù)******************/
?void?LCD_Write_Data(unsigned?char?Data)?
?{?
???while(LCD_Check_Busy());?//忙則等待
???RS_SET;?
???RW_CLR;?
???EN_SET;?
???DataPort=?Data;?
???_nop_();
???EN_CLR;
?}
/******************清屏函數(shù)***********************/
?void?LCD_Clear(void)?
?{?
?LCD_Write_Com(0x01);?
?DelayMs(5);
?}
/************寫(xiě)入字符串函數(shù)************************/
?void?LCD_Write_String(unsigned?char?xunsigned?char?yunsigned?char?*s)?
?{?????
?if?(y?==?0)?
? {?????
?LCD_Write_Com(0x80?+?x);?????//表示第一行
? }
?else?
? {??????
? LCD_Write_Com(0xC0?+?x);??????//表示第二行
? }????????
?while?(*s)?
? {?????
?LCD_Write_Data(?*s);?????
?s?++;?????
? }
?}
/*******************寫(xiě)入字符函數(shù)?*******************/?
?void?LCD_Write_Char(unsigned?char?xunsigned?char?yunsigned?char?Data)?
?{?????
?if?(y?==?0)?
? {?????
? LCD_Write_Com(0x80?+?x);?????
? }????
?else?
? {?????
? LCD_Write_Com(0xC0?+?x);?????
? }????????
?LCD_Write_Data(?Data);??
?}
/**************?LCD初始化函數(shù)?**************/
??void?LCD_Init(void)?
?{
???LCD_Write_Com(0x38);????/*顯示模式設(shè)置*/?
???DelayMs(5);?
???LCD_Write_Com(0x38);?
???DelayMs(5);?
???LCD_Write_Com(0x38);?
???DelayMs(5);?
???LCD_Write_Com(0x38);??
???LCD_Write_Com(0x08);????/*顯示關(guān)閉*/?
???LCD_Write_Com(0x01);????/*顯示清屏*/?
???LCD_Write_Com(0x06);????/*顯示光標(biāo)移動(dòng)設(shè)置*/?
???DelayMs(5);?
???LCD_Write_Com(0x0C);????/*顯示開(kāi)及光標(biāo)設(shè)置*/
???}????
? ?
??/*------------------------------------------------
- 上一篇:飛機(jī)訂票系統(tǒng)
- 下一篇:逆時(shí)偏移小程序
評(píng)論
共有 條評(píng)論