内容发布更新时间 : 2024/11/19 3:35:27星期一 下面是文章的全部内容请认真阅读。
如上图所示,12864的八位数据端接单片机的P0口,其三个使能端RS、RW、E分别接单片机的P2.2—P2.4。通过软件控制液晶屏可以显示波形以及波形的幅度和频率。
带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。
LCD12864基本特性:
(1)、低电源电压(VDD:+3.0--+5.5V)(2)、显示分辨率:128×64点 (3)、内置汉字字库,提供8192个16×16点阵汉字(简繁体可选) (4)、内置 128个16×8点阵字符 (5)、2MHZ时钟频率 (6)、显示方式:STN、半透、正显 (7)、驱动方式:1/32DUTY,1/5BIAS (8)、视角方向:6点 (9)、背光方式:侧部高亮白色LED,功耗仅为普通LED的1/5—1/10 (10)、通讯方式:串行、并口可选 (11)、内置DC-DC转换电路,无需外加负压 (12)、无需片选信号,简化软件设计(13)、工作温度: 0℃ - +55℃ ,存储温度: -20℃-+60℃
图(5) 数码管显示模块
通过一位数码管显示波形类型(1-3).
(3)按键显示模块的设计
本系统采用独立按键,其连接电路图如下:
图(6) 按键显示模块
图中四个按键引出的四个线分别接单片机的P3.2—P3.6口,如图KEY1用来切换输出波形、KEY2和KEY3用来调节频率的加减,KEY4和KEY5用来调节幅度的加减。当按KEY2时输出波形的频率增加,按KEY3时输出波形的频率减小。当按KEY4时输出波形的幅度增加,按KEY5时输出波形的幅度减小。
软件设计流程:
本系统采用AT89C51单片机,用编程的方法来产生三种波形,并通过编程 来切换三种波形以及波形频率的改变。
具体功能有:(1)各个波形的切换;(2)各种参数的设定;(3)频率增减等。
软件调通后,通过编程器下载到AT89C51芯片中,然后插到系统中即可独立完成所有的控制。
软件的流程图如下:
开始
I2C总线协议 主函数
初始化 根据相应的wave值进入相应的if语句 wave=1 wave=2 wave=3 输出三角波液晶显示 输出正弦波液晶显示 输出方波液晶显示 图(7)软件的流程图
部分程序代码: hnh.c文件:
#include
#define uchar unsigned char #define uint unsigned int #define _Nop() _nop_()
#define AddW 0x90 #define AddR 0x91
sbit SDA=P2^0;
sbit SCL=P2^1;
sbit key1=P3^2; sbit key2=P3^3; sbit key3=P3^4; sbit key4=P3^5; sbit key5=P3^6;
bit back;
uchar wave=0; uchar f=1; uchar A1=10; uchar A2=1; uint num=0;
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,};
unsigned char code fangbo[]=
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,} ;
unsigned char code sanjiao[]
={ 0,4,8,12,16,20,24,28,32,36,40,44,48,52,56, 60,64,68,72,76,80,84,88,92,96,100,104, 108,112,116,120,124,128,124,120,116,112, 108,104,100,96,92,88,84,80,76,72,68,64,
60,56,52,48,44,40,36,32,28,24,20,16,12,8,4,0,};
unsigned char code sin[]
={135,145,158,167,176,188,199,209,218,226, 234,240,245,249,252,254,254,253,251,247, 243,237,230,222,213,204,193,182,170,158, 146,133,121,108,96,84,72,61,50,41,32,24, 17,11,7,3,1,0,0,2,5,9,14,20,28,36,45,55,66, 78,90,102,114,128 } ;
void delay1(uint z) {
uint x,y; for(x=z;x>0;x--) for(y=60;y>0;y--); }
共阴 //