欢迎来到天天文库
浏览记录
ID:4421409
大小:663.54 KB
页数:27页
时间:2017-12-01
《点阵式液晶显示屏的显示程序设计_单片机原理及应用课程设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、单片机原理及应用课程设计学院名称:计算机学院专业班级:计算机1001学生姓名:秦佳学生学号:3100602007指导教师姓名:赵念强完成时间:2013年7月5日点阵式液晶显示屏的显示程序设计一、设计目的1.熟练掌握C51系统仿真开发系统的应用。2.加强单片机的综合运用能力、提高单片机的软件编程和调试能力,为以后的学习和开发工作打下良好基础。3.掌握的液晶的工作原理以及应用设计。4.掌握小系统开发设计的流程以及设计思路。二、设计方案1、实验要求:1)字符方式:从下到上滚动显示:“江苏大学计算机学院”然后交替显示:“2013年单片机课程设计”“液晶点阵显示屏程序设计”“作者姓名、班级、学号”2)
2、图片方式:显示相应图片(有左、右移,上下卷等多种动态方式)3)模拟量采样值显示(温度、压力、电位)4)其它功能不限,可自由发挥(时钟、秒表、计算器、菜单等),拓展要求2、设计思路:将程序分成四个模块:1.主函数模块main.c2.模数转换模块ADC.c3.液晶显示模块KS0108.c4.测试模块test7279.c其中,在main.c中定义一个功能选择菜单图片,包含课设的简介,图片的变换,模拟量的采集以及计算器的实现,该菜单功能的切换由按键功能来实现。在KS0108.c中定义了两张图片分别来简单介绍一下该课程设计,包含“江苏大学计算机学院、2013年单片机课程设计”和“秦佳、计算机1001、
3、3100602007”;还定义了字符方式下的“液晶点阵显示屏程序设计”;定义了在ADC中要用到的0-9的数字以及计算器中要用到的各种运算符。在其中还定义了上移、下移、左移和右移函数以及计算器实现的函数。在ADC.c中定义了字符形式的“温度压力电位”以及将模拟量转换成数字量的showadc函数。各函数说明三、程序流程图:a、系统主流程图b、主函数流程图初始化各部件c、显示模块流程图d、模数转换模块流程图开中断开始显示菜单主函数模块判断键入值并调用相应函数b液晶显示模块模数转换模块a开始判断KS0108是否空闲读取No和模拟量向LCD发送控制命令No=3No=2No=1定义各类显示函数返回压力返
4、回电位返回温度定义初始化LCD函数结束d定义各类图像变换函数以及字符显示函数cd四、主要的源程序及注释1、main.c#include"c8051f020.h"#includevoidDelay1us(unsignedcharus){while(us){_nop_();_nop_();_nop_();_nop_();_nop_();--us;}}voidSYSCLK_Init(void){inti;//delaycounterOSCXCN=0x67;//startexternaloscillatorwith//18.432MHzcrystalfor(i=0;i<256;
5、i++);//Waitforosc.tostartupwhile(!(OSCXCN&0x80));//Waitforcrystalosc.tosettleOSCICN=0x88;//selectexternaloscillatorasSYSCLK//sourceandenablemissingclock//detector//OSCICN=0x07;//interal16MHZ}#definePRT0CFP0MDOUT#definePRT1CFP1MDOUT#definePRT2CFP2MDOUTvoidPORT_Init(void){XBR0=0x07;//EnableSMBus,SPI0
6、,andUART0XBR1=0x00;XBR2=0x44;//Enablecrossbarandweakpull-upsEMI0CF=0x27;EMI0TC=0x21;P74OUT=0xFF;P0MDOUT=0x15;P1MDOUT
7、=0x3C;//P1.2-P1.5推挽输出P1&=0xc3;//P1.2-P1.5=0}voidSPI0_Init(void){SPI0CFG=0x07;//datasampledon1stSCKrisingedge//8-bitdatawordsSPI0CFG
8、=0xC0;//CKPOL=1;SPI0CN=0x03;//Mastermode;SPIenable
9、d;flags//clearedSPI0CKR=SYSCLK/2/8000000-1;//SPIclock<=8MHz(limitedby//EEPROMspec.)}unsignedcharCount1ms;voidTimer0_Init(void){CKCON
10、=0x8;TMOD
11、=0x1;//16BitCount1ms=10;TR0=0;//STOPTimer0TH0=(-SYSCLK/1000)>>8
此文档下载收益归作者所有