找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

icl7135的并行6线接法

[复制链接]
admin 发表于 2012-9-2 13:44:37 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
老是显示0.0000
中断程序哪边不对呢?
#include<reg51.h>
#include<absacc.h>
#include<intrins.h>

#define uchar unsigned char
#define uint unsigned int

uint ADC_Data;
uchar dat[5];
uchar i;
uchar temp;

sbit RS=P2^0;
sbit RW=P2^1;
sbit E=P2^2;
sbit bflag=P1^7;

sbit D5=P2^7;

void delay(uchar c)
{
uchar i,j;
for(i=500;i>0;i--)
for(j=c;j>0;j--);
}

void busy_1602()
{
do
{
P1=0xff;
RS=0;
RW=1;
E=0;
_nop_();
E=1;
}
while(bflag);
}

void wreg_1602(uchar com)
{
busy_1602();
RS=0;
RW=0;
E=1;
P1=com;
E=0;
}

void wdat_1602(uchar dat)
{
busy_1602();
RS=1;
RW=0;
E=1;
P1=dat;
E=0;
}

void init_1602()
{
wreg_1602(0x38);
wreg_1602(0x08);
wreg_1602(0x06);
wreg_1602(0x01);
wreg_1602(0x0c);
}

void display(uint Volt0)
{
uchar Num[5],i;
if(Volt0>99999)
Volt0=99999;

Num[0]=Volt0/10000; //万位
Num[1]=(Volt0%10000)/1000;
Num[2]=(Volt0%1000)/100;
Num[3]=(Volt0%100)/10;
Num[4]=Volt0%10;

for(i=0;i<5;i++)
{
wdat_1602(Num+0x30);
if(i==0)
{
wdat_1602('.');
}
}
}
main()
{
init_1602();

IT0=1;//脉冲触发方式
EX0=1;//允许外部中断请求
EA=1; //开启总中断

while(1)
{
ADC_Data=dat[4]*10000+dat[3]*1000+dat[2]*100+dat[1]*10+dat[0];
wreg_1602(0x80);
display(ADC_Data);
}
}

void int_7135() interrupt 0
{
temp=P0&0x0f;

if(D5==1)
dat[4]=temp,i=4,D5=0;

else
switch(i)
{
case 4:dat[3]=temp,i--;break;
case 3:dat[2]=temp,i--;break;
case 2:dat[1]=temp,i--;break;
case 1:dat[0]=temp,i--;break;
default:break;
}
}


5_91760_4096ca5e5241d99.jpg
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-25 03:53 , Processed in 0.052883 second(s), 12 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表