点阵式液晶显示屏的显示程序设计单片机课程设计报告Word下载.docx

上传人:b****6 文档编号:16981823 上传时间:2022-11-27 格式:DOCX 页数:42 大小:92.53KB
下载 相关 举报
点阵式液晶显示屏的显示程序设计单片机课程设计报告Word下载.docx_第1页
第1页 / 共42页
点阵式液晶显示屏的显示程序设计单片机课程设计报告Word下载.docx_第2页
第2页 / 共42页
点阵式液晶显示屏的显示程序设计单片机课程设计报告Word下载.docx_第3页
第3页 / 共42页
点阵式液晶显示屏的显示程序设计单片机课程设计报告Word下载.docx_第4页
第4页 / 共42页
点阵式液晶显示屏的显示程序设计单片机课程设计报告Word下载.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

点阵式液晶显示屏的显示程序设计单片机课程设计报告Word下载.docx

《点阵式液晶显示屏的显示程序设计单片机课程设计报告Word下载.docx》由会员分享,可在线阅读,更多相关《点阵式液晶显示屏的显示程序设计单片机课程设计报告Word下载.docx(42页珍藏版)》请在冰豆网上搜索。

点阵式液晶显示屏的显示程序设计单片机课程设计报告Word下载.docx

程序流程图:

1系统主流程图如下

开始

主函数模块

显示模块

模数转换模块

2主函数流程图

3显示模块流程图

4模数转换模块流程图

主要地源程序及注释

主函数:

#include"

c8051f020.h"

#include<

intrins.h>

voidDelay1us(unsignedcharus)

{

while(us)

{

_nop_()。

--us。

}

}

voidSYSCLK_Init(void)

inti。

//delaycounter

OSCXCN=0x67。

//startexternaloscillatorwith

//18.432MHzcrystal

for(i=0。

i<

256。

i++)。

//Waitforosc.tostartup

while(!

(OSCXCN&

0x80))。

//Waitforcrystalosc.tosettle

OSCICN=0x88。

//selectexternaloscillatorasSYSCLK

//sourceandenablemissingclock

//detector

//OSCICN=0x07。

file:

//interal16MHZ

#definePRT0CFP0MDOUT

#definePRT1CFP1MDOUT

#definePRT2CFP2MDOUT

voidPORT_Init(void)

XBR0=0x07。

//EnableSMBus,SPI0,andUART0

XBR1=0x00。

XBR2=0x44。

//Enablecrossbarandweakpull-ups

EMI0CF=0x27。

EMI0TC=0x21。

P74OUT=0xFF。

P0MDOUT=0x15。

P1MDOUT|=0x3C。

//P1.2-P1.5推挽输出

P1&

=0xc3。

//P1.2-P1.5=0

voidSPI0_Init(void)

SPI0CFG=0x07。

//datasampledon1stSCKrisingedge

//8-bitdatawords

SPI0CFG|=0xC0。

//CKPOL=1。

SPI0CN=0x03。

//Mastermode。

SPIenabled。

flags

//cleared

SPI0CKR=SYSCLK/2/8000000-1。

//SPIclock<

=8MHz(limitedby

//EEPROMspec.)

unsignedcharCount1ms。

voidTimer0_Init(void)

CKCON|=0x8。

TMOD|=0x1。

//16Bit

Count1ms=10。

TR0=0。

//STOPTimer0

TH0=(-SYSCLK/1000)>

>

8。

//setTimer0tooverflowin1ms

TL0=-SYSCLK/1000。

TR0=1。

//STARTTimer0

IE|=0x2。

voidTimer0_ISR(void)interrupt1//1ms

if(Count1ms)Count1ms--。

voidDelay1ms(unsignedcharT)

Count1ms=T。

while(Count1ms)。

voidDelay1s(unsignedcharT)

while(T)

Delay1ms(200)。

T--。

charGetKeyValue(void)。

voidinit_adc(void)。

unsignedintGetADCValue(charNo)。

voidTestLCD(void)。

voidDispLCD(char*DispBuf,charnum)。

voidInitLCD(void)。

//初始化¯

LCD

voidShowWenDu(void)。

voidTest7279(bitLoopFlag)。

voidmain(void)

unsignedintw。

charNo,i,buf[5]。

No=1。

WDTCN=0xde。

WDTCN=0xad。

//关看门狗

SYSCLK_Init()。

//初始化时钟

Timer0_Init();

//初始化定时器

PORT_Init()。

//初始化IO口

SPI0_Init()。

//初始化SPI0

init_adc()。

CPT1CN|=0x80。

//使能比较器1

REF0CN=0x07。

//使能片内参考电压

DAC0CN|=0x80。

//使能DAC0

DAC0H=0。

DAC0L=0。

EA=1。

//开中断

//Test7279(0)。

loop:

Test7279(0)。

//关闭数码关显示

TestLCD()。

InitLCD()。

No=0。

//w=GetADCValue

(1)。

for(。

i=GetKeyValue()。

if((i>

=0)&

&

(i<

=3))

No=i。

switch(No)

case1:

ShowWenDu()。

break。

case2:

ShowDianYa()。

case3:

ShowYaLi()。

case0:

gotoloop。

default:

break。

w=GetADCValue(No)。

Delay1ms(30)。

buf[0]=(w%10000)/1000。

buf[1]=(w%1000)/100。

buf[2]='

'

buf[3]=(w%100)/10。

buf[4]=(w%10)。

DispLCD(buf,1)。

showdu()。

DispLCD(buf,2)。

showfu()。

DispLCD(buf,3)。

showniu()。

}}}

