电子称(7)

2019-04-09 10:11

附录

#include #include #include\#include\#define uint unsigned int #define uchar unsigned char

sbit adrd=P3^7; //IO口定义 sbit adwr=P3^6; sbit adcs=P0^7; sbit diola=P2^5; sbit beep=P2^3; sbit setkey=P3^7;

uchar key_num,num; uchar RMB_s,RMB_g,RMB; long date,ren,dat; int add_i2c,bianma;

uchar code table[]=%uchar table1[4];

/********************************************************************

蜂鸣器驱动

********************************************************************/ void BEEP() { uchar i;

for(i=0;i<180;i++)

29

{

delayB(5); beep=!beep; } beep=1; }

/********************************************************************

ADC0804 起始信号

********************************************************************/ void ad_start() { adcs=0; _nop_(); adwr=0; _nop_(); adwr=1; _nop_(); adcs=1; }

/********************************************************************

ADC0804 读操作

********************************************************************/ uchar ad_read() {

uchar temp; adcs=0; _nop_();

30

adrd=0; _nop_(); temp=P1; _nop_(); adrd=1; _nop_(); adcs=1;

return(temp);

}/*******************************************************************

矩阵键盘扫描

********************************************************************/ uchar getkey() {

static unsigned char flag = 0; unsigned char key; P3=0x0f; if(P3!=0x0f) {

if(flag==0) {

flag=1; key=P3|0xf0; P3=key; switch(P3) {

case 0xee:return 0; break; case 0xde:return 1; break;

//松手检测

case 0xbe:return 2; break;

31

{ }

case 0x7e:return 3; break;

case 0xed:return 4; break; case 0xdd:return 5; break; case 0xbd:return 6; break; case 0x7d:return 7; break;

case 0xeb:return 8; break; case 0xdb:return 9; break; case 0xbb:return 10;break; case 0x7b:return 11;break;

} else

}

}

case 0xe7:return 12;break; case 0xd7:return 13;break; case 0xb7:return 14;break; case 0x77:return 15;break;

}

flag=0;

return 0xff;

/********************************************************************

控制按键设置

********************************************************************/ void keyscan()

32

{

static uchar i=0,flag = 0,flag1=0,flag2=0; static bit flag_frist = 1; static uchar p; uchar pri; num = getkey(); if(num != 0xff) {

if((num>=0)&&(num<10)&&(flag==0)) {

//

if(flag1==0) {

flag1=1; if(i==0) {

Lcd_dis_str(12,1,\

} } else {

}

display(0x8c+i,table[num]); table1[i]=num; i++; if(i==4) {

i=0;

Lcd_dis_str(4,2,\

33


电子称(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:基于51单片机的的温度报警器设计

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: