欢迎来到天天文库
浏览记录
ID:11560021
大小:167.50 KB
页数:32页
时间:2018-07-12
《点阵式液晶显示屏的显示程序设计_单片机课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、JIANGSUUNIVERSITY单片机原理及应用课程设计学院名称:计算机科学与通信工程专业班级:通信1002学生姓名:马彩霞学生学号:3100601033指导教师姓名:赵念强2013年1月31点阵式液晶显示屏的显示程序设计一、设计目的1.熟练掌握C51系统仿真开发系统的应用。2.加强单片机的综合运用能力、提高单片机的软件编程和调试能力,为以后的学习和开发工作打下良好基础。3.掌握的液晶的工作原理以及应用设计。4.掌握小系统开发设计的流程以及设计思路。二、设计方案实验要求:1)从下到上左到右滚动显
2、示:自己设计的图片2)能进行正常的模拟量采样值显示(温度、压力、电位)。3)未按键时菜单要可以停下来设计思路:由于实验指导书中做过液晶显示和模数转换得实验,根据两个实验的功能实现和流程原理进行设计将程序分成四个模块:主函数模块main.c模数转换模块ADC.c液晶显示模块KS0108.c按键调试模块Test7179.c其中让主函数模块做一些初始化和函数调用工作,模数转换模块主要是将温度,压力,点位的值转化为数字量供液晶显示用,液晶显示模块得到模数转换模块传递过来的数字量显示到液晶面板上,按键调试模
3、块是输入按键显示温度,电压,压力等。程序流程图:1系统主流程图如下31开始主函数模块显示模块模数转换模块2主函数流程图开始使能比较器1开中断初始化系统时钟钟初始化定时器0初始化IO端口初始化SPI0使能片内参考电压使能DAC3显示模块流程图31开始初始化LCD滚屏显示江苏大学计算机学院读取数字量并显示调用模数转换得到值显示课程设计题目、班级、姓名健值是否1.2.34模数转换模块流程图开始读取No和模拟量返回温度返回点位结束返回压力No=2?No=3?No=1?主要的源程序及注释主函数:#inclu
4、de"c8051f020.h"#includevoidDelay1us(unsignedcharus){31while(us){_nop_();_nop_();_nop_();_nop_();_nop_();--us;}}voidSYSCLK_Init(void){inti;//delaycounterOSCXCN=0x67;//startexternaloscillatorwith//18.432MHzcrystalfor(i=0;i<256;i++);//Waitforo
5、sc.tostartupwhile(!(OSCXCN&0x80));//Waitforcrystalosc.tosettleOSCICN=0x88;//selectexternaloscillatorasSYSCLK//sourceandenablemissingclock//detector//OSCICN=0x07;file://interal16MHZ}#definePRT0CFP0MDOUT#definePRT1CFP1MDOUT#definePRT2CFP2MDOUTvoidPORT_I
6、nit(void){XBR0=0x07;//EnableSMBus,SPI0,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;//datasampledon1stS
8、CKrisingedge//8-bitdatawordsSPI0CFG
9、=0xC0;//CKPOL=1;31SPI0CN=0x03;//Mastermode;SPIenabled;flags//clearedSPI0CKR=SYSCLK/2/8000000-1;//SPIclock<=8MHz(limitedby//EEPROMspec.)}unsignedcharCount1ms;voidTimer0_Init(void){CKCON
10、=0x8;TMOD
11、=0x1;//16BitCount1ms
12、=10;TR0=0;//STOPTimer0TH0=(-SYSCLK/1000)>>8;//setTimer0tooverflowin1msTL0=-SYSCLK/1000;TR0=1;//STARTTimer0IE
13、=0x2;}voidTimer0_ISR(void)interrupt1//1ms{TH0=(-SYSCLK/1000)>>8;TL0=-SYSCLK/1000;if(Count1ms)Count1ms--;}voidDelay1ms(unsignedcharT){C
此文档下载收益归作者所有