模数转换

c8051F020.h"

/*

压力应变片ADC实验

*/

#defineMUX_TEMP0x08

#defineMUX_VOLT0x01

#defineMUX_PRESS0x02

unsignedintidataTemp,Press,Volt。

unsignedcharidatamux_select。

sfr16ADC0=0xbe。

//ADC0data

voidinit_adc(void)

ADC0CN=0x81。

//ADC0enabled。

normaltracking

//mode。

ADC0conversionsareinitiated

//onwritetoAD0BUSY。

ADC0datais

//left-justified

//enabletempsensor,on-chipVREF,

//andVREFoutputbuffer

mux_select=MUX_TEMP。

//CPUon-chiptempsensor

AMX0SL=MUX_TEMP。

ADC0CF=(SYSCLK/2500000)<

<

3。

//ADCconversionclock=2.5MHz

//ADC0CF|=0x01。

//PGAgain=2

EIE2&

=~0x02。

//disableADC0EOCinterrupt

EIE1&

=~0x04。

//disableADC0windowcompareinterrupt

//On-chiptemperature

//AN1.电位片

//AN2.应变片

voidread_analog_inputs(void)

longtemp_long。

AD0INT=0。

//clearconversioncompleteindicator

AD0BUSY=1。

//initiateconversion

while(AD0INT==0)。

//waitforconversioncomplete

switch(mux_select)

caseMUX_TEMP:

temp_long=ADC0-42380/2。

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_long/655。

AMX0SL=MUX_PRESS。

//Selecton-chiptempsensor

mux_select=MUX_PRESS。

caseMUX_PRESS:

temp_long=24*temp_long/655。

Press=temp_long。

unsignedintGetADCValue(charNo)

read_analog_inputs()。

switch(No)

returnTemp。

returnVolt。

if(Press<

10)Press=0。

returnPress。

C8051F020.h"

液晶点阵显示实验-128*64,控制器KS0108

实验准备:

将拨码开关S1和S2置ON

运行此程序将上下左右滚动显示“姓名,马彩霞学号,3100601033班级,通信1002”

出现菜单,按键选择.

#defineLCD_DATAP2

#defineLCD_RSP30

#defineLCD_RWP31

#defineLCD_EP32

#defineLCD_CS1P34

#defineLCD_CS2P33

#defineLCD_RSTP35

voidDelay1ms(unsignedchar)。

#defineSELECTCS0

charcodezero[]={//0//

0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,

}。

charcodeone[]={//1//

0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,

charcodetwo[]={//2//

0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,

charcodethree[]={//3//

0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,

charcodefour[]={//4//

0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,

charcodefive[]={//5//

0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,

charcodesix[]={//6//

0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,

charcodeseven[]={//7//

0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,

charcodeeight[]={//8//

0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,

charcodenine[]={//9//

0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,

charcodemao[]={//:

//

0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,

charcodedot[]={//.//

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,

charcodewen[]={//温//

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,

charcodedu[]={//度//

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,

charcodedian[]={//电//

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,

charcodeya[]={//压//

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,

charcodeli[]={//力//

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,

charcodeC[]={//C//

0xC7,0x35,0x0F,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,

charcodeN[]={//牛顿//

0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00,

charcodem[]={//m//

0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,}。

charcodeV[]={//V//

0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00,}。

charcodescreen1[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x00,0x00,0x00,0x00,

0xC0,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x80,0x80,0x00,0x80,0xC0,0x80,0x80,0x80,

0x00,0x00,0x00,0xC0,0x00,0x00,0x80,0x80,0x80,0xC0,0x80,0x00,0x00,0x00,0x00,0x40,

0x80,0x40,0x80,0x00,0x00,0xC0,0x00,0x00,0x00,0xC0,0x40,0x40,0xC0,0x80,0x80,0x80,

0xC0,0x80,0x80,0x80,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,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x000x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0xFC,0x80,0x40,0x04,0x04,0x040xFF,0x04,0x04,0x04,0x00,0x82,0

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 政史地

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1