单片机教程网

电脑版
提示:原网页已由神马搜索转码, 内容由www.51hei.com提供.
查看:17451|回复:10

Arduino示波器制作 (LCD12864显示)

 [复制链接]
ID:426684发表于 2018-12-21 20:49|显示全部楼层
Arduino 示波器 (LCD12864)制作出来的实物图如下:
IMG_20181221_203348.jpg
IMG_20181221_203342.jpg


实验目的:显示变化频率的正弦波
硬件:Arduino UNO,LCD12864
代码:
#include< U8glib.h> //声明库
U8GLIB_ST7920_128X64_4X u8g(13, 12, 11); // 声明液晶屏 SPI Com: SCK =13, MOSI = 12, CS =  11
int x,y; //绘点坐标
int Buffer[128]; //缓存值储存数组
const  uint8_t grap []   U8G_PROGMEM  ={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x01,0x80,0x0C,0xE0,0x00,0x08,
0x40,0x00,0x00,0x60,0x00,0x00,0x00,0x00,
0x07,0x80,0x30,0x80,0x7F,0x60,0x00,0x08,
0x40,0x00,0x01,0xC0,0x08,0x00,0x00,0x00,
0x07,0x80,0x10,0xC0,0x2D,0xC0,0x00,0x08,
0x40,0x00,0x02,0xC0,0x18,0x01,0x00,0x00,
0x06,0x00,0x15,0xE0,0x3D,0xC0,0x00,0x08,
0x40,0x00,0x04,0x80,0x10,0x02,0x00,0x00,
0x1B,0xE0,0x07,0x20,0x0E,0xC0,0x00,0x08,
0x40,0x00,0x09,0x80,0x70,0x20,0x00,0x80,
0x7F,0xF0,0x45,0x40,0x07,0xF0,0x00,0x08,
0x40,0x00,0x7F,0xBD,0xE3,0x6C,0xDB,0xC0,
0x73,0x00,0x45,0x80,0xFD,0x80,0x00,0x08,
0x40,0x00,0xFF,0xAB,0x22,0xD8,0xB6,0x80,
0x0B,0x00,0x4D,0xC0,0xC8,0x80,0x00,0x08,
0x40,0x00,0x42,0x52,0x45,0x51,0x64,0x80,
0x33,0x60,0x67,0x40,0x30,0xE0,0x00,0x08,
0x40,0x00,0x85,0x1E,0xD7,0xB5,0xBC,0xC0,
0x6A,0x20,0x68,0x80,0x4F,0xE0,0x00,0x08,
0x40,0x01,0x06,0x1B,0x62,0xD9,0x23,0x00,
0x06,0x00,0x4B,0x70,0x3D,0x60,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x02,0x00,0x40,0x3C,0x39,0xE0,0x00,0x08,
0x40,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFD,0xFF,0xBF,0xC3,0xC7,0x1F,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x18,0x00,0x00,0x00,0x00,0x00,
0x00,0x10,0x00,0x00,0x10,0x02,0x20,0x08,
0x40,0x00,0x24,0x00,0x00,0x00,0x00,0x02,
0x30,0x18,0x0F,0x00,0x90,0x0A,0x60,0x08,
0x40,0x00,0x42,0x00,0x00,0x00,0x00,0x02,
0x40,0x20,0x1D,0x81,0x58,0x0F,0xA0,0x08,
0x40,0x00,0x81,0x00,0x00,0x00,0x00,0x07,
0xC0,0x3C,0x13,0x83,0xF0,0x07,0x60,0x08,
0x40,0x01,0x00,0x80,0x00,0x40,0x00,0x0F,
0x40,0xDC,0x1E,0x43,0x3C,0x0F,0x60,0x08,
0x40,0x02,0x00,0x40,0x00,0x80,0x00,0x07,
0xE0,0xE0,0x39,0x81,0x70,0x3A,0xA0,0x08,
0x40,0x3F,0xFF,0xFF,0xFF,0xF0,0x00,0x0B,
0x70,0x30,0x1B,0x01,0x10,0x06,0xA0,0x08,
0x40,0x08,0x00,0x10,0x02,0x00,0x00,0x04,
0xC0,0x2C,0x2E,0xC1,0x10,0x0B,0xA0,0x08,
0x40,0x10,0x00,0x08,0x04,0x00,0x00,0x02,
0x00,0x60,0x18,0x00,0x10,0x02,0x60,0x08,
0x40,0x00,0x00,0x04,0x08,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x10,0x00,0x20,0x08,
0x40,0x00,0x00,0x02,0x10,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x01,0x20,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};//首页图片
void setup( ){
Serial.begin(9600);
u8g.firstPage();  //清屏
do  draw1( );     //显示
while( u8g.nextPage( ));
delay(1000);
}
//采样
void sample(int j){
for(x = 0;x< 128;x++)
//Buffer[x] = analogRead(A0);  //信号采样
//Buffer[x] =0;  //信号采样
Buffer[x]=int(sin(x*(j*3.1412/180))*208-j);
for(x = 0;x< 128;x++)
//Buffer[x] = 32-(Buffer[x]); //计算纵坐标值
//Serial.println(Buffer[x]);
Buffer[x] = 32-(Buffer[x]>>4); //计算纵坐标值
}
//显示
void draw( ){
for(x = 0;x< 128;x++)
u8g.drawLine(x, Buffer[x],x,Buffer[x+1]);  //画相邻两点连线
u8g.drawLine(64,0,64,63); // 画坐标轴
u8g.drawLine(0,32,128,32);
for(x=0;x<128;x+=8)   //画坐标轴刻度
u8g.drawLine(x,31,x,33);
for(x=0;x<64;x+=8)
u8g.drawLine(63,x,65,x);
u8g.drawFrame(0,0,128,64); //画边框
}
void loop( ){
for(int j=8;j<32;j++){
sample(j);       //采样
u8g.firstPage();  //清屏
do  draw( );     //显示
while( u8g.nextPage( ));
delay(500);
}
u8g.firstPage();  //清屏
do  draw1( );     //显示
while( u8g.nextPage( ));
delay(3000);
}
void draw1(void) {
u8g.setColorIndex(1);
u8g.drawBitmapP ( 0 , 0 , 16 , 64 , grap);
}
视频效果:


评分

黑币 +53
收起理由
+ 3
共享资料的黑币奖励!
+ 50
共享资料的黑币奖励!

查看全部评分

ID:138707发表于 2018-12-30 22:51|显示全部楼层
发个压缩包,多好,,,
ID:462258发表于 2019-1-5 10:26|显示全部楼层
用字符(中文字库)的12864能做么?
ID:586710发表于 2019-7-19 09:35|显示全部楼层
请问有驱动的库文件吗
ID:294401发表于 2019-7-20 15:32|显示全部楼层
请问有驱动的库文件吗
ID:79544发表于 2019-8-26 09:50|显示全部楼层
感谢分享!学习啦!!!!!!!
ID:373684发表于 2019-10-10 18:41|显示全部楼层
Arduino DUE板可以做吗????有没有详细的资料啊/
ID:630908发表于 2019-10-27 15:11|显示全部楼层
有电路图吗?
ID:163044发表于 2023-2-16 19:23|显示全部楼层
请问有驱动的库文件吗..
ID:1083556发表于 2023-7-23 01:27|显示全部楼层
用字符(中文字库)的12864能做么?
ID:1083556发表于 2023-7-23 11:52来自手机|显示全部楼层
内容很深刻,支持

手机版|小黑屋|51黑电子论坛|51黑电子论坛6群QQ管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网