为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

12864_液晶_画点画线正弦波余弦波(源代码及图片)

2012-10-27 7页 pdf 117KB 39阅读

用户头像

is_639354

暂无简介

举报
12864_液晶_画点画线正弦波余弦波(源代码及图片) http://item.taobao.com/item.htm?spm=a1z09.5.0.40.m0zgCu& id=16289846567 这里有大量与 12864液晶画点画线的相关资料,有用没 用都可以进来看看,只需要花费 0.1 元,就可以省去大量在 网上四处收集资料的时间。 12864.h//头文件 #ifndef __12864_H__ #define __12864_H__ #define uint unsigned int #define uchar unsigned char ...
12864_液晶_画点画线正弦波余弦波(源代码及图片)
http://item.taobao.com/item.htm?spm=a1z09.5.0.40.m0zgCu& id=16289846567 这里有大量与 12864液晶画点画线的相关,有用没 用都可以进来看看,只需要花费 0.1 元,就可以省去大量在 网上四处收集资料的时间。 12864.h//头文件 #ifndef __12864_H__ #define __12864_H__ #define uint unsigned int #define uchar unsigned char void delayus(uchar i); void delayms(uint z); void write_com(uchar com); void write_data(uchar dat); uchar read_data(); void LCD_init(); void Clear_GDRAM(); void Clear_Screen(); #endif http://item.taobao.com/item.htm?spm=a1z09.5.0.40.m0zgCu& id=16289846567 12864.c//c文件 #include #include "12864.h" #define uint unsigned int #define uchar unsigned char #define LCD_BUS P0 //LCD并口连接在 P0口 sbit RS=P3^5; sbit RW=P3^6; sbit E=P3^4; sbit PSB=P3^7; /******************************************/ //函数名称:delayus(uchar i) //函数功能:微秒级延时 //返回值:无 /******************************************/ void delayus(uchar i) { uchar j; for(j=i;j>0;j--); } http://item.taobao.com/item.htm?spm=a1z09.5.0.40.m0zgCu& id=16289846567 /******************************************/ //函数名称:delayms(uchar i) //函数功能:毫秒级延时 //返回值:无 /******************************************/ void delayms(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } /******************************************/ //函数名称:void check_busy() //函数功能:检查忙标志 BF //返回值:无 /******************************************/ void check_busy() { RS=0; RW=1; E=1; LCD_BUS=0xff; while((LCD_BUS&0x80)==0x80); E=0; } /******************************************/ //函数名称:write_com(uchar com) //函数功能:写指令到 LCD //返回值:无 /******************************************/ void write_com(uchar com) { uchar i; check_busy(); RS=0; RW=0; E=1; LCD_BUS=com; i++; E=0; i++; } http://item.taobao.com/item.htm?spm=a1z09.5.0.40.m0zgCu& id=16289846567 /******************************************/ //函数名称:write_data(uchar dat) //函数功能:写数据到 LCD //返回值:无 /******************************************/ void write_data(uchar dat) { uchar i; check_busy(); RS=1; RW=0; E=1; LCD_BUS=dat; i++; E=0; i++; } /******************************************/ //函数名称:read_data() //函数功能:写数据到 LCD //返回值:dat /******************************************/ uchar read_data() { uchar i; uchar temp; check_busy(); //LCD_BUS=0xff; RS=1; RW=1; E=1; temp=LCD_BUS; i++; E=0; return temp; } /******************************************/ //函数名称:LCD_init() //函数功能:12864液晶的初始化 //返回值:无 /******************************************/ void LCD_init() { write_com(0x30); delayus(15); write_com(0x30); delayus(8); write_com(0x0c); delayus(25); write_com(0x01); delayms(15); write_com(0x06); } /*****************************************/ //函数名称:void Clear_GDRAM() //函数功能:清除整个 GDRAM空间 //返回值:无 /*****************************************/ void Clear_GDRAM() { uchar i,j; for(i=0;i<64;i++) { for(j=0;j<16;j++) { write_com(0x34);//使用扩充指令 write_com(i+0x80); write_com(j+0x80); write_com(0x30);//回到基本指令 write_data(0x00); write_data(0x00); } } } http://item.taobao.com/item.htm?spm=a1z09.5.0.40.m0zgCu& id=16289846567 /*****************************************/ //函数名称:void Clear_Screen() //函数功能:清除整个液晶屏幕 //返回值:无 /*****************************************/ void Clear_Screen() { write_com(0x01); delayms(10); } http://item.taobao.com/item.htm?spm=a1z09.5.0.40.m0zgCu& id=16289846567 main.c//主函数 #include #include #include "12864.h" #define uint unsigned int #define uchar unsigned char void draw_point(uchar x,uchar y,uchar colour); void main() { uchar x,y; LCD_init(); Clear_GDRAM(); Clear_Screen(); for(x=0;x<128;x++) { y=32-31*cos(x*3.14/28); //余弦波显示 draw_point(x,y,1); } while(1); } /**************************************************/ //函数名称:drawpoint(uchar x,uchar y,uchar colour) //函数功能:在任意位置画点 //返回值:无 //x表示横坐标,y表示纵坐标 /**************************************************/ void draw_point(uchar x,uchar y,uchar colour) { uchar row,tier; //行 row,列 tier uchar temp_h,temp_l;//定义两个变量用来存放都回来的数据 uchar tier_bit;//取列的低 4位 write_com(0x34);//使用扩充指令 write_com(0x34);//关绘图显示 tier=x>>4;//取列的高 4位,判断在哪一大列,值为 0~7 tier_bit=x&0x0f;//取列低 4位,判断在高 8位还是在低 8位 if(y<32)//在上半屏 { row=y; } else//在下半屏 { row=y-32; tier+=8; } write_com(row+0x80);//先写行地址即垂直地址纵坐标 write_com(tier+0x80);//写列地址即横坐标 read_data();//空读一次 ,读点的状态 temp_h=read_data();//高 8位 temp_l=read_data();//低 8位 write_com(row+0x80);//先写行地址即垂直地址纵坐标,修改点的状态 write_com(tier+0x80);//写列地址即横坐标 if(tier_bit<8)//高位 { switch(colour) { case 0:temp_h&=(~(0x01<<(7-tier_bit))); break;//变白,复位 case 1:temp_h|=(0x01<<(7-tier_bit)); break; //变黑,置位 case 2:temp_h^=(0x01<<(7-tier_bit));break;//取反 default:break; } write_data(temp_h);//写高 8位,0~7在后 write_data(temp_l);//写低 8位,8~15在前 } else//低位 { switch(colour) { case 0:temp_l&=(~(0x01<<(15-tier_bit)));break;//变白 case 1:temp_l|=(0x01<<(15-tier_bit));break;//变黑 case 2:temp_l^=(0x01<<(15-tier_bit));break;//取反 default:break; } write_data(temp_h);//写数据,高 8位 0~7 write_data(temp_l);//写数据,低 8位 8~15 } write_com(0x36);//开绘图显示 write_com(0x30);//回到基本指令 } 实验现象: http://item.taobao.com/item.htm?spm=a1z09.5.0.40.m0zgCu& id=16289846567
/
本文档为【12864_液晶_画点画线正弦波余弦波(源代码及图片)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索