
這是本人利用LIC7135制作的一個電子秤AD轉換部分,想要請教一下,單片機從7135中得到的數字量如何轉換為重量,顯示在LCD1602上面。7135采用的是中斷查詢的方式。
下面附上這塊芯片的C語言編程,請問有沒有幫忙指出編程是否有錯誤之處。
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit icl_rn = P3^3;
sbit icl_st = P3^2;
uchar k, m;
uchar ADBUF[8] = 0; //AD緩沖區
void delay (uchar z);
void init_into ();
void main (void)
{
init_into ();
icl_rn = 1; //啟動端使能 啟動AD轉換
}
void init_into () //初始化外部中斷0
{
IT0 = 1;
EX0 = 1;
EA = 1;
}
void delay (uchar z)
{
uchar x, y;
for (x=z; x>0; x--)
for (y=110; y>0; y--);
}
void exter0 () interrupt 0 //外部中斷0子程式
{
EA = 0;
k = P2;
if ((P2&0x10) != 0x10)
{
do //千位
{
k = P2;
}while ((k&0x08) != 0x08);
ADBUF[1] = P1 & 0x0f;
do //百位
{
k = P2;
}while ((k&0x04) != 0x04);
ADBUF[2] = P1 & 0x0f;
do //十位
{
k = P2;
}while ((k&0x02) != 0x02);
ADBUF[3] = P1 & 0x0f;
do //個位
{
k = P2;
}while ((k&0x01) != 0x01);
ADBUF[4] = P1 & 0x0f;
}
else
{
if ((P1&0x08) == 0x08) //過量程
delay (1000);
else //欠量程
{
if ((P1&0x04) == 0x04)
delay (1000);
else //萬位
ADBUF[0] = P1 & 0x0f;
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/131686.html
標籤:單片機/工控
上一篇:單片機開發板
