资源简介
proteus仿真adc0808多通道数据采集,8051时钟为6MHz,利用8051中断,巡回检测4个通道,按键改变显示通道。是学习8051中断编程,ADC0808与MCU接口的好例子。
代码片段和文件信息
#include “reg51.h“
#include “absacc.h“
#define T0_H ((65536-5000)/256)//定时显示刷率
#define T0_L ((65536-5000)%256)
#define T1_H ((65536-1000)/256)//采样周期
#define T1_L ((65536-1000)%256)
unsigned char value[4];
unsigned char data ch=0;
unsigned char dch=0;
static int dink=0;
unsigned int Adress;
unsigned char code seg_code[]={0xc00xF90xA40xB00x99//0-4
0x920x820xF80x800x90//5-9
0x880x830xC60xA10x86//AbCdE
0x8E0xFF0x0C0x890x7F0xBF//F空格PH.-
};
unsigned char bit_code[]={0x010x020x040x08};
void main()
{
IT1=1;EX1=1;
IT0=1;EX0=1;
TMOD=0x11;
TH0=T0_H; TL0=T0_L;
TH1=T1_H; TL1=T1_L;
ET0=1;ET1=1;TR0=1;TR1=1;
EA=1;
while(1);
}
void EX1_INT() interrupt 2
{
Adress=P2<<8;
Adress=Adress&0x7fff;
value[ch]=XBYTE[Adress];
ch++;
if(ch>3) ch=0;
}
//根据按键切换显示通道
void EX0_INT() interrupt 0
{dch++;
if (dch>3) dch=0;
}
//显示通道dch的AD转换值
void T0_INT() interrupt 1
{
TH0=T0_H; TL0=T0_L;
d=n%10;n=n/10;
P2=0;
P1=seg_code[d];
P2=bit_code[k];
k++;
if(n==0) {
n=value[dch];k=0;
}
}
//每隔20ms检测一个通道
void T1_INT() interrupt 3
{
Adress=P2<<8;
Adress=Adress&0x7fff;
XBYTE[Adress]=ch;
TH1=T1_H; TL1=T1_L;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5115 2002-04-16 14:32 multiCh\STARTUP.A51
文件 3226 2011-12-06 01:38 multiCh\adc0_3.plg
文件 1303 2011-12-06 01:36 multiCh\adc0_3.c
文件 11665 2011-12-06 01:36 multiCh\STARTUP.LST
文件 45 2011-12-06 01:36 multiCh\adc0_3.lnp
文件 7594 2011-12-06 01:36 multiCh\adc0_3.M51
文件 1960 2011-12-06 01:36 multiCh\adc0_3.hex
....... 2039 2011-12-02 02:54 multiCh\adc0_3_Uv2.Bak
文件 2043 2011-12-02 04:47 multiCh\adc0_3.Uv2
文件 1342 2011-12-06 01:10 multiCh\MultiCh.PWI
文件 102327 2011-12-06 00:19 multiCh\Last Loaded MultiCh.DBK
文件 102326 2011-12-06 01:10 multiCh\MultiCh.DSN
文件 749 2011-12-06 01:36 multiCh\STARTUP.OBJ
文件 3202 2011-12-06 01:36 multiCh\adc0_3.LST
文件 6136 2011-12-06 01:36 multiCh\adc0_3.OBJ
文件 6166 2011-12-06 01:36 multiCh\adc0_3
....... 1514 2011-12-05 09:02 multiCh\adc0_3_Opt.Bak
文件 1539 2011-12-06 01:38 multiCh\adc0_3.Opt
文件 299124 2011-12-06 23:32 multiCh\MultiCh.EMF
..A.SH. 9216 2011-12-06 23:37 multiCh\Thumbs.db
目录 0 2011-12-02 00:42 multiCh
----------- --------- ---------- ----- ----
568631 21
- 上一篇:STM32 IIC软件模拟读写24C02
- 下一篇:0012校园网络模拟-4.pkt
相关资源
- proteus中51单片机制作的电子琴
- ADC0809+12864液晶显示+电压值+proteus图仿
- 八个Proteus放大器
- RS485一对四双向通信Proteus仿真+Keil收发
- proteus仿真元件符号大全
- ADC0809 C51单片机控制 输出到串口显示
- 可LCD显示计算价格的电子秤proteus仿真
- 毕业设计__基于51单片机的公交车自动
- 2051modbus的通讯仿真PROTEUS
- 8086_proteus_all
- PIC单片机 IIC通信 proteus仿真文件图
- PIC单片机SPI通信 带proteus仿真
- proteus+8086 汽车管理系统课程设计
- proteus+8086 步进电机控制
- proteus+8086 流水灯实现
- 8086仿真-LCD12864
- DS18B20 多点温度测量 用proteus仿真 课
- 基于51单片机的ds18b20的proteus仿真
- 51单片机12864液晶屏proteus仿真源代码
- 路灯控制系统完整版+PROTEUS仿真
- proteus电子音乐闹钟
- proteus-8位数码管显示
- 基于51单片机的LED灯控制Proteus仿真
- 数字电子钟proteus仿真
- 直流数控电源Proteus仿真1~10V输出
- 51单片机车轮测速的proteus仿真
- 微机接口经典 8086 Proteus8251_8253_8255_
- 基于51单片机Max7219驱动8×8点阵PROTEU
- 12864液晶屏.zip
- 单片机交通灯设计基于proteus和keil5
评论
共有 条评论