资源简介
应用于本科毕设《室内有害气体检测系统的设计》,主要包括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 自带例程介绍
- 下一篇:基于单片机的洗衣机控制系统设计
相关资源
- 基于单片机的洗衣机控制系统设计
- Proteus仿真8086数码管显示
- 51单片机读取DS18b20数据加1602显示+pr
- 矩阵键盘程序基于proteus的设计与仿真
- 数电设计 数字电子时钟---proteus
- 单片机电子密码锁,1602显示,密码可
- 单片机驱动直流电机 proteus仿真+程序
- 基于WSN的PM2.5环境监测系统
- 基于8086的交通灯仿真 proteus电路图汇
- Proteus浮点数计算器8086仿真文件+源代
- 8086+8259+8255+8253
- 三星4510PCB图纸,protel格式
- 所有类型的SD卡,TF卡封装
- 51单片机控制16位流水灯有源代码与
- PROTEL鼠标辅助工具
- LabView模拟温度监测系统
- protel99se原创电路图PCB图 温湿度控制
- Protege新手入门教程(推理篇)
- 矩阵键盘简易计算器Keil+proteus仿真.
- 基于单片机at89c51的电子琴proteus仿真
- ARM基于LPC2124的温度控制系统Proteus仿真
- 解决在WIN10 64或WIN7 WIN8 安装protel99 S
- uCGUI+UCOS-II+LPC2138在proteus上的仿真-用
- 完美解决proteus仿真stm32
- 基于8086汇编语言的交通灯程序加pro
- 单片机 万年历 proteus
- 波形发生器proteus仿真程序
- 节日彩灯 proteus仿真程序
- proteus三相整流电路
- JTAG的封装库及演示
评论
共有 条评论