找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1247|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

基于單片機(jī)的智能壓力檢測(cè)系統(tǒng)的設(shè)計(jì)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:721673 發(fā)表于 2020-4-3 14:38 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include<reg51.h>
#include<stdio.h>
#include<math.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
#define ADC0832CH0 channel;
//*********定義變量區(qū)*******************
sbit clk_adc0832=P3^6;                                          //定義各個(gè)控制引腳
sbit cs_adc0832=P2^0;
sbit di_adc0832=P3^7;
sbit do_adc0832=P3^7;
sbit LED0_CS=P1^0;
sbit LED1_CS=P1^1;
sbit LED2_CS=P1^2;
sbit LED3_CS=P1^3;
sbit  adarm=P2^2;
uchar code table[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0xff};//0,1,2,3,4,5,6,7,8,9,off  //共陽(yáng)極筆端碼
uchar ch;   //采樣返回?cái)?shù)據(jù)
//*********函數(shù)聲明區(qū)********************
void tkey(void);            //鍵盤(pán)函數(shù)
unsigned runADC0832(bit);    //A/D轉(zhuǎn)換
void Delayms(uint x);    //延時(shí)顯示函數(shù)
void Update_LED();           //LED顯示函數(shù)
void LED_analyze();
//**********主函數(shù)開(kāi)始**********
void main()
{
P0=0XFF;
P1=0XFF;
P2=0XFF;
P3=0XFF;
Uart_Init();
TH0=0x3C;
TL0=0xAF;
ET0=1;   //開(kāi)外部中斷0
EA=1;    //全局中斷打開(kāi)
TR0=1;
nCounter=0;
Change_Flag=0;
while(1)
{
void tkey(void);
runADC0832();
if(Change_Flag==1)
  { Update_LED();
  if(ch>9999)
  ch=0;
  printf("counter refreshed %d \n",ch);
  }
delay();
/********矩鍵查尋鍵值4*4程序******/按鍵為P1.0---P1.7
void Tkey(void)
{
  uchar readkey;//rereadkey;
  uchar x_temp,y_temp;
  P1=0x0f;
  x_temp=P1&0x0f;
  if(x_temp==0x0f) goto keyout;
  P1=0xf0;
  y_temp=P1&0xf0;
  readkey=x_temp|y_temp;
  readkey=~readkey;
switch(readkey)
{
case 0x11:key=0; break;
case 0x21:key=1; break;
  case 0x41:key=2; break;
  case 0x81:key=3; break;
  case 0x12:key=4; break;
  case 0x22:key=5; break;
  case 0x42:key=6; break;
  case 0x82:key=7; break;
  case 0x14:key=8; break;
  case 0x24:key=9; break;
  case 0x44:key=10;break;
  case 0x84:key=11;break;
  case 0x18:key=12;break;
  case 0x28:key=13;break;
  case 0x48:key=14;break;
  case 0x88:key=15;break;
  default:  key=16;break;
    }
keyout:_nop_();
}//**********A/D轉(zhuǎn)換子程序開(kāi)始***************
unsigned runADC0832(void)  //讀ADC0832函數(shù)
{            
uchar i=0;
    uchar j;
    uint dat=0;
    uchar ndat=0;
    if(channel==0)channel=2;
    if(channel==1)channel=3;
    ADDI=1;
    _nop_();
    _nop_();
    ADCS=0;//拉低CS端
    _nop_();
    _nop_();
    ADCLK=1;//拉高CLK端
    _nop_();
    _nop_();
    ADCLK=0;//拉低CLK端,形成下降沿1
    _nop_();
    _nop_();
    ADCLK=1;//拉高CLK端
    ADDI=channel&0x1;
    _nop_();
    _nop_();
    ADCLK=0;//拉低CLK端,形成下降沿2
    _nop_();
    _nop_();
    ADCLK=1;//拉高CLK端
    ADDI=(channel>>1)&0x1;
    _nop_();
    _nop_();
    ADCLK=0;//拉低CLK端,形成下降沿3
    ADDI=1;//控制命令結(jié)束
    _nop_();
    _nop_();
    dat=0;
    for(i=0;i<8;i++)
    {
        dat|=ADDO;//收數(shù)據(jù)
        ADCLK=1;
        _nop_();
        _nop_();
        ADCLK=0;//形成一次時(shí)鐘脈沖
        _nop_();
        _nop_();
        dat<<=1;
        if(i==7)dat|=ADDO;
    }
    for(i=0;i<8;i++)
    {
        j=0;
        j=j|ADDO;//收數(shù)據(jù)
        ADCLK=1;
        _nop_();
        _nop_();
        ADCLK=0;//形成一次時(shí)鐘脈沖
        _nop_();
        _nop_();
        j=j<<7;
        ndat=ndat|j;
        if(i<7)ndat>>=1;
    }
    ADCS=1;//拉高CS端
    ADCLK=0;//拉低CLK端
    ADDO=1;//拉高數(shù)據(jù)端,回到初始狀態(tài)
    dat<<=8;
    dat|=ndat;
    return(dat);            //return ad k
}
void control(uchar d)  //數(shù)據(jù)個(gè)、十、百、千取數(shù)函數(shù)
ch=ch%10000;
AD_bcd[0] =ch/1000;
  AD_bcd[1]=(ch/100)%10;
AD_bcd[2] =(ch%100)/10;
  AD_bcd[3]=(ch%100)%10;
  update_disbuf();
}
void update_disbuf(void)    //對(duì)應(yīng)顯示的數(shù)據(jù)函數(shù)
{ P0=dis_code[AD_bcd[0]];
  LED_0=0;
  Delayms(10);
  LED_0=1;
  P0=dis_code[AD_bcd[1]];
  LED_1=0;
  Delayms(10);
  LED_1=1;
  P0=dis_code[AD_bcd[2]];
  LED_2=0;
  Delayms(10);
  LED_2=1;
  P0=dis_code[AD_bcd[3]];
  LED_3=0;
  Delayms(10);
  LED_3=1;
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表