1、 单片机课程设计报告单片机课程设计报告 液晶点阵显示屏程序设计 姓 名: 专业班级: 通信 1002 学 号: 指导老师: 设计日期: 2013.01.072013.01.11 计算机科学与通信工程学院 2 一、设计目的一、设计目的 1、了解液晶显示屏的工作原理; 2、掌握液晶显示屏显示程序的设计方法; 3、熟练掌握C51系统仿真开发系统的应用; 4、加强单片机的综合运用能力、提高单片机的软件编程和调试能力,为以 后的学习和开发工作打下良好基础。 二、设计二、设计要求要求 1、从下到上滚动显示:“江苏大学计算机学院”然后交替显示:“2010 年 单片机课程设计” “液晶点阵显示屏程序设计”“作
2、者姓名、班级、学号” 2、改变字库的内容,显示其它汉字。 3、改变页地址或列地址,使显示的内容改变位置。 4、其它功能不限,可自由发挥(左、右移,上下卷、显示图片、时钟等) 。 5、能进行正常的模拟量采样值显示(温度、压力、电位) 。 三、设计方案三、设计方案 3.1 3.1 设计设计原理及原理及思路思路 实验中用到的 OCM12864 液晶显示模块是 12864 点阵型液晶显示模块,可 显示各种字符及图形,可与 CPU 直接接口,具有 8 位标准数据总线、6 条控制线 及电源线。采用 KS0107 控制 IC。 OCM12864 的逻辑工作电压(Vcc) :4.55.5V;工作温度(Ta)
3、:055(常 温)/-2070(宽温) ;保存温度(Tstg) :-1065。 电气特性 (测试条件 Ta=25,Vdd=5.0+/-0.25V) : 输入高电平(Vih): 3.5Vmin; 输入低电平(Vil):0.55Vmax;输出高电平(Voh):3.75Vmin;输出低电平(Vol): 1.0Vmax;工作电流:2.0mAmax。 程序可分为四个模块: 主函数模块 main.c; 模数转换模块 ADC.c; 液晶显示模块 KS0108.c; 时钟模块 I2C.c。 其中, 主函数模块做一些初始化和函数调用工作, 模数转换模块主要将温度、 压力和电压的值转化为数字量供液晶显示用,时钟模
4、块主要读取时间,可以让时 钟正常运行, 液晶显示模块将得到的模数转换传递过来的数字量和时钟模块的时 间显示到液晶面板上。 3.3.2 2 程序框图程序框图 1、主流程图 计算机科学与通信工程学院 3 2、主函数模块 main.c 3、模数转换模块 ADC.c 开 始 主函数模块 液晶显示模块 时钟模块 模数转换模块 开 始 初始化时钟 初始化定时器 初始化 IO 口 初始化 SPIO 初始化 ADC 使能比较器 1 使能片内参考电压 使能 DAC0 开中断 调用 TestLCD() 和 TestI2C() 结 束 计算机科学与通信工程学院 4 4、液晶显示模块 KS0108.c 5、时钟模块
5、I2C.c No=1? No=2? No=3? 读取 No 和模拟量 开 始 返回温度 返回电压 返回压力 结 束 是 是 是 否 否 否 开 始 Test7279 模块 初始化 LCD 显示 4 幅图片: 江苏大学计算机学院 2010 年单片机课程设计 液晶点阵显示屏程序设计 姓名、班级、学号 显示汉字“你好” 结 束 计算机科学与通信工程学院 5 3.3 3.3 源程序源程序 主函数模块主函数模块 main.cmain.c #include “c8051f020.h“ #include void Delay1us(unsigned char us) while (us) _nop_();
6、_nop_(); _nop_(); _nop_(); _nop_(); -us; 开 始 写、读 S-3530A 内部 实时数据寄存器程序 写、 读状态寄存器程序 中断服务函数 显示主菜单 读取按键值 No No=0? No=1? No=2? No=3? No=4? 返回主菜单 No=5? 显示温度 显示电压 显示压力 动画 显示时钟 结 束 是 是 是 是 是 是 否 否 否 否 否 否 计算机科学与通信工程学院 6 void SYSCLK_Init (void) /系统始终初始化 int i; OSCXCN = 0x67; for (i=0; i 8; / set Timer0 to overflow in 1ms TL0 = -SYSCLK/1000; 计算机科学与通信工程学院 7 TR0 = 1; /