资源简介
蓝桥杯单片机设计与开发————蓝桥杯赛题练习——AD转换
1.完成模数转换,将数据转换成电压在LED或LCD上显
2.超限(上限3V,下限2V)声光报警。
3.利用按键可以设定上下限报警值,并将上下限存储在EEPROM中。
代码片段和文件信息
/*
程序说明: IIC总线驱动程序
软件环境: Keil uVision 4.10
硬件环境: CT107单片机综合实训平台 8051,12MHz
日 期: 2011-8-9
*/
#include “iic.h“
#define somenop Delay5us();
#define SlaveAddrW 0xA0
#define SlaveAddrR 0xA1
//总线引脚定义
sbit SDA = P2^1; /* 数据线 */
sbit SCL = P2^0; /* 时钟线 */
//总线启动条件
void IIC_Start(void)
{
SDA = 1;
SCL = 1;
somenop;
SDA = 0;
somenop;
SCL = 0;
}
//总线停止条件
void IIC_Stop(void)
{
SDA = 0;
SCL = 1;
somenop;
SDA = 1;
}
//应答位控制
void IIC_Ack(bit ackbit)
{
if(ackbit)
{
SDA = 0;
}
else
{
SDA = 1;
}
somenop;
SCL = 1;
somenop;
SCL = 0;
SDA = 1;
somenop;
}
//等待应答
bit IIC_WaitAck(void)
{
SDA = 1;
somenop;
SCL = 1;
somenop;
if(SDA)
{
SCL = 0;
IIC_Stop();
return 0;
}
else
{
SCL = 0;
return 1;
}
}
//通过I2C总线发送数据
void IIC_SendByte(unsigned char byt)
{
unsigned char i;
for(i=0;i<8;i++)
{
if(byt&0x80)
{
SDA = 1;
}
else
{
SDA = 0;
}
somenop;
SCL = 1;
byt <<= 1;
somenop;
SCL = 0;
}
}
//从I2C总线上接收数据
unsigned char IIC_RecByte(void)
{
unsigned char da;
unsigned char i;
for(i=0;i<8;i++)
{
SCL = 1;
somenop;
da <<= 1;
if(SDA)
da |= 0x01;
SCL = 0;
somenop;
}
return da;
}
uchar PCF8591_ad(uchar addr)
{
uchar date;
IIC_Start();
IIC_SendByte(0x90);
IIC_WaitAck();
IIC_SendByte(addr);
IIC_WaitAck();
IIC_Stop();
IIC_Start();
IIC_SendByte(0x91);
IIC_WaitAck();
date=IIC_RecByte();
IIC_Ack(0);
IIC_Stop();
return date;
}
void PCF8591_da(uchar date)
{
IIC_Start();
IIC_SendByte(0x90);
IIC_WaitAck();
IIC_SendByte(0x40);
IIC_WaitAck();
IIC_SendByte(date);
IIC_WaitAck();
IIC_Stop();
}
uchar AT89C51_read(uchar addr)
{
uchar date;
IIC_Start();
IIC_SendByte(0xa0);
IIC_WaitAck();
IIC_SendByte(addr);
IIC_WaitAck();
IIC_Stop();
IIC_Start();
IIC_SendByte(0xa1);
IIC_WaitAck();
date=IIC_RecByte();
IIC_Ack(0);
IIC_Stop();
return date;
}
void AT89C51_write(uchar addrdate)
{
IIC_Start();
IIC_SendByte(0xa0);
IIC_WaitAck();
IIC_SendByte(addr);
IIC_WaitAck();
IIC_SendByte(date);
IIC_WaitAck();
IIC_Stop();
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-03-08 19:32 AD转换\
目录 0 2019-03-08 19:32 AD转换\library\
文件 2343 2019-03-06 22:35 AD转换\library\iic.c
文件 388 2019-03-06 22:35 AD转换\library\iic.h
目录 0 2019-03-08 19:32 AD转换\main\
文件 1312 2019-03-06 22:08 AD转换\main\common.lst
文件 28898 2019-03-06 22:53 AD转换\main\ex.m51
文件 32835 2019-03-06 22:54 AD转换\main\ex.plg
文件 60417 2019-03-07 15:22 AD转换\main\ex.uvopt
文件 14706 2019-03-06 22:58 AD转换\main\ex.uvproj
文件 60420 2019-03-06 22:58 AD转换\main\ex_uvopt.bak
文件 6863 2019-03-06 22:35 AD转换\main\iic.lst
文件 1701 2019-03-06 22:08 AD转换\main\interrupt.lst
文件 2021 2019-03-06 22:08 AD转换\main\key.lst
文件 1630 2019-03-06 22:53 AD转换\main\main.c
文件 221 2019-03-06 22:08 AD转换\main\main.h
文件 3925 2019-03-06 22:53 AD转换\main\main.LST
文件 1984 2019-03-06 22:08 AD转换\main\nixie.lst
文件 6376 2009-05-07 14:37 AD转换\main\STARTUP.A51
文件 14083 2019-03-06 20:28 AD转换\main\STARTUP.LST
目录 0 2019-03-08 19:32 AD转换\output\
文件 4801 2019-03-06 22:08 AD转换\output\common.obj
文件 132 2019-03-06 22:08 AD转换\output\common.__i
文件 44564 2019-03-06 22:53 AD转换\output\ex
文件 4821 2019-03-06 22:53 AD转换\output\ex.hex
文件 223 2019-03-06 22:53 AD转换\output\ex.lnp
文件 167 2019-03-08 19:32 AD转换\output\ex.plg
文件 12969 2019-03-06 22:35 AD转换\output\iic.obj
文件 124 2019-03-06 22:35 AD转换\output\iic.__i
文件 6421 2019-03-06 22:08 AD转换\output\interrupt.obj
文件 141 2019-03-06 22:08 AD转换\output\interrupt.__i
............此处省略22个文件信息
- 上一篇:Excel数据透视表全攻略_全套共60课
- 下一篇:51单片机 啤酒生产线计数器
相关资源
- 51单片机 啤酒生产线计数器
- TDK5110中文版
- 基于51和hx711的电子秤
- 51单片机和1602显示18b20温度报警系统
- 51单片机 CH452驱动数码管,按键,按键
- 89C51汽车防盗报警设计
- 51单片机多任务的切换和堆栈的保护
- 基于51单片机的的电子密码锁设计.r
- 51单片机实现温度检测数码管显示,控
- 51单片机蜂鸣器音乐盒程序代码
- 基于51开发板的温度报警闹钟按键控制
- 51单片机8位抢答器源程序
- 基于51单片机指纹解锁设计程序
- 数据结构课程设计报告模板计051-计
- 基于51单片机的智能小车循迹寻迹避障
- 51单片机例程1602显示秒表
- 基于51单片机的俄罗斯方块
- 基于51单片机音乐彩灯
- 51单片机测距报警.rar
- 单片机实现密码锁(1602显示)_带设置
- 基于51单片机的智能垃圾桶V4.01.docx
- 基于51单片机的温度显示报警系统
- 51单片机室温 体温测量
- 基于51单片机的ds18b20温度传感器实现
- 基于51单片机的温度报警系统
- 基于51单片机矩阵按键电子琴设计-完
- 佳能5185彩色复印模糊故障解决两例
- GB35114分析文档
- 基于51单片机的水箱水位检测系统.r
- 基于单片机的无线多路温度传输
评论
共有 条评论