液晶点阵显示屏课程设计报告 通信09235-宗慧(4)

2019-04-14 13:27

《C8051F单片机原理及应用》课程设计——日历时钟与键盘显示程序设计

default: break; } } }

void Delay1s(unsigned char T); void TestLCD(void) {

char i; InitLCD();

DispBmp(screen); Delay1s(1);

for (i=0;i<64;i++) {

Delay1ms(100);

LCD_WriteCommand1(0xc0+id); //设置起始行,实现向上滚动 LCD_WriteCommand2(0xc0+id); }

Delay1s(3); DispBmp(screen1); Delay1s(5);

for (i=63;i>=0;i--) {

Delay1ms(10);

LCD_WriteCommand1(0xc0+id); //设置起始行,实现向下滚动 LCD_WriteCommand2(0xc0+id); }

Delay1s(3);

DispBmpRight(screen2); Delay1s(6);

DispBmpLeft(screen3); Delay1s(6); InitLCD();

LCD_WriteHZ(0,3,jiang); //显示16*16点阵汉字'江' Delay1ms(100);

LCD_WriteHZ(16,3,su); //显示16*16点阵汉字'苏' Delay1ms(100);

LCD_WriteHZ(32,3,da); //显示16*16点阵汉字'大' Delay1ms(100);

LCD_WriteHZ(48,3,xue); //显示16*16点阵汉字'学' Delay1ms(100);

LCD_WriteHZ(64,3,huan); //显示16*16点阵汉字'欢' Delay1ms(100);

LCD_WriteHZ(80,3,ying); //显示16*16点阵汉字'迎'

15

《C8051F单片机原理及应用》课程设计——日历时钟与键盘显示程序设计

Delay1ms(100);

LCD_WriteHZ(96,3,nin); //显示16*16点阵汉字'您' Delay1ms(100);

LCD_WriteHZ(112,3,gantanhao); //显示16*16点阵汉字'!' Delay1s(5);

DispBmp(screen4); Delay1s(3); }

void ShowWenDu(void) {

InitLCD();

LCD_WriteHZ(16,3,wen); Delay1ms(100);

LCD_WriteHZ(32,3,du); Delay1ms(100);

LCD_WriteSZ(48,3,maohao); Delay1ms(100); }

void ShowDianYa(void) {

InitLCD();

LCD_WriteHZ(16,3,dian); Delay1ms(100);

LCD_WriteHZ(32,3,ya); Delay1ms(100);

LCD_WriteSZ(48,3,maohao); Delay1ms(100); }

void ShowYaLi(void) {

InitLCD();

LCD_WriteHZ(16,3,ya); Delay1ms(100); LCD_WriteHZ(32,3,li); Delay1ms(100);

LCD_WriteSZ(48,3,maohao); Delay1ms(100); }

void showniu(void) {

LCD_WriteSZ(96,3,N); Delay1ms(100); }

void showfu(void)

16

《C8051F单片机原理及应用》课程设计——日历时钟与键盘显示程序设计

{

LCD_WriteSZ(96,3,hao); Delay1ms(100);

LCD_WriteSZ(104,3,V); Delay1ms(100); }

void showsheshidu(void) {

LCD_WriteSZ(96,3,C); Delay1ms(100); }

㈢模数转换模块ADC.c

#include \ #include /*

压力应变片ADC试验

运行此程序,压力值将在数码管上显示.用手触摸应变片 观察压力变化. */

#define MUX_TEMP 0x08 #define MUX_VOLT 0x01 #define MUX_PRESS 0x02

unsigned int idata Temp,Press,Volt; unsigned char idata mux_select;

sfr16 ADC0=0xbe; // ADC0 data void init_adc(void) {

ADC0CN=0x81; // ADC0 enabled; normal tracking

// mode; ADC0 conversions are initiated // on write to AD0BUSY; ADC0 data is // left-justified

REF0CN=0x07; // enable temp sensor, on-chip VREF, // and VREF output buffer mux_select=MUX_TEMP; // CPU on-chip temp sensor AMX0SL=MUX_TEMP;

ADC0CF=(SYSCLK/2500000) << 3; // ADC conversion clock = 2.5MHz //ADC0CF |= 0x01; // PGA gain = 2

EIE2&=~0x02; // 禁止ADC0转换结束中断 disable ADC0 EOC interrupt

EIE1&=~0x04; // 禁止ADC0窗口比较中断 disable ADC0 window compare interrupt }

// On-chip temperature

17

《C8051F单片机原理及应用》课程设计——日历时钟与键盘显示程序设计

// AN1. 电位器 // AN2. 应变片

void read_analog_inputs(void) {

long temp_long;

AD0INT=0; // clear conversion complete indicator AD0BUSY=1; // initiate conversion

while(AD0INT==0); // wait for conversion complete switch(mux_select) {

case MUX_TEMP:

temp_long=ADC0-42380/2;

temp_long=(temp_long*200L)/156; Temp=temp_long;

AMX0SL=MUX_VOLT; // Select AIN1 for next read mux_select=MUX_VOLT; break;

case MUX_VOLT: temp_long=ADC0;

Volt=24*temp_long/655;

AMX0SL=MUX_PRESS; // Select on-chip temp sensor mux_select=MUX_PRESS; break;

case MUX_PRESS: temp_long=ADC0;

temp_long=24*temp_long/655; Press=temp_long;

AMX0SL=MUX_TEMP; mux_select=MUX_TEMP; break; default:

AMX0SL=MUX_TEMP; mux_select=MUX_TEMP; break; } }

unsigned int GetADCValue(char No) {

read_analog_inputs(); read_analog_inputs(); read_analog_inputs();

18

《C8051F单片机原理及应用》课程设计——日历时钟与键盘显示程序设计

switch (No) {

case 1:

return Temp; case 2:

return Volt; case 3:

if (Press<10) Press=0; return Press; } }

Test7279部分

#include \ #include

sbit HD7279_DAT=P1^7; sbit HD7279_CLK=P1^6;

#define NOSELECT7279 P5|=0x80 //SPICS4(P57)=1 #define SELECT7279 P5&=~(0x80) //SPICS4(P57)=0; #define Set7279DAT HD7279_DAT=1 #define Clr7279DAT HD7279_DAT=0 #define Set7279CLK HD7279_CLK=1 #define Clr7279CLK HD7279_CLK=0 //HD7279测试/演示程序 //I/O口初始化

void Delay1ms(unsigned char T); void Delay1s(unsigned char T); void Delay1us(unsigned char T);

void Send7279Byte(unsigned char ch) {

char i;

SELECT7279; //置CS低电平 Delay1us(50); //延时50μ for (i=0;i<8;i++) {

if (ch&0x80) //输出7位到HD7279A的DATA端 {

Set7279DAT; } else {

Clr7279DAT; }

Set7279CLK; //置CLK高电平

19


液晶点阵显示屏课程设计报告 通信09235-宗慧(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:老庄小学学校体育与健康课程实施计划

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: