//ad转换子程序
//返回的是12位的int型数据
//max186通道ch0对应的是0,它是max186第1脚
//max186通道ch1对应的是1,它是max186第2脚
//max186通道ch2对应的是2,它是max186第3脚
//max186通道ch3对应的是3,它是max186第4脚
//max186通道ch4对应的是4,它是max186第5脚
//max186通道ch5对应的是5,它是max186第6脚
//max186通道ch6对应的是6,它是max186第7脚
//max186通道ch7对应的是7,它是max186第8脚
//比如:int ch3;
// ch3=ad186(3);
//ch3就是从max186的第4脚输入的模拟电压信号大小,单位是mv,如果此时max186的第4脚(ch4)——输//入1.000伏的电压,则返回0x3E8H(就是十进制的1000)。
//同理:ad186(4)表示的是从第5脚(即ch4)输入的信号。(参看附图)
uint ad186(uchar ss)
{
uchar i,kki,s;
uint i_data,i_datatransfer,addata;
switch(ss)
{
case 0: s=0x8E;break;
case 1: s=0xCE;break;
case 2: s=0x9E;break;
case 3: s=0xDE;break;
case 4: s=0xAE;break;
case 5: s=0xEE;break;
case 6: s=0xBE;break;
case 7: s=0xFE;break;
default: s=0xAE;break;
}
CS=1;
SCLK=0;
CS=0;
SCLK=0;
for(i=0;i<8;i++)
{
uchar adaddresstransfer;
adaddresstransfer=s;
adaddresstransfer=(adaddresstransfer>>(7-i))&0x01;
DIN=adaddresstransfer;
SCLK=1;
for(kki=0;kki<2;kki++);
SCLK=0;
}
CS=1;
for(i=0;i<6;i++);
CS=0;
SCLK=1;
for(i=0;i<12;i++)
{
SCLK=1;
SCLK=0;
i_datatransfer=DOUT;
i_datatransfer=i_datatransfer<<(11-i);
i_data=i_data|i_datatransfer;
}
addata=i_data;
for(i=0;i<4;i++)
{
SCLK=1;
SCLK=0;
}
CS=1;
i_data=i_datatransfer=0;
delay(5);
return(addata);
}
关键字:51单片机 读写max186
引用地址:
51单片机读写max186的c51程序
推荐阅读最新更新时间:2024-03-16 15:07
用51单片机体验高阻态的详细步骤讲解
在51单片机的P0口工作在普通IO口模式下,为准双向IO口。而工作在第二功能状态下时,则为标准的双向IO口。由于双向IO口的输出,要求能输出高低电平,通常会采用互补推挽电路。 在第二功能状态下,51单片机P0口采用的是互补推挽的输出方式。何为互补推挽呢?下面是它的等效电路图。 当P0第二功能作为输出时,K1和K2两个开关轮流打开。K2闭合K1打开,就会输出高电平,并且其驱动能力很大,因为电子开关的阻值小(不像上拉电阻的值那么大)。反之K2打开,K1闭合,就会输出低电平。 两个开关交替导通,互为补充,“挽”是“拉”的意思,两个电子开关分别负责在IO口输出处“推”和“拉”电流,所以称为互补推挽。 这种IO口结构的优点很
[单片机]
基于51单片机的直流电机调速设计
一.硬件方案 本系统采用STC89C51控制输出数据,由单片机IO口产生PWM信号,送到直流电机,直流电机通过测速电路将实时转速送回单片机,进行转速显示,从而实现对电机速度和转向的控制,达到直流电机调速的目的。 硬件主要由51单片机+最小系统+LCD1602液晶显示模块+霍尔测速模块+电机模块+按键模块构成; 二.设计功能 (1)采用霍尔传感器非接触式测电机转速; (2)LCD1602液晶显示当前的转速(转速单位为转/分)和显示当前的pwm占空比0~100%; (3)电机的速度可以通过按键调整,也可以开始/暂停,正转和反转; (4)六个按键功能:加速、减速、正转、反转、开始/暂停、单独的是复位按键。 三.设计原理图 (
[单片机]
利用89C51单片机实现红外线通信接口电路控制
在通信系统中,常利用非电信号来传递控制信号和数据,以实现遥控或遥测的功能红外通信,具有控制简单、实施方便,传输可靠性高的特点,是一种较为常用的通信方式。红外通信利用950 nm近红外波段的红外线作为传递信息的媒体,发送端采用脉时调制方式,将二进制数字信号调制成某一频率的脉冲序列,并驱动红外发射管以光脉冲的形式发送,接收端将收到的光脉冲转换成电信号。再经过放大、滤波处理后送给解调电路,还原为二进制数字信号后输出。 1 系统的总体构成 红外通信系统采用红外光传输及无限工作机制,其组成结构主要包括:红外发射器,通信信道,红外接收器三大部分组成。 (1)完成信号的电光变换并向空间发射红外脉冲 红外发射器的关键是红
[单片机]
51单片机定时器2捕获模式测脉冲频率
常规方法测量脉冲的频率,利用51单片机的两个定时器来测量,一个定时器来定时,一个定时器作为计数方式;能不能有一个更好的方法,不使用这么多硬件,只使用一个定时器就可以满足需求? 当然可以的,定时器2有输入捕获功能,P1.1接外部脉冲,当来一个脉冲,定时2就进入中断服务程序中断一次,同时也有定时功能。下面是主要的程序: #include reg52.h #define uint unsigned int #define uchar unsigned char #define ulong unsigned long uint timer2_count; uint cap_count; uchar code dispbit ={0
[单片机]
基于ADC0809和51单片机的多路数据采集系统设计
摘要:给出了采用8051单片机为核心来实现多路数据采集与通信控制的设计方法。该方法将8路被测电压通过通用ADC0809模数转换来实现对采集到的数据进行模拟量到数字量的转换,然后由单片机对数据进行处理,再将数据通过串行口传输到PC机上,同时采用MAX232接口芯片来实现MCU与PC机间的电平匹配,最后由PC机完成数据的接收和显示。 关键词:多路数据采集;单片机;模数转换;串行通信 “数据采集”是指将温度、压力、流量、位移等模拟物理量采集并转换成数字量后,再由计算机进行存储、处理、显示和打印的过程,相应的系统称为数据采集系统。 本文的主要任务是对0~5V的直流电压进行测量并送到远端的PC机上进行显示。由于采集的是直流信号,对于
[工业控制]
基于51单片机驱动LCD1602液晶显示thb6064ah细分64
#include STC89C5xRC.H #include intrins.h #define uchar unsigned char #define uint unsigned int #define LCD_DB P0 sbit LCD_RS = P2^4; sbit LCD_RW = P2^3; sbit LCD_E = P2^2; sbit K1 = P1^0; sbit K2 = P1^1; sbit K3 = P1^2; sbit K4 = P1^3; sbit K5 = P1^4; sbit M1 = P1^5; sbit M2 = P1^6; sbit M3 = P1^7; sbit DCY1 = P3^0
[单片机]
51单片机8乘8点阵LED显示原理及程序
在8X8点阵LED上显示柱形,让其先从左到右平滑移动三次,其次从右到左平滑移动三次,再次从上到下平滑移动三次,最后从下到上平滑移动三次,如此循环下去。 1. 程序设计内容 8X8点阵LED工作原理说明 :8X8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮;因此要实现一根柱形的亮法,如图49所示,对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述: 一根竖柱:对应的列置1,而行则采用扫描的方法来实现。 一根横柱:对应的行置0,而列则采用扫描的方法来实现。 2. 硬件电路 3.汇编源程序 ORG 00
[单片机]
80C51单片机的引脚及其功能介绍
首先我们来连接一下单片机的引脚图,如果,具体功能在下面都有介绍。 单片机的40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。 ⒈ 电源: ⑴ VCC - 芯片电源,接+5V; ⑵ VSS - 接地端; ⒉ 时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。 ⒊ 控制线:控制线共有4根, ⑴ ALE/PROG:地址锁存允许/片内EPROM编程脉冲 ① ALE功能:用来锁存P0口送出的低8位地址 ② PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。 ⑵ PSEN:外ROM读选通信号。 ⑶ RST/VPD:复位/备用电源。 ① RST(Reset)功能:复位信号输入端。 ② VP
[单片机]