收藏 分享(赏)

LCD12864画点画线画圆画正弦波.doc

上传人:精品资料 文档编号:11123034 上传时间:2020-02-08 格式:DOC 页数:11 大小:132.50KB
下载 相关 举报
LCD12864画点画线画圆画正弦波.doc_第1页
第1页 / 共11页
LCD12864画点画线画圆画正弦波.doc_第2页
第2页 / 共11页
LCD12864画点画线画圆画正弦波.doc_第3页
第3页 / 共11页
LCD12864画点画线画圆画正弦波.doc_第4页
第4页 / 共11页
LCD12864画点画线画圆画正弦波.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、LCD12864画点画线画圆画正弦波实际效果图如下:C程序如下:#include#include#define uchar unsigned char#define uint unsigned int#define LCD P0uchar chip_select=1;bit color=0;sbit e=P21;sbit rw=P22;sbit rs=P23;sbit cs2=P24;sbit cs1=P25;uchar line=0;uchar select=0;void delay(uint i)while(i-);/* check busy */void checkBusy() /检查L

2、CD是否忙uchar dat;rs=0;/指令操作rw=1;/读出操作do LCD=0xff;/P0设置为输入e=1;/给使能信号dat=0x80/只判断DB7位的状态e=0;while(dat=0x80);/忙则继续检测void lcdWrite(bit ml,uchar zifu)checkBusy();rs=ml;rw=0;P0=zifu;e=1;delay(1);e=0;void ClearLCD(uchar zifu)uchar i,j;lcdWrite(0,0x3f);cs1=1;cs2=1;for(i=0;i 3);/计算出属于哪个字节 uchar BX = Y - (DX 63

3、) chip_select=2;X -= 64;else chip_select=1;lcdWrite(0,0xb8+DX);/设行地址lcdWrite(0,0x40+X);/设列地址TempData = ReadData();/读出所画点所在字节的内容switch (Type) /对该字节进行相应操作case 0:TempData x1=x2;x2=x;for ( x=x1;x=x1)temp=1;d_x=x2-x1;else d_x=x1-x2;x=x1;y=y1;DrawPoint(x,y,1);if(tempd_y=y2-y;if(errd_x)while(y!=y2)d_x=x-x2

4、;d_y=y2-y;if(err0)x=x-1;y=y+1;err=err+d_y-d_x;else y=y+1;err=err-d_x;DrawPoint(x,y,1);/*/void DrawLevel(void)for(i=0;i127;i+)DrawPoint(i,32,1);/画水平直线/*/void DrawSineWave(void)uchar xn=0;uchar yn=32;uchar i;uchar xi,yi;for(i=0;i127;i+)xi=i;yi=(sin(i*0.1)*32)+32;DrawLine(xn,yn,xi,yi);/在一系列零散的点上,两点两点之间

5、连线,从而得到一条曲线xn=i;yn=yi;/*/void DrawCircle(uchar x0,uchar y0,uchar r)/x0,y0为圆心坐标,r为圆半径uchar xn,yn,xi,yi;unsigned int j;xn=cos(0)*r+x0;yn=sin(0)*r+y0;for(j=0;j630;j+)xi=(cos(j*0.01)*r)+x0;yi=(sin(j*0.01)*r)+y0;DrawLine(xn,yn,xi,yi);/在一系列零散的点上,两点两点之间连线,从而得到一条曲线xn=xi;yn=yi;/*/void DrawRetic(uchar x0,ucha

6、r y0,uchar x1,uchar y1)/画正方形,x0,y0为左上角坐标,x1,y1为右下角坐标DrawLine(x0,y0,x1,y0);DrawLine(x0,y0,x0,y1);DrawLine(x1,y0,x1,y1);DrawLine(x0,y1,x1,y1);/* uchar i;for(i=0;i=x1-x0;i+)DrawPoint(x0+i,y0,1);DrawPoint(x0+i,y1,1);for(i=0;i=y1-y0;i+)DrawPoint(x0,y0+i,1);DrawPoint(x1,y0+i,1);*/*/void DrawTrigle(uchar x

7、1,uchar y1,uchar x2,uchar y2,uchar x3,uchar y3)/画三角形,三个坐标为三角形顶点DrawLine(x1,y1,x2,y2);DrawLine(x2,y2,x3,y3);DrawLine(x1,y1,x3,y3);/* main */void main(void)initLCD();while(1)ClearLCD(0x00);cs1=1;cs2=0;jis(0,32,2,16,1,2,hz);cs1=0;cs2=1;jis(0,0,2,16,1,2,hz+2*32);DrawLine(0,63,127,0);DrawRetic(10,10,100,50);DrawTrigle(63,17,20,60,100,60);DrawLevel();DrawSineWave();DrawCircle(63,32,r);r-=4;if (r8)r=32;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报