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