




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、液晶点阵显示屏程序设计液晶点阵显示屏程序设计单片机课程设计报告一、设计题目:液晶点阵显示屏程序设计二、设计要求:1能进行正常的模拟量采样值显示(温度、压力、电位),并将其显示到液晶面板上。2LCD将从下到上滚动显示:“江苏大学计算机学院”,然后显示:“2006年单片机课程设计”“液晶点阵显示屏程序设计”“作者姓名、班级、学号”3改变字库的内容,显示其它汉字。4改变页地址或列地址,使显示的内容改变位置5改变滚动显示模式,使显示内容左右、上下滚动;改变参数使滚动速度变化。三、设计思路及实施步骤:(-)设计思路:由于实验指导书中做过液晶显示和模数转换得实验,根据两个实验的功能实现和流程原理进行设计将
2、程序分成三个模块:主函数模块main.c模数转换模块ADC.C液晶显示模块KS0108.C其中让主函数模块做一些初始化和函数调用工作,模数转换模块主要是将温度,压力,点位的值转化为数字量供液晶显示用,液晶显示模块得到模数转换模块传递过来的数字量显示到液晶面板上。(二)系统流程图:1系统主流程图如下:3显示模块流程图(三)系统部分程序功能说明1、主函数部分功能代码说明主函数模块中的主函数代码:最后调用TestLCD。进行显示。voidmain(void)WDTCN=Oxde;WDTCN=Oxad;关看门狗SYSCLKnit0;初始化系统时钟TimerO_Init();/初始化定时器TOPORT.
3、Init();PORT初始化IO端口init_adc();/ADCO初始化CPTlCNI=0x80;使能比较器1EA=1;开中断TestLCD();调用液晶显示模块)2、模数转换中取得值的函数。unsignedintGetADCValue(charNo)(read_analog_inputs();read_analog_inputs();read_analog_inputs();switch(No)(case 1:returnTemp;case 2:returnVolt;case 3:if(Press<10)Press=O;returnPress;3、定义字和位图(取模的值省略)。其中“
4、江苏大学计算机学院,班级,姓名”采用位图格式,用voidDispBmp(char*buf)函数显示,数字采用8*16,采用voidLCD_VriteJSDX8(charx,chary,char*Dot)显示,汉字采用16*16,采用voidLCD_WrlteJSDX(charx,chary,char*Dot)显示。charcodejiang=/*-文字:江苏大学计算机学院*/;charcodesu=/*-文字:班级,姓名等-*/charcodeling=*-文字:0-*/0x00,0xE0,0x10,0x08,0x08,Ox10,0xE0,0x00,0x00,OxOF,Ox10,0x20,0x
5、20,Ox10,0x0F,0x00,);下面依次定义L2,3,4,5,6,7,8,9,空格,点和温,度,压,力,电,位等,其中温,度,压,力,电,位为16*16,其余为8*16。4、定义并实现显示8*16点数字的函数voidLCD_VVriteJSDX8(charx,chary,char*Dot),代码如下:voidLCD_WriteJSDX8(charx,chary,char*Dot)显示8*16点阵汉字(chari;for(i=0;i<16;i+)(if(x+i%8)<64)LCD_WriteCommandl(0xB8+y+i/8);LCD_WriteCommandl(0x40
6、+x+i%8);LCD_WriteDatal(Dotl);elseLCD_WriteCommand2(0xB8+y+l/8);LCD_WriteCommand2(0x40+x-64+i%8);LCD_VVriteData2(Doti);5、显示函数部分代码:voidTestLCD(void)一下代码输出江苏大学计算机学院并向上滚动DispBmp(Jiang);for(i=0;i<64;i+)(Delaylms(10);LCD_WriteCoinmandl(0xc0+i%64);设置起始行,实现向上滚动LCD_WriteCoinmand2(0xc0+i%64);)以下代码实现输出班级姓名D
7、ispBmp(su);显示姓名,以下代码实现将取回的数字值及相关文字放入从间数组内if(No=l)(buf0=,wen,;bufl='du,;buf2=(w%10000)/1000;buf3=(w%1000)/100;buf4=,.*;buf5=(w%100)/10;buf6=(w%10);elseif(No=2)bufO='dd'bufl='wei,;buf2=(w%10000)/1000;buf3=,.*;buf4=(w%1000)/100;buf5=(w%100)/10;buf6=(w%10);)else(buf0=,ya,;bufl='li,;b
8、uf2=(w%10000)/1000;buf3=(w%1000)/100;buf4=,.*;buf5=(w%100)/10;buf6=(w%10);)下面代码实现显示buf数组。for(i=0;l<7;i+)switch(bufi)case0:LCD_WHteJSDX8(i*16,4,Hng);显示8*16点阵汉字'O'break;casel:LCD_WriteJSDX8(l*16,4,yl);/显示8*16点阵汉字Tbreak;case2:LCD_WriteJSDX8(i*16,4,er);显示8*16点阵汉字2break;case3:LCD_WriteJSDX8(i*
9、16,4,san);/S8*16点阵汉字3break;case4:LCD_WrteJSDX8(i*16,4Ai)显示8*16点阵汉字'4'break;case5:LCD_WriteJSDX8(i*16,4,wu);显示8*16点阵汉字5break;case6:LCD_VVriteJSDX8(i*16,4,Hu);/fi8*16点阵汉字6break;case7:LCD_WriteJSDX8(l*16,4,qi);显示8*16点阵汉字7break;case8:LCD_WriteJSDX8(i*16,4,ba);显示8*16点阵汉字8break;case9:LCD_WriteJSDX
10、8(i*16,4Jiu)/M8*16点阵汉字9break;caseT:LCD_WHteJSDX8(i*16,4,dian);显示8*16点阵汉字break;case'w':LCD_WriteJSDX(i*16,4,wen);显示16*16点阵汉字'温,break;cased,:LCD_WriteJSDX(i*16,4,du);/M16*16点阵汉字度'break;casey:LCDJWriteJSDX(i*16,4,ya);/显示16*16点阵汉字压,break;caseT:LCD_WriteJSDX(l*16,4Ji);/显示16*16点阵汉字'力,b
11、reak;case3:LCDJWriteJSDX(i*16,4,dd);/显示16*16点阵汉字'电,break;caseb,:LCD_WriteJSDX(i*16,4,wei);/SS16*16点阵汉字位'break;四、结果分析:将如下源文件main©c8051F020.h,ADC.c,KS0108.C加入到开发工具中,调试程序,并下载到单片机中运行,首先有“江苏大学计算机学院”一行字向上滚动,然后显示“液晶点阵显示屏程序设计,班级,姓名”当这些字显示完毕后,进入温度、压力、电位显示模块中,按1键,液晶屏上将显示温度*.*;按2键,液晶屏上将显示电位*.*;按3键
12、,液晶屏上将显示压力*.*。*代表数字。注意由于延时等原因,有时候按键后并不能转换为另一种要求的显示。系统基本按照课程设计的要求实现了所有功能,在程序设计和调试过程中,遇到和解决了以下几个问题:第一个就是在取字模的时候对于连续几行字的取模老是不成功,后来我采用了在画图板中把字排好版,然后用取模软件打开位图进行取模;第二个问题是刚开始的时候,用LCD_VVriteJSDX(charx,chary,char*Dot)函数由于对8*16的数字汉字进行显示时,造成乱码,后来发现了问题,写了一个LCD_VriteJSDX8(charx,chary,char*Dot)函数,专门用来写8*16的汉字,第三个问题是在按键选择时,bu电数组会得到错误的数据,这是由于if控制结构没有写好,还有就是小数点到底在哪一位上,也耽误了我一点时间。虽然说基本功能都实现了,但是还有一些方面做得不够好或者有待改进:一个是程序功能划分不够好,按键选择控制部分应该放在main函数中更为符合,而液晶显示模块只负责显示,AD转换模块只负责转换,程序控制权交给main函数。而现在负责控制的是液晶显示模块。还有一个是汉字的左右滚动功能没有实现。五、课程设计小结:由于自己在大三时候休学没有上好数字逻辑,汇编语言和计算机组成原理等课,使我在复学后
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智慧安防保障城市安全的智能系统
- 从心理成长到创新教育的理论框架构建与实践
- 智慧城市公共安全的综合治理与大数据应用
- 学生创新能力培养的教育心理学策略
- 以教育技术为媒介探索增强学生学习动力和效率的新路径
- 当代办公室内应用个化学资料的有效性及其对于技术变革的响应
- 中职数学基础模块课件
- 企业级数据治理平台的构建与实践
- 医疗科技与智慧教育的深度融合探讨
- 机器人辅助的医疗教学与智能教育探索
- 初中体育教学中德育教育的现状、问题与突破路径探究
- 基层供销社管理制度
- 农业供应链管理考试试题及答案
- 人行雨棚施工方案
- 2025-2030中国晶圆键合系统行业市场发展趋势与前景展望战略分析研究报告
- 从校园到职场:新员工角色转换与职业化塑造
- 奶茶服务协议合同
- 学生食堂维修改造工程施工组织设计
- 2025年章鱼小丸子项目可行性研究报告
- “中小学生每天至少2小时体育活动”的价值追求与实现路径研究
- 2024年四川成都农业科技中心招聘笔试真题
评论
0/150
提交评论