- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
液晶点阵显示屏程序设计规划
单片机课程设计报告
——液晶点阵显示屏程序设计 一 设计目的
1)了解液晶显示屏的工作原理
2)掌握液晶显示屏显示程序的设计方法
二 设计要求
1)从下到上滚动显示:“江苏大学计算机学院”然后交替显示:“年单片机课程设计”“液晶点阵显示屏程序设计”“作者姓名、班级、学号”
2) 改变字库的内容,显示其它汉字。
3) 改变页地址或列地址,使显示的内容改变位置。
4)其它功能不限,可自由发挥(左右移,上下卷、显示图片、时钟等)。
5)能进行正常的模拟量采样值显示(温度、压力、电位) 。
三 设计方案(包括文字说明,程序框图,加注释的源程序清单)
1)设计思路:从功能实现和流程原理进行设计。将程序分成三个模块: 主函数模块main.c 模数转换模块ADC.c 液晶显示模块KS0108.c 其中让主函数模块做一些初始化和函数调用工作,模数转换模块主要是将温度,压力,点位的值转化为数字量供液晶显示用,液晶显示模块得到模数转换模块传递过来的数字量显示到液晶面板上。
2)设计原理
①本实验板中使用的是内置12864A的液晶屏。12864A由两片带控制器的列驱动电路KS0108和一片行驱动电路KS0107组成主要的硬件电路,另外还可以附加负压发生电路。显示方由一片128*64的液晶片组成。
②12864A液晶显示模块是128×64点阵型液晶显示模块,可显示各种字符及图形,可与CPU直接接口,具有8位标准数据总线、6条控制线及电源线。采用KS0107控制IC。
③12864A的逻辑工作电压(Vcc):4.5~5.5V ;工作温度(Ta):0~55℃(常温) / -20~70℃(宽温);保存温度(Tstg):-10~65℃。
电气特性:测试条件 Ta=25,Vdd=5.0+/-0.25V
3)系统流程图
1 函数模块
:
2 主函数流程图:
3 LCD显示模块流程图
4 模数转换模块流程图
4)设计程序
1、主函数(main.c)部分功能代码说明
①对系统时钟、端口、串口、定时器等进行初始化和设定(舍)
void SYSCLK_Init (void) //初始化系统时钟,采用11.0592MHZ外部晶振
void PORT_Init (void) //端口初始化
void SPI0_Init (void) //SP10串口初始化
void Timer0_Init (void) //定时器0初始化
void Timer0_ISR (void) interrupt 1 //定时器0中断服务程序 1ms
②对程序中使用的函数定义
void Delay1us(unsigned char us);//延时1us
void TestLCD(void);//测试LCD功能
void LCD_WriteHZ(char,char,char*);//显示16*16点阵汉字
void LCD_WriteSZ(char,char,char);//显示显示16*16点阵数字
void LCD_WritePoint(char,char);// 显示8*16点阵点
void LCD_WriteZM(char x,char y,char*);//显示16*16点阵字母
void init_adc(void);//ADC初始化
unsigned int GetADCValue(char No);//读取模数转换结果
③主函数设置
void main (void)
{
unsigned int w,g,m; //温度,电压,压力
char buf[4];
WDTCN = 0xde;
WDTCN = 0xad; //关看门狗
SYSCLK_Init (); //初始化时钟
Timer0_Init(); //初始化定时器
PORT_Init (); //初始化IO口
SPI0_Init (); //初始化SPI0
init_adc();
CPT1CN|=0x80; //使能比较器1
REF0CN = 0x07; //使能片内参考电压
DAC0CN |= 0x80; //使能DAC0
DAC0H=0; DAC0L=0;
EA=1; //开中断
④测试LCD功能,对温度、电压、压力进行定义和输出
TestLCD();//测试LCD功能
w =GetADCValue(1); //读取模数转换结果 1通道值
g =GetADCValue(2);
m =GetADCValue(3);
for (;;)
{
buf[0]=(w%10000)
文档评论(0)