久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2142|回復: 2
收起左側(cè)

基于STC89C52的ADC0832檢測酒精12864顯示改了個程序錯誤太多 大神幫忙看一下 謝謝

[復制鏈接]
ID:300450 發(fā)表于 2018-4-17 09:28 | 顯示全部樓層 |閱讀模式
#include<reg51.h>
#include<string.h>
#include<stdio.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int口定義
sbit CLK=P3^4;//ADC0832時鐘端
sbit DIO=P3^3;//ADC832數(shù)據(jù)輸入輸出
sbit AD_CS=P3^5;//ADC0832片選端
#define jiaquan_CH  1
#define tianranqi_CH  0
sbit beep=P1^5;
#define LCD12864_DataPort P0
sbit LCD12864_EN=P2^1;
sbit LCD12864_RW=P2^2;
sbit LCD12864_RS=P2^3;
sbit LCD12864_PSB=P2^5;
void delay(unint time)//Time ms
{
uint j,k;
        for(k=time;k>0;k--)
           for(j=150;j>0;j--);
}


//AD轉(zhuǎn)換函數(shù)
//ch--通道選擇,
ch=0,0通
ch=1,1通道


uint sum;
uchar RH,RH_H=60,RH_L=20,state,ms,time_num,cs;
bit beep1,zt,s1;
void DelayUs2x(unsigned char t)
{   
while(--t);
}
void DelayMs(unsigned char t)
{
     
while(t--)
{
    DelayUs2x(245);
         DelayUs2x(245);
}
}
unsigned int  A_D()
{
        unsigned char i;
        unsigned char dat;
        ADC0832_CS=1;                  
        ADC0832_CLK=0;  
        ADC0832_CS=0;  
        ADC0832_DIO=1;   
        ADC0832_CLK=1;   
        ADC0832_CLK=0;  
        ADC0832_DIO=1;   
        ADC0832_CLK=1;   
        ADC0832_CLK=0;   
        ADC0832_DIO=0;   
        ADC0832_CLK=1;   
        ADC0832_CLK=0;   
        ADC0832_DIO=1;   
        ADC0832_CLK=1;   
        for(i=0;i<8;i++)                    
        {
                ADC0832_CLK=1;        
                ADC0832_CLK=0;
                dat<<=1;      
                dat|=(unsigned char)ADC0832_DIO;          
        }                                  
        ADC0832_CS=1;         
        return dat;          
}
void delay(uint T)                                          
{
        while(T--);
}
bit LCD_Check_Busy(void)
{
DataPort= 0xFF;
RS_CLR;                  
RW_SET;                  
EN_CLR;                
_nop_();                  
EN_SET;               
return (bit)(DataPort & 0x80);
}
void LCD_Write_Com(unsigned char com)
{  
// while(LCD_Check_Busy());
DelayMs(5);      
RS_CLR;                 
RW_CLR;                 
EN_SET;                 
DataPort= com;        
_nop_();                        
EN_CLR;                    
}
void LCD_Write_Data(unsigned char Data)
{
//while(LCD_Check_Busy());
DelayMs(5);
RS_SET;                             
RW_CLR;                                  
EN_SET;                                  
DataPort= Data;                  
_nop_();                                 
EN_CLR;                               
}
void LCD_Clear(void)
{
LCD_Write_Com(0x01);        
DelayMs(5);                       
}
void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s)
{     
if (y == 0)
        {     
         LCD_Write_Com(0x80 + x);     //表示第一行
        }
else
        {      
        LCD_Write_Com(0xC0 + x);      //表示第二行
        }        
while (*s)
        {     
LCD_Write_Data( *s);     
s ++;     
        }
}
void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data)
{     
if (y == 0)
        {     
        LCD_Write_Com(0x80 + x);     
        }   
else
        {     
        LCD_Write_Com(0xC0 + x);     
        }        
LCD_Write_Data( Data);  
}
LCD12864功能函數(shù)


void LCD12864_delayms(unsigned int a)
{
        unsigned int x,y;
        for(x=a;x0;x--)
                for(y=110;y0;y--)
                {
                        ;
                }
}


void LCD12864_write_cmd(unsigned char cmd)寫命令
{
        LCD12864_RS=0;
        LCD12864_RW=0;
        LCD12864_EN=1;
        LCD12864_DataPort=cmd;
        LCD12864_delayms(1);
        LCD12864_EN=0;
        LCD12864_delayms(1);                       
}
------------------------------------------------
                      清屏
------------------------------------------------
void ClrScreen()
{
   LCD12864_write_cmd(0x01);
   LCD12864_delayms(15);
}
void LCD12864_write_data(unsigned char dat)        寫數(shù)據(jù)
{
        LCD12864_RS=1;
        LCD12864_RW=0;
        LCD12864_EN=1;
        LCD12864_DataPort=dat;
        LCD12864_delayms(1);
        LCD12864_EN=0;
        LCD12864_delayms(1);                       
}


void LCD12864_write_String(unsigned char dat)寫字符串,可寫漢字
{        
        for(;dat!='0';dat++)
        {
                LCD12864_write_data(dat);
        }       
}




在固定的位置顯示固定的數(shù)據(jù)
unsigned char x         第幾行顯示,從0開始
unsigned char y          第幾個位置 從0開始
unsigned char dat 要顯示的內(nèi)容,可為漢字


void LCD12864_write_String_pos(unsigned char x,unsigned char y,unsigned char dat)
{
        if(x==0)第一行
        {
                LCD12864_write_cmd(0x80+y);
                LCD12864_write_String(dat);
        }
        if(x==1)第二行
        {
                LCD12864_write_cmd(0x90+y);
                LCD12864_write_String(dat);
        }
        if(x==2) 第三行
        {
                LCD12864_write_cmd(0x88+y);
                LCD12864_write_String(dat);
        }
        if(x==3)第四行
        {
                LCD12864_write_cmd(0x98+y);
                LCD12864_write_String(dat);
        }                       
}


void LCD12864_init(void)初始化
{
        LCD12864_PSB=1;并行顯示
        LCD12864_write_cmd(0x30);基本指令集
        LCD12864_write_cmd(0x0c);開顯示,不顯示光標
        LCD12864_Draw_Full(empty);寫入一個空白的圖形,防止數(shù)據(jù)干擾
}


=======================
主函數(shù)
void main(void)
{  
        flag=0;
        LCD12864_init();//12864初始化
        start_display();
        while(1)
        {
                keyscan();按鍵掃描函數(shù)
                jiaquan_ADCdat=ADC0832(jiaquan_CH);
                jiaquan_Disdat[0]=jiaquan_ADCdat100;          百位
                jiaquan_Disdat[1]=(jiaquan_ADCdat10)%10; 十位
                jiaquan_Disdat[2]=jiaquan_ADCdat%10;          個位
                delay(500);


                tianranqi_ADCdat=ADC0832(tianranqi_CH);
                tianranqi_Disdat[0]=tianranqi_ADCdat100;          百位
                tianranqi_Disdat[1]=(tianranqi_ADCdat10)%10; 十位
                tianranqi_Disdat[2]=tianranqi_ADCdat%10;          個位


                if(flag==1)
                {
                        ADCresult_display();
                        jing_bao();
                }
        }
               
}

回復

使用道具 舉報

ID:300450 發(fā)表于 2018-4-17 10:03 | 顯示全部樓層
求大神幫個忙
回復

使用道具 舉報

ID:300450 發(fā)表于 2018-4-21 17:13 | 顯示全部樓層
這就沉了?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品美女久久久久 | 九九久久国产 | 亚洲视频www | 伊人久久综合 | 久久国产欧美日韩精品 | 亚洲欧美日韩国产综合 | 毛片入口 | 日韩视频在线免费观看 | 97视频免费 | 在线中文字幕日韩 | 国产一级视频在线播放 | 欧美性jizz18性欧美 | 青青久久 | 一区二区三区亚洲 | 日韩黄a | xxxcom在线观看| 久久伊人精品 | 在线视频一区二区三区 | 国产一级视频在线观看 | 不卡一区二区在线观看 | 国产精品久久久久久久久久久久久久 | 国产99久久久国产精品 | 高清视频一区二区三区 | 成年女人免费v片 | 国产高清无av久久 | 黄色免费网址大全 | 国产不卡一区 | 亚洲国产精品久久人人爱 | 亚洲欧洲成人在线 | va精品 | 在线成人av | 国产原创视频 | 香蕉视频1024 | 国产高潮好爽受不了了夜色 | 青青久久久 | 国产精品夜夜春夜夜爽久久电影 | 日韩免费av | 久久久国产一区二区三区 | 国产日韩视频在线 | 国产精品美女 | 成人伊人 |