精品点阵式液晶显示屏的显示程序设计单片机原理及应用毕业论文Word文档格式.docx
- 文档编号:19967845
- 上传时间:2023-01-13
- 格式:DOCX
- 页数:28
- 大小:22.73KB
精品点阵式液晶显示屏的显示程序设计单片机原理及应用毕业论文Word文档格式.docx
《精品点阵式液晶显示屏的显示程序设计单片机原理及应用毕业论文Word文档格式.docx》由会员分享,可在线阅读,更多相关《精品点阵式液晶显示屏的显示程序设计单片机原理及应用毕业论文Word文档格式.docx(28页珍藏版)》请在冰豆网上搜索。
2)图片方式:
显示相应图片(有左、右移,上下卷等多种动态方式)
3)模拟量采样值显示(温度、压力、电位)
4)其它功能不限,可自由发挥(时钟、秒表、计算器、菜单等),拓展要求
2、设计思路:
将程序分成四个模块:
1.主函数模块main.c
2.模数转换模块ADC.c
3.液晶显示模块KS0108.c
4.测试模块test7279.c
其中,在main.c中定义一个功能选择菜单图片,包含课设的简介,图片的变换,模拟量的采集以及计算器的实现,该菜单功能的切换由按键功能来实现。
在KS0108.c中定义了两张图片分别来简单介绍一下该课程设计,包含“江苏大学计算式下的“液晶点阵显示屏程序设计”;
定义了在ADC中要用到的0-9的数字以及计算器中要用到的各种运算符。
在其中还定义了上移、下移、左移和右移函数以及计算器实现的函数。
在ADC.c中定义了字符形式的“温度压力电位”以及将模拟量转换成数字量的showadc函数。
3、程序流程图:
a、系统主流程图
b、主函数流程图
c、显示模块流程图
d、模数转换模块流程图
4、主要的源程序及注释
1、main.c
#include"
c8051f020.1stSCKrisingedge
8-bitdatawords
SPI0CFG|=0xC0;
CKPOL=1;
SPI0CN=0x03;
Mastermode;
SPIenabled;
flags
cleared
EEPROMspec.)
}
unsignedcharCount1ms;
voidTimer0_Init(void)
{
CKCON|=0x8;
TMOD|=0x1;
16Bit
Count1ms=10;
TR0=0;
STOPTimer0
TH0=(-SYSCLK1000)>
>
8;
setTimer0tooverflowin1ms
TL0=-SYSCLK1000;
TR0=1;
STARTTimer0
IE|=0x2;
voidTimer0_ISR(void)interrupt11ms
TH0=(-SYSCLK1000)>
if(Count1ms)Count1ms--;
voidDelay1ms(unsignedcharT)
Count1ms=T;
while(Count1ms);
voidDelay1s(unsignedcharT)
while(T)
{
Delay1ms(200);
T--;
}
charGetKeyValue(void);
voidShow(void);
voidShow1(void);
voidshowadc();
voidcaculater();
voidDispBmp(char*buf);
voidInitLCD(void);
voidWaitKeyOff(void);
charcodescreen[]={功能选择
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0xC0,0xC0,0xC0,
0xC0,0x40,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x7F,0x7F,0x40,0x00,0x00,0x30,0x70,0x60,0x40,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xFF,0xFF,0x7F,0x7F,0x7F,0xFB,0xFF,
0xFE,0x00,0x00,0x10,0x18,0xDC,0xEE,0x7F,0x1B,0xFD,0xFF,0x06,0x0C,0x0C,0x08,0x08,
0x00,0x00,0x00,0x00,0x00,0x20,0x30,0x10,0xF0,0xF0,0x60,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0xF0,0xF0,0xF0,0x70,0xF1,
0xF1,0xF0,0x00,0x00,0x00,0x00,0xF0,0xF0,0xE0,0x79,0x79,0x58,0x40,0x00,0x00,0x00,
0x00,0xA0,0xA0,0xE0,0xF8,0xF8,0xF0,0xD0,0xD0,0x90,0x00,0x00,0x80,0xC0,0xF8,0xF0,
0xC0,0xF0,0xF0,0xF0,0xA0,0xA0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x0C,0x0E,0x0F,0x0B,0x0C,0x0C,0x00,0x06,0x0E,0x0C,0x08,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x1F,0x0F,0x0F,0x0F,0x0F,0x09,0x3F,
0x3F,0x1F,0x00,0x00,0x10,0x18,0x0F,0x07,0x03,0x01,0x3F,0x3F,0x00,0x00,0x00,0x00,
0x10,0x11,0x13,0x1E,0x0F,0x0F,0x1F,0x11,0x10,0x10,0x10,0x04,0x04,0x16,0x1F,0x1F,
0x17,0x1F,0x0F,0x1F,0x13,0x12,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x04,0x26,0x32,0x3E,0xFE,0xE0,0x00,0xC0,0xC0,0x80,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0xE8,0xFF,0xFF,0xAC,0xBE,0xFE,0xFF,0xFF,
0x7B,0x4A,0x40,0x80,0x90,0xD8,0xFF,0xFE,0xF8,0xF4,0x6C,0xEC,0xFC,0xBC,0x00,0x00,
0x10,0x10,0x32,0xFE,0xFE,0xFE,0xFE,0xFE,0x1A,0x08,0x08,0x00,0x00,0x20,0xAC,0xEE,
0xFE,0xFF,0xFF,0xB7,0x92,0x00,0x00,0x00,0x90,0xF1,0xFF,0xFE,0xFA,0xF6,0xFE,0xFF,
0x6B,0x4A,0x40,0x40,0x60,0xF8,0xFE,0x06,0xFA,0xFC,0xFE,0xF6,0xF4,0x04,0x00,0x00,
0x00,0x42,0xCE,0xFE,0xFE,0xFE,0xFE,0xFE,0x66,0x20,0x00,0x00,0x20,0xA0,0xE4,0x64,
0xF4,0xF6,0xD2,0xD2,0xD0,0x90,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x81,0xC1,0xC1,0x00,0x00,0x00,0x01,0x01,0x01,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xE3,0xE2,0x03,0x83,0x81,0x83,
0xC3,0xC2,0x02,0x00,0x00,0xC3,0xC3,0xC3,0xE1,0xE3,0xE3,0x21,0x00,0x01,0x01,0x00,
0x80,0x82,0x82,0x82,0x83,0x03,0xE3,0xE3,0x03,0x02,0x00,0x00,0x03,0x83,0xC1,0xC0,
0xE7,0xE7,0xC0,0x81,0x81,0x01,0x01,0x01,0x01,0x07,0x07,0x03,0x00,0x00,0x07,0x07,
0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x06,0x07,0x03,0x03,0x03,0x03,0x02,0x02,0x00,
0x02,0x02,0x03,0x03,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x01,0x01,0x02,
0x07,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x0C,0x0E,0x0B,0x3F,0x3F,0x08,0x08,0x18,0x38,0x30,0x20,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x12,0x5A,0x7F,0x7F,0x1D,0x3E,0x3F,0x37,
0x3C,0x1C,0x04,0x40,0x70,0x3F,0xCF,0xFF,0x7F,0x7F,0x3F,0x7D,0x4C,0x44,0x40,0x08,
0x08,0x4C,0x4F,0x67,0x36,0x1E,0x6F,0x79,0x7F,0x0F,0x00,0x00,0xC3,0xFF,0xFD,0xFD,
0xFD,0x7F,0x7F,0x4E,0x66,0x72,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};
voidChoose(){
chari;
InitLCD();
DispBmp(screen);
for(;
;
){
do{
i=GetKeyValue();
}while(i==-1);
WaitKeyOff();
if(i==0x01){
Show();
elseif(i==0x02){
Show1();
if(i==0x03){
showadc();
elseif(i==0x04){
caculater();
break;
voidTestLCD(void);
voidinit_adc(void);
voidmain(void)
WDTCN=0xde;
WDTCN=0xad;
关看门狗
SYSCLK_Init();
初始化时钟
Timer0_Init();
初始化定时器
PORT_Init();
初始化IO口
SPI0_Init();
初始化SPI0
init_adc();
初始化adc
CPT1CN|=0x80;
使能比较器1
REF0CN=0x03;
使能片内参考电压
DAC0CN|=0x80;
使能DAC0
DAC0H=0;
DAC0L=0;
EA=1;
开中断
for(;
Choose();
}}
2、ADC.c
c8051F020.[]={
0x10,0x21,0x86,0x70,0x00,0x7E,0x4A,0x4A,0x4A,0x4A,0x4A,0x7E,0x00,0x00,0x00,0x00,
0x02,0xFE,0x01,0x40,0x7F,0x41,0x41,0x7F,0x41,0x41,0x7F,0x41,0x41,0x7F,0x40,0x00,
0x00,0x00,0xFC,0x04,0x24,0x24,0xFC,0xA5,0xA6,0xA4,0xFC,0x24,0x24,0x24,0x04,0x00,
0x80,0x60,0x1F,0x80,0x80,0x42,0x46,0x2A,0x12,0x12,0x2A,0x26,0x42,0xC0,0x40,0x00,
0x00,0x00,0xF8,0x48,0x48,0x48,0x48,0xFF,0x48,0x48,0x48,0x48,0xF8,0x00,0x00,0x00,
0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0x3F,0x44,0x44,0x44,0x44,0x4F,0x40,0x70,0x00,
0x00,0xC0,0x30,0xEC,0x03,0x2A,0xC8,0x09,0x0A,0x0E,0x08,0xE8,0x48,0x08,0x00,0x00,
0x01,0x00,0x00,0x7F,0x20,0x20,0x20,0x27,0x20,0x30,0x2E,0x21,0x20,0x20,0x20,0x00,
0x00,0x00,0xFE,0x02,0x42,0x42,0x42,0x42,0xFA,0x42,0x42,0x42,0x62,0x42,0x02,0x00,
0x20,0x18,0x27,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x21,0x2E,0x24,0x20,0x20,0x00,
0x00,0x10,0x10,0x10,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x10,0x10,0xF0,0x00,0x00,
0x00,0x00,0x80,0x40,0x20,0x18,0x06,0x01,0x00,0x00,0x40,0x80,0x40,0x3F,0x00,0x00,};
voidinit_adc(void)
ADC0CN=0x81;
ADC0enabled;
normaltracking
mode;
ADC0conversionsareinitiated
onwritetoAD0BUSY;
ADC0datais
left-justified
REF0CN=0x07;
enabletempsensor,on-chipVREF,
andVREFoutputbuffer
mux_select=MUX_TEMP;
CPUon-chiptempsensor
AMX0SL=MUX_TEMP;
ADC0CF|=0x01;
PGAgain=2
EIE2&
=~0x02;
disableADC0EOCinterrupt
EIE1&
=~0x04;
disableADC0windowcompareinterrupt
voidread_analog_inputs(void)
longtemp_long;
AD0INT=0;
clearconversioncompleteindicator
AD0BUSY=1;
initiateconversion
while(AD0INT==0);
waitforconversioncomplete
switch(mux_select)
caseMUX_TEMP:
temp_long=ADC0-423802;
temp_long=(temp_long*200L)156;
Temp=temp_long;
AMX0SL=MUX_VOLT;
SelectAIN1fornextread
mux_select=MUX_VOLT;
caseMUX_VOLT:
temp_long=ADC0;
Volt=24*temp_long655;
AMX0SL=MUX_PRESS;
Selecton-chiptempsensor
mux_select=MUX_PRESS;
caseMUX_PRESS:
temp_long=24*temp_long655;
Press=temp_long;
AMX0SL=MUX_TEMP;
mux_select=MUX_TEMP;
default:
AMX0SL=MUX_TEMP;
mux_select=MUX_TEMP;
brea
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 阵式 液晶显示屏 显示 程序设计 单片机 原理 应用 毕业论文