收藏 分销(赏)

单片机12864动态波形显示.doc

上传人:a199****6536 文档编号:2389220 上传时间:2024-05-29 格式:DOC 页数:12 大小:57.04KB
下载 相关 举报
单片机12864动态波形显示.doc_第1页
第1页 / 共12页
单片机12864动态波形显示.doc_第2页
第2页 / 共12页
单片机12864动态波形显示.doc_第3页
第3页 / 共12页
单片机12864动态波形显示.doc_第4页
第4页 / 共12页
单片机12864动态波形显示.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、(完整版)单片机12864动态波形显示/* 描述: * 12864标准字库液晶演示 数据p0,控制p2 */include include intrins。hdefine uchar unsigned chardefine uint unsigned int/* 12864LCD引脚定义 */define LCD_data P0 /数据口sbit LCD_RS = P26; /寄存器选择输入 sbit LCD_RW = P25; /液晶读/写控制sbit LCD_EN = P27; /液晶使能控制sbit LCD_PSB = P32; /串/并方式控制sbit LCD_RST = P37; /

2、液晶复位端口define delayNOP(); _nop_();_nop_();_nop_();_nop_();/*/uchar code DIS1 = Vpp:”;uchar code DIS2 = ”F:”;uchar DIS3 = ”5V”;uchar DIS4 = ”12Hz”;uchar D1=0123456789”;/*/正弦波代码uchar code tab=126,100,80,70,65,62,65,70,80,100,126,152,172,182,187,190,187,182,172,152;/背景图片uchar code Photo1=0x00,0x00,0x00,

3、0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,

4、0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

5、0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

6、0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

7、0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,

8、0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

9、0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

10、0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

11、0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,

12、0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

13、0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

14、0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

15、0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,

16、0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

17、0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

18、0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

19、0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,

20、0x00;/*/*/ */ 延时函数 /* /*/void delay(int ms) while(ms-) uchar i; for(i=0;i150;i+) _nop_(); _nop_();_nop_();_nop_(); /*/* */* 延时函数 */* /*/void delay1(int ms) while(ms) uchar y; for(y=0;y100;y+) ; /*/ */检查LCD忙状态 /lcd_busy为1时,忙,等待。lcd-busy为0时,闲,可写指令与数据。 */* */*/bit lcd_busy() bit result; LCD_RS = 0; LCD

21、_RW = 1; LCD_EN = 1; delayNOP(); result = (bit)(P00x80); LCD_EN = 0; return(result); /*/ /*写指令数据到LCD */RS=L,RW=L,E=高脉冲,D0-D7=指令码. */* */*/void lcd_wcmd(uchar cmd) while(lcd_busy()); LCD_RS = 0; LCD_RW = 0; LCD_EN = 0; _nop_(); _nop_(); P0 = cmd; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0; /*/ */

22、写显示数据到LCD /*RS=H,RW=L,E=高脉冲,D0D7=数据。 / */*/void lcd_wdat(uchar dat) while(lcd_busy(); LCD_RS = 1; LCD_RW = 0; LCD_EN = 0; P0 = dat; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0; /*读数据*/unsigned char readData(void)unsigned char RData;while(lcd_busy();P0=0xff;LCD_RS=1;LCD_RW=1;LCD_EN=0;LCD_EN=1;RDat

23、a=P0;/RData=dataPort;LCD_EN=0;return RData;/*/ */ LCD初始化设定 */* /*/void lcd_init() LCD_PSB = 1; /并口方式 LCD_RST = 0; /液晶复位 delay(2); LCD_RST = 1; delay(2); lcd_wcmd(0x34); /扩充指令操作 delay(5); lcd_wcmd(0x30); /基本指令操作 delay(5); lcd_wcmd(0x0C); /显示开,关光标 delay(5); lcd_wcmd(0x01); /清除LCD的显示内容 delay(5);/*/ / 设

24、定显示位置 / /*/void lcd_pos(uchar X,uchar Y) uchar pos; if (X=1) X=0x80; else if (X=2) X=0x90; else if (X=3) X=0x88; else if (X=4) X=0x98; pos = X+Y ; lcd_wcmd(pos); /显示地址/* * 图形显示 * */void photodisplay(uchar bmp) uchar i,j; lcd_wcmd(0x34); /写数据时,关闭图形显示 for(i=0;i32;i+) lcd_wcmd(0x80+i); /先写入水平坐标值 lcd_wc

25、md(0x80); /写入垂直坐标值 for(j=0;j16;j+) /再写入两个8位元的数据 lcd_wdat(*bmp+); delay1(1); for(i=0;i32;i+) lcd_wcmd(0x80+i); lcd_wcmd(0x88); for(j=0;j16;j+) lcd_wdat(*bmp+); delay1(1); lcd_wcmd(0x36); /写完数据,开图形显示 /* * 清屏函数 * */void clr_screen() lcd_wcmd(0x34); /扩充指令操作 delay(3); lcd_wcmd(0x30); /基本指令操作 delay(3); lc

26、d_wcmd(0x01); /清屏 delay(3); /*/uchar Y_wz(uchar a)uchar i;for(i=0;i64;i+)if(a(i*4))&(a=((i+1)*4)break;return i;/*函数名: drawPoint函数说明:画点传入参数:打点位置(x0,y0);color=1,点亮;color=0,擦除传出参数:无返回值: 无*/void drawPoint(unsigned char x,unsigned char y,unsigned char color)unsigned char row,collum,cbite;unsigned char te

27、mpH,tempL;lcd_wcmd(0x34); /设置扩充指令集,关闭绘图lcd_wcmd(0x36); /扩充指令集,打开绘图collum=x4; /列 左移四位cbite=x0x0f;if(y32)row=y;elserow=y-32;collum+=8;lcd_wcmd(0x80+row);lcd_wcmd(0x80+collum);readData();tempH=readData();tempL=readData();lcd_wcmd(0x80+row);lcd_wcmd(0x80+collum);if (color)if(cbite8)tempH|=(1(7cbite);/te

28、mpL=(1(7cbite);else/tempH=(1(15-cbite));tempL=(1(15cbite);elseif(cbite8)tempH=(1(7-cbite));/tempL=(1(7cbite));else/tempH=(1(15-cbite);tempL&=(1(15cbite);lcd_wdat(tempH);lcd_wdat(tempL);lcd_wcmd(0x30);/*/*画水平线*/void w_LineX( unsigned char X0, unsigned char X1, unsigned char Y) unsigned char Temp ; if

29、( X0 X1 ) Temp = X1 ; X1 = X0 ; X0 = Temp ; for( ; X0 = X1 ; X0+ ) drawPoint( X0, Y,1 ) ; /*画垂直线*/void w_LineY( unsigned char X, unsigned char Y0, unsigned char Y1 ) unsigned char Temp ; if( Y0 Y1 ) Temp = Y1 ; Y1 = Y0 ; Y0 = Temp ; for(; Y0 0 ) incx = 1; else if( delta_x = 0 ) w_LineY( StartX, StartY, EndY ) ; return ; else incx = -1 ; if( delta_y 0 ) incy = 1 ; else if(delta_y = 0 ) w_LineX( StartX, EndX, StartY ) ; return ; else incy = 1 ; delta_x = abs( delta_x ); delta_y = abs( delta_y ); if( delta_x delta_y ) distance = delta_x ; else

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 考试专区 > 中考

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服