ldy7474 发表于 2017-1-8 23:57:57

12864 显示ADC结果

本帖最后由 ldy7474 于 2017-1-9 00:09 编辑

前段时间无意中驱动了9.9的12864
这几天一直在研究
早期的单纯的显示汉子图片
是比较简单的运用了为了
让其更具有实用价值
今天用它来学习ADC
计算电压值








#include <reg51.h>
#include <intrins.h>
#include "12864Data.h"
#include "stc12c.h"
#include "lcd12864.h"
#include "ADC.h"
#define u8 unsigned char
#define u16unsigned int
   
/*******萝莉控LCD引脚***************/
/*
sbit CS=P0^6;
sbit RST=P0^7;
sbit RS=P4^6;
sbit SDA=P4^5;
sbit SCK=P4^4;
*/
u16 CH1,CH2,CH3,CH4,CH5,CH6,CH7,V1;//
sbit LEDA=P2^5;//LCD背光
u16 adc;
u8 lcd;//显示缓存


void init ();         //硬件初始化



void main(void)
{       
       
        init ();
        LEDA=1;
        delay_n_10us(100);//延时100ms等待稳定运行
       
        InitLCD();
        ClearScreen();
        Display128x64(lcd_128x64);
       
        lcd=' ';
        lcd=' ';
        lcd=' ';
        lcd=' ';
    while(1)
    {
          Display8x16(1,0,"L");
          Display8x16(1,8,"D");
          Display8x16(1,16,"Y");

          Display5x7(1,52,"0");
          Display5x7(1,60,"B");
          Display5x7(1,68,"T");

          Display8x16(2,28,"F");
          Display8x16(2,36,"2");
          Display8x16(2,44,"2");

          Display8x16(2,74,"0");
          Display8x16(2,82,"0");
          Display8x16(2,90,":");
          Display8x16(2,98,"0");
          Display8x16(2,106,"0");

          CH1=1+adcs(7);//*CH1代表7通道检测到的ADC值**/
          //V1=V1*2;
          CH1=CH1/204.8*10000;
          
          lcd= CH1/10000+48;
          lcd='.';
      lcd= CH1%10000/1000+48;
             
      lcd= CH1%1000/100+48;
      lcd= CH1%100/10+48;
      
      Display5x7(6,82,lcd);
          Display5x7(6,106,"V");

          CH2=1+adcs(6);//*CH2代表6通道检测到的ADC值**/          
          CH2=CH2/204.8*10000;          
          lcd= CH2/10000+48;
          lcd='.';
      lcd= CH2%10000/1000+48;             
      lcd= CH2%1000/100+48;
      lcd= CH2%100/10+48;      
      Display5x7(5,82,lcd);
          Display5x7(5,106,"V");

          CH3=adcs(4);//*CH3代表4通道检测到的ADC值**/
          lcd= CH3/1000+48;          
      lcd= CH3%1000/100+48;             
      lcd= CH3%100/10+48;
      lcd= CH3%1000%10+48;
      lcd=' ';
          Display5x7(5,30,lcd);
          Display5x7(5,8,"C");
          Display5x7(5,14,"H");
      Display5x7(5,20,"3");
          
          

          CH4=1+adcs(5);//*CH4代表5通道检测到的ADC值**/
          CH4=CH4/204.8*10000;          
          lcd= CH4/10000+48;
          lcd='.';
      lcd= CH4%10000/1000+48;             
      lcd= CH4%1000/100+48;
      lcd= CH4%100/10+48;      
      Display5x7(6,30,lcd);
          Display5x7(6,54,"V");
          Display5x7(6,8,"C");
          Display5x7(6,14,"H");
          Display5x7(6,20,"4");

          V1=1+adcs(8);//*V1代表8通道检测到的ADC值**/
          V1=V1/204.8*10000;
          lcd= V1/10000+48;
          lcd='.';
      lcd= V1%10000/1000+48;             
      lcd= V1%1000/100+48;
      lcd= V1%100/10+48;
      
      Display5x7(1,82,lcd);
          Display5x7(1,106,"V");

          

          
          
          

          

    }
      
    }

void init ()         //硬件初始化
{             
    LEDA=0;
    P4SW=0x70;         //允许P4 IO
    P2M0=0x20;         //推挽点亮背光
}

3300178839 发表于 2017-1-9 00:08:33

不懂帮顶。。。。。。。。。。。。。。。。。。。。

ldy7474 发表于 2017-1-9 00:35:37

不得不说12864在单片机外设中算是比较好玩的小玩意
有个显示器就是不一样可以把很多参数借助屏幕显示出来
让枯燥的学习变得更有意思
顺带着把模块化编程也耍了一下    很多直接调用的函数直接封装成文件改下文件后缀名之后调用起来更方便了
下一步准备把屏幕上的时间用定时器的办法显示出来
接着还要把按键利用起来做出可以翻页的菜单哎时间不够用每天都搞到很晚才休息好困

huangzhisen 发表于 2017-1-9 01:27:41

顶帖不需要理由http://www.moz8.com//mobcent//app/data/phiz/default/03.png

伙子 发表于 2017-1-9 07:19:04

顶一下楼主

悠牧人 发表于 2017-1-9 07:38:47

顶你一个

江南小丸子 发表于 2017-1-9 07:43:42

楼主辛苦,必须顶一下

武杰杰 发表于 2017-1-9 08:12:02

看不懂

NqQ9eJzyQ8 发表于 2017-1-9 08:18:58

说实话,光靠签到升级太慢,所以我复制了这一段话遇贴就回,回一次最少也得15个经验,还能帮你不沉贴!

川师鲤鱼 发表于 2017-1-9 08:30:47

不错不错 可是我早就不想自己折腾了

useisbb 发表于 2017-1-9 10:28:57

显示个电压用了几十行代码!不累吗,用个printf不好吗?

ldy7474 发表于 2017-1-9 12:32:31

useisbb 发表于 2017-1-9 10:28 static/image/common/back.gif
显示个电压用了几十行代码!不累吗,用个printf不好吗?

printf不会用欢迎赐教
程序中用到的很多代码都是
复制粘贴,东拼西凑
然后编驿输出下载

useisbb 发表于 2017-1-9 13:51:17

ldy7474 发表于 2017-1-9 12:32 static/image/common/back.gif
printf不会用欢迎赐教
程序中用到的很多代码都是
复制粘贴,东拼西凑

添加stdio标准库
重映射putc函数
就可以调用了

zjy7870477 发表于 2017-1-9 19:37:41

漂亮!!!!!

金属风暴 发表于 2017-1-9 20:48:42

路过,帮顶→_→

guoguo123 发表于 2017-1-9 22:26:04

怎么做到的啊 好牛掰

来一嘴 发表于 2017-10-9 00:00:15

帮顶            

昶春斋 发表于 2017-11-16 19:47:12

顶                        

bdya1 发表于 2018-10-25 22:23:57

说实话,光靠签到升级太慢,所以我复制了这一段话遇贴就回,回一次最少也得15个经验,还能帮你不沉贴!

boshihou100 发表于 2018-11-25 23:23:06

说实话,光靠签到升级太慢,所以我复制了这一段话遇贴就回,回一次最少也得15个经验,还能帮你不沉贴!
页: [1] 2
查看完整版本: 12864 显示ADC结果