資源簡介
應用于本科畢設《室內有害氣體檢測系統的設計》,主要包括proteus仿真和C程序

代碼片段和文件信息
#include????
#include?
#define?ulong?unsigned?long
#define?uchar?unsigned?char
#define?uint?unsigned?int
#define?LCD1602_PORT?P1
#define??PCF8591?0x90????
#define??NOP()???_nop_()???
#define??_Nop()??_nop_()??
sbit?SCL=P2^1;???????
sbit?SDA=P2^0;???????
sbit?LCD1602_RS?=?P2^5; ?
sbit?LCD1602_RW?=?P2^4; ?
sbit?LCD1602_EN?=?P2^3;
bit?ack;?????
sbit?key1=?P0^4;
sbit?key2?=?P0^5;
sbit?buzz?=?P2^6;
int?g=50;
void?delay_ms(uint?n)
{
unsigned?int??ij;
for(i=0;i for(j=0;j<123;j++);
}
void?key()
{
key1?=?1;
delay_ms(50);
if(key1==0)g=g+1;
if(g>99)g==0;
key2?=?1;
delay_ms(50);
if(key2==0)g=g-1;
if(g<0)g==99;
}
????????????/*應答標志位*/
//?變量定義
uchar?AD_CHANNEL;
ulong?xdata??LedOut[8]; ??//單片機內部存取器
ulong??fvacj;
uchar?date;
//?函數申明?
extern?bit?ack; //起動總線函數
extern?void?Start_I2c(); //結束總線函數??
extern?void?Stop_I2c(); //應答子函數
extern?void?Ack_I2c(bit?a); //字節數據發送函數
extern?void??SendByte(uchar??c); //有子地址發送多字節數據函數???????????????
extern?bit?ISendStr(uchar?slauchar?subauchar?*suchar?no)?; //無子地址發送多字節數據函數???
extern?bit?ISendStrExt(uchar?slauchar?*suchar?no); //無子地址讀字節數據函數???????????????
extern?uchar?RcvByte();
void?LCD1602_delay_ms(uint?n);
void?LCD1602_write_com(uchar?com);
void?LCD1602_write_data(ulong?dat);
void?LCD1602_write_word(uchar?*s);
void?Init_LCD1602();
bit?ISendByte(uchar?slauchar?c);
uchar?IRcvByte(uchar?sla);
//MS延時函數(12M晶振下測試)
//寫指令
void?LCD1602_write_com(uchar?com)
{
LCD1602_RS?=?0; ?//1602液晶顯示屏的數據/命令選擇端置0數據/命令(H/L),此時選擇寫命令操作
delay_ms(1);
LCD1602_EN?=?1; ?//使能,也就是打開液晶接收數據命令的通道
LCD1602_PORT?=?com; ?//把命令送給P2口
delay_ms(1);
LCD1602_EN?=?0;
}
//寫數據
void?LCD1602_write_data(ulong?dat)
{
LCD1602_RS?=?1; ?//1602液晶顯示屏的數據/命令選擇端置0數據/命令(H/L),此時選擇寫數據操作
delay_ms(1);
LCD1602_PORT?=?dat; ?//把數據送給P2口
LCD1602_EN?=?1;
delay_ms(1);
LCD1602_EN?=?0;
}
//連續寫字符
void?LCD1602_write_word(uchar?*s)
{
while(*s>0)
{
LCD1602_write_data(*s);
s++;
}
}
//1602初始化函數
void?Init_LCD1602()
{
LCD1602_EN?=?0;
LCD1602_RW?=?0; //設置為寫狀態
LCD1602_write_com(0x38); //顯示模式設定
LCD1602_write_com(0x0c); //開關顯示、光標有無設置、光標閃爍設置
LCD1602_write_com(0x06); //寫一個字符后指針加一
LCD1602_write_com(0x01); //清屏指令
}
/*******************************************************************
?????????????????????起動總線函數???????????????
函數原型:?void??Start_I2c();??
功能:?????啟動I2C總線即發送I2C起始條件.??
********************************************************************/
void?Start_I2c()
{
??SDA=1;?????????/*發送起始條件的數據信號*/
??_Nop();
??SCL=1;
??_Nop();????????/*起始條件建立時間大于4.7us延時*/
??_Nop();
??_Nop();
??_Nop();
??_Nop();????
??SDA=0;?????????/*發送起始信號*/
??_Nop();????????/*?起始條件鎖定時間大于4μs*/
??_Nop();
??_Nop();
??_Nop();
??_Nop();???????
??SCL=0;???????/*鉗住I2C總線,準備發送或接收數據?*/
??_Nop();
??_Nop();
}
/*******************************************************************
??????????????????????結束總線函數??
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-04-23?19:56??仿真\
?????文件????????6376??2009-05-07?14:37??仿真\STARTUP.A51
?????文件???????14052??2018-01-09?21:54??仿真\STARTUP.LST
?????文件?????????749??2018-01-09?21:54??仿真\STARTUP.OBJ
?????文件???????16945??2018-01-09?21:54??仿真\szdyb
?????文件???????14613??2018-01-09?21:54??仿真\szdyb.LST
?????文件???????20445??2018-01-09?21:54??仿真\szdyb.M51
?????文件???????17980??2018-01-09?21:54??仿真\szdyb.OBJ
?????文件????????1141??2018-01-09?21:54??仿真\szdyb.build_log.htm
?????文件????????8354??2018-01-09?21:54??仿真\szdyb.c
?????文件????????3916??2018-01-09?21:54??仿真\szdyb.hex
?????文件??????????58??2018-01-09?21:54??仿真\szdyb.lnp
?????文件?????????185??2017-03-02?11:17??仿真\szdyb.plg
?????文件???????70952??2018-01-09?21:54??仿真\szdyb.uvgui.admin
?????文件????????5985??2018-01-09?14:05??仿真\szdyb.uvopt
?????文件???????14016??2018-01-09?14:05??仿真\szdyb.uvproj
?????文件???????57272??2017-03-02?11:16??仿真\szdyb_uvopt.bak
?????文件???????????0??2016-12-01?09:08??仿真\szdyb_uvproj.bak
?????目錄???????????0??2018-04-23?19:56??仿真\仿真\
?????文件???????24949??2018-04-17?20:22??仿真\仿真\Backup?Of?實訓板仿真.pdsbak
?????文件??????141438??2018-01-09?19:54??仿真\仿真\Last?Loaded?實訓板仿真.DBK
?????文件???????24949??2018-04-17?20:55??仿真\仿真\Last?Loaded?實訓板仿真.pdsbak
?????文件?????????768??2018-01-09?21:54??仿真\仿真\實訓板仿真.PWI
?????文件???????25349??2018-04-23?15:06??仿真\仿真\實訓板仿真.pdsprj
?????文件????????2196??2018-04-23?15:28??仿真\仿真\實訓板仿真.pdsprj.PC201610261759.Administrator.workspace
- 上一篇:opencv 3.1.0 自帶例程介紹
- 下一篇:基于單片機的洗衣機控制系統設計
評論
共有 條評論