logo资料库

单片机画正弦波,原理图、程序代码和PROTEUS仿真图.pdf

第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
资料共15页,剩余部分请下载后查看
吴鉴鹰单片机项目之12864正弦波的显示2014.3.14吴鉴鹰设计/*******************************************************程序:LCD12664液晶显示原理***这一讲的主要内容:LCD12664液晶显示原理**功能描述:完成12864正弦波的显示**输入:**液晶:Proteus元件库—AMPIRE128X64(无字库)**内容:完成12864正弦波的显示**输出:****全局变量:**调用模块:****作者:吴鉴鹰**日期:14.03.14备注:有什么错误的地方,欢迎各大烧友指正,感谢电子发烧友提供这个平台能跟各大烧友一同分享,一同进步O(∩_∩)O~*******************************************************/
吴鉴鹰单片机项目之12864正弦波的显示2014.3.14吴鉴鹰设计程序代码:#include#include#include//#include"wujianying.h"#defineucharunsignedchar#defineuintunsignedint#defineLCD_DATA_BUSP0//LCD12864的8位数据口sbitLCD_RS_OUT=P2^2;//LCD_RS_OUT为0---命令;1----数据sbitLCD_RW_OUT=P2^1;//LCD_RW_OUT为1---写;0---读sbitLCD_EN_OUT=P2^0;//使能端sbitLCD_CS1_OUT=P2^4;//片选1低电平有效,控制左半屏sbitLCD_CS2_OUT=P2^3;//片选1低电平有效,控制右半屏unsignedcharcodeBMP[][64]={/*--调入了一幅图像:D:\Desktop\12848坐标.BMP--*//*--宽度x高度=128x48--*/0x50,0x50,0xF0,0x00,0x70,0x50,0xD0,0x02,0xFF,0x42,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,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,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
吴鉴鹰单片机项目之12864正弦波的显示2014.3.14吴鉴鹰设计0xA1,0xA1,0xE1,0x00,0xE1,0xA1,0xA1,0x00,0xFF,0x08,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,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,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x02,0x02,0x00,0x02,0x02,0x03,0x00,0xFF,0x21,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,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,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x17,0x15,0x1D,0x00,0xFF,0x84,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,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,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,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,0x5C,0x54,0x74,0x00,0xFF,0x10,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,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,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,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,0xFB,0x8A,0xFA,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0xFB,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0xEA,0xAB,0xBA,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0xAA,0xAB,0xFA,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x3A,0x23,0xFA,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0xBA,0xAB,0xEA,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0xFA,0xAB,0xEA,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x0A,0x0B,0xFA,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0xFA,0xAB,0xFA,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0xBA,0xAB,0xFA,0x02,0x02,0x02,0x02,0x02,0x02,0xFA,0x02,0xFB,0x8A,0xFA,0x02,0x02,0x02,0x02,0x02,0x02,0xFA,0x03,0x02,0xFA,0x02,0x02,0x02,0x02,0x07,0x02,0x00};unsignedcharcodewu[]={/*--文字:吴--*/
吴鉴鹰单片机项目之12864正弦波的显示2014.3.14吴鉴鹰设计/*--楷体_GB231212;此字体下对应的点阵为:宽x高=16x16--*/0x00,0x00,0x80,0x9E,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x9E,0x80,0x00,0x00,0x00,0x84,0x84,0x44,0x44,0x24,0x14,0x0C,0x07,0x0C,0x14,0x24,0x44,0x44,0x84,0x84,0x00};unsignedcharcodeJIAN[]={/*--文字:鉴--*//*--楷体_GB231212;此字体下对应的点阵为:宽x高=16x16--*/0x00,0x00,0x3E,0x00,0x80,0xBF,0x40,0x20,0x58,0x87,0x84,0x0C,0x34,0x04,0x00,0x00,0x02,0x42,0x49,0x49,0x5A,0x6A,0x4A,0x7E,0x4A,0x6A,0x5A,0x49,0x49,0x42,0x02,0x00};unsignedcharcodeYINGY[]={/*--文字:鹰--*//*--楷体_GB231212;此字体下对应的点阵为:宽x高=16x16--*/0x00,0x00,0xFE,0x22,0x12,0xFA,0x26,0x12,0xFB,0xAE,0xAA,0xFE,0xAA,0xAA,0x02,0x00,0x40,0x30,0x0F,0x40,0x40,0x5E,0x52,0x53,0x56,0x52,0x1A,0x56,0x90,0x70,0x00,0x00};unsignedcharcodeJIAO[]={/*--文字:教--*//*--楷体_GB231212;此字体下对应的点阵为:宽x高=16x16--*/0x20,0xA4,0xA4,0xA4,0xFF,0xA4,0xB4,0x28,0x84,0x70,0x8F,0x08,0x08,0xF8,0x08,0x00,0x04,0x0A,0x49,0x88,0x7E,0x05,0x04,0x84,0x40,0x20,0x13,0x0C,0x33,0x40,0x80,0x00};unsignedcharcodeHUAA[]={/*--文字:画--*//*--楷体_GB231212;此字体下对应的点阵为:宽x高=16x16--*/0x02,0xF2,0x02,0x02,0xF2,0x92,0x92,0xF2,0x92,0x92,0xF2,0x02,0x02,0xF2,0x02,0x00,0x00,0x7F,0x40,0x40,0x4F,0x48,0x48,0x4F,0x48,0x48,0x4F,0x40,0x40,0xFF,0x00,0x00};unsignedcharcodeZHENG[]={/*--文字:正--*//*--楷体_GB231212;此字体下对应的点阵为:宽x高=16x16--*/0x00,0x02,0x02,0xC2,0x02,0x02,0x02,0xFE,0x82,0x82,0x82,0x82,0x82,0x02,0x00,0x00,0x40,0x40,0x40,0x7F,0x40,0x40,0x40,0x7F,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00};unsignedcharcodeXUAN[]={/*--文字:弦--*//*--楷体_GB231212;此字体下对应的点阵为:宽x高=16x16--*/0x02,0xE2,0x22,0x22,0x3E,0x00,0x08,0x88,0x48,0x39,0x0E,0x08,0xC8,0x08,0x08,0x00,0x00,0x43,0x82,0x42,0x3E,0x00,0x21,0x71,0x29,0x25,0x23,0x21,0x28,0x70,0x00,0x00};unsignedcharcodeBOBO[]={/*--文字:波--*//*--楷体_GB231212;此字体下对应的点阵为:宽x高=16x16--*/0x10,0x60,0x02,0x0C,0xC0,0x00,0xF8,0x88,0x88,0x88,0xFF,0x88,0x88,0xA8,0x18,0x00,
吴鉴鹰单片机项目之12864正弦波的显示2014.3.14吴鉴鹰设计0x04,0x04,0x7C,0x03,0x80,0x60,0x1F,0x80,0x43,0x2C,0x10,0x28,0x46,0x81,0x80,0x00};/*********************************************************************************************函数名称:voidCHECK_busy()**功能描述:读“忙”函数,判断液晶当前是否忙碌**输入:******输出:****全局变量:**调用模块:****作者:吴鉴鹰**日期:14.03.14********************************************************************************************/voidCHECK_BUSY_HS()//读“忙”函数-----数据线的最高位DB71则busy{P0=0x00;LCD_RS_OUT=0;LCD_RW_OUT=1;LCD_EN_OUT=1;while(P0&0x80);LCD_EN_OUT=0;}/*********************************************************************************************函数名称:voidLCD_DATA_WRI(ucharvalue)**功能描述:LCD液晶写数据的函数**输入:ucharvalue(向LCD写入的数据)******输出:****全局变量:**调用模块:
吴鉴鹰单片机项目之12864正弦波的显示2014.3.14吴鉴鹰设计****作者:吴鉴鹰**日期:14.03.14********************************************************************************************/voidLCD_DATA_WRI(ucharvalue)//写数据函数{CHECK_BUSY_HS();LCD_RS_OUT=1;//选择数据LCD_RW_OUT=0;LCD_DATA_BUS=value;LCD_EN_OUT=1;//LCD_EN_OUT由1----0锁存有效数据_nop_();_nop_();LCD_EN_OUT=0;}/*********************************************************************************************函数名称:voidLCD_COM_WRI(ucharvalue)**功能描述:LCD液晶写命令函数**输入:ucharvalue(向LCD写入的命令)******输出:****全局变量:**调用模块:****作者:吴鉴鹰**日期:14.03.14********************************************************************************************/voidLCD_CMD_WRI(ucharvalue)//写命令函数{CHECK_BUSY_HS();//对LCD的每次读写都要读忙LCD_RS_OUT=0;//选择命令LCD_RW_OUT=0;//读操作LCD_DATA_BUS=value;LCD_EN_OUT=1;//LCD_EN_OUT由1----0锁存有效数据_nop_();_nop_();LCD_EN_OUT=0;}
吴鉴鹰单片机项目之12864正弦波的显示2014.3.14吴鉴鹰设计/*********************************************************************************************函数名称:ucharLCD_DATA_READ(void)**功能描述:读LCD数据函数**输入:******输出:returnvalue(返回读出的数据)****全局变量:**调用模块:****作者:吴鉴鹰**日期:14.03.14********************************************************************************************/ucharLCD_DATA_READ(void)//读数据函数{ucharvalue;CHECK_BUSY_HS();LCD_DATA_BUS=0xFF;//先进行一次空读操作LCD_RS_OUT=1;LCD_RW_OUT=1;LCD_EN_OUT=1;_nop_();_nop_();LCD_EN_OUT=0;LCD_DATA_BUS=0xFF;//读取真正的数据LCD_RS_OUT=1;LCD_RW_OUT=1;LCD_EN_OUT=1;value=LCD_DATA_BUS;_nop_();_nop_();LCD_EN_OUT=0;returnvalue;}/******************************************************************************
吴鉴鹰单片机项目之12864正弦波的显示2014.3.14吴鉴鹰设计***************函数名称:voidCHOOSE_PG(ucharpage)**功能描述:设置“页”LCD12864共8页,一页是8行点阵点**输入:ucharpage(送入设置的页数)******输出:****全局变量:**调用模块:****作者:吴鉴鹰**日期:14.03.14********************************************************************************************/voidCHOOSE_page(ucharpage)//设置“页”LCD12864共8页,一页是8行点阵点{page=0xb8|page;//页的首地址为0xB8LCD_CMD_WRI(page);}/*********************************************************************************************函数名称:voidCHOOSE_line_data(ucharstartline)**功能描述:设置显示的起始行**输入:ucharstartline(送入设置的起始行)******输出:****全局变量:**调用模块:****作者:吴鉴鹰**日期:14.03.14********************************************************************************************/voidCHOOSE_line_data(ucharstartline)//设置显示的起始行{startline=0xC0|startline;//起始行地址为0xC0LCD_CMD_WRI(startline);//设置从哪行开始:共0--63;一般从0行开始显示}
分享到:
收藏