《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
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库液晶点阵显示屏课程设计报告 通信09235-宗慧(4)在线全文阅读。
相关推荐: