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; //推挽点亮背光
}
不懂帮顶。。。。。。。。。。。。。。。。。。。。 不得不说12864在单片机外设中算是比较好玩的小玩意
有个显示器就是不一样可以把很多参数借助屏幕显示出来
让枯燥的学习变得更有意思
顺带着把模块化编程也耍了一下 很多直接调用的函数直接封装成文件改下文件后缀名之后调用起来更方便了
下一步准备把屏幕上的时间用定时器的办法显示出来
接着还要把按键利用起来做出可以翻页的菜单哎时间不够用每天都搞到很晚才休息好困
顶帖不需要理由http://www.moz8.com//mobcent//app/data/phiz/default/03.png
顶一下楼主
顶你一个
楼主辛苦,必须顶一下
看不懂
说实话,光靠签到升级太慢,所以我复制了这一段话遇贴就回,回一次最少也得15个经验,还能帮你不沉贴!
不错不错 可是我早就不想自己折腾了
显示个电压用了几十行代码!不累吗,用个printf不好吗?
useisbb 发表于 2017-1-9 10:28 static/image/common/back.gif
显示个电压用了几十行代码!不累吗,用个printf不好吗?
printf不会用欢迎赐教
程序中用到的很多代码都是
复制粘贴,东拼西凑
然后编驿输出下载
ldy7474 发表于 2017-1-9 12:32 static/image/common/back.gif
printf不会用欢迎赐教
程序中用到的很多代码都是
复制粘贴,东拼西凑
添加stdio标准库
重映射putc函数
就可以调用了
漂亮!!!!!
路过,帮顶→_→
怎么做到的啊 好牛掰
帮顶 顶 说实话,光靠签到升级太慢,所以我复制了这一段话遇贴就回,回一次最少也得15个经验,还能帮你不沉贴!
说实话,光靠签到升级太慢,所以我复制了这一段话遇贴就回,回一次最少也得15个经验,还能帮你不沉贴!
页:
[1]
2