|
发表于 2015-7-20 21:16:41
|
显示全部楼层
部分显示代码
- #include "LCD.h"
- void LCD_init(void)
- {
- // Enable LCD clock //
- CLK_PeripheralClockConfig(CLK_Peripheral_LCD, ENABLE);
- // Initialize the LCD //
- LCD_Init(LCD_Prescaler_2, LCD_Divider_18, LCD_Duty_1_4,
- LCD_Bias_1_3, LCD_VoltageSource_External);
- // Mask register//
- LCD_PortMaskConfig(LCD_PortMaskRegister_0, 0xFF);
- LCD_PortMaskConfig(LCD_PortMaskRegister_1, 0xFF);
- LCD_PortMaskConfig(LCD_PortMaskRegister_2, 0xFF);
- LCD_PortMaskConfig(LCD_PortMaskRegister_3, 0xFF);
- LCD_PortMaskConfig(LCD_PortMaskRegister_4, 0xFF);
- LCD_PortMaskConfig(LCD_PortMaskRegister_5, 0xFF);
- LCD_ContrastConfig(LCD_Contrast_Level_7);
- LCD_DeadTimeConfig(LCD_DeadTime_0);
- LCD_PulseOnDurationConfig(LCD_PulseOnDuration_1);
- LCD_Cmd(ENABLE); // Enable LCD peripheral //
- }
- u8 LCD_ReadRAM(LCD_RAMRegister_TypeDef LCD_RAMRegister)
- {
- /* Check function parameters */
- assert_param(IS_LCD_RAM_REGISTER(LCD_RAMRegister));
- /* Copy data bytes to RAM register */
- return LCD->RAM[LCD_RAMRegister];
- }
- void set_RAM_bit(u8 LCD_RAMRegister,u8 bit)
- {
- LCD_WriteRAM(LCD_RAMRegister,LCD_ReadRAM(LCD_RAMRegister)|(1<<bit));
- }
- void reset_RAM_bit(u8 LCD_RAMRegister,u8 bit)
- {
- LCD_WriteRAM(LCD_RAMRegister,LCD_ReadRAM(LCD_RAMRegister)&(~(1<<bit)));
- }
- void show_high_temperature(bool newstate)
- {
- if(newstate)
- {
- set_RAM_bit(LCD_RAMRegister_13,1);
- }
- else
- {
- reset_RAM_bit(LCD_RAMRegister_13,1);
- }
- }
- void show_low_voltage(bool newstate)
- {
- if(newstate)
- {
- set_RAM_bit(LCD_RAMRegister_13,3);
- }
- else
- {
- reset_RAM_bit(LCD_RAMRegister_13,3);
- }
- }
- void show_AM(bool newstate)
- {
- if(newstate)
- {
- set_RAM_bit(LCD_RAMRegister_6,1);
- }
- else
- {
- reset_RAM_bit(LCD_RAMRegister_6,1);
- }
- }
- void show_PM(bool newstate)
- {
- if(newstate)
- {
- set_RAM_bit(LCD_RAMRegister_9,5);
- }
- else
- {
- reset_RAM_bit(LCD_RAMRegister_9,5);
- }
- }
- void show_month_day(bool newstate)
- {
- if(newstate)
- {
- set_RAM_bit(LCD_RAMRegister_12,3);
- }
- else
- {
- reset_RAM_bit(LCD_RAMRegister_12,3);
- }
- }
- void show_error(bool newstate)
- {
- if(newstate)
- {
- set_RAM_bit(LCD_RAMRegister_0,3);
- }
- else
- {
- reset_RAM_bit(LCD_RAMRegister_0,3);
- }
- }
- void show_result(bool newstate)
- {
- if(newstate)
- {
- set_RAM_bit(LCD_RAMRegister_4,0);
- }
- else
- {
- reset_RAM_bit(LCD_RAMRegister_4,0);
- }
- }
- void show_wait(bool newstate)
- {
- if(newstate)
- {
- set_RAM_bit(LCD_RAMRegister_7,4);
- }
- else
- {
- reset_RAM_bit(LCD_RAMRegister_7,4);
- }
- }
- void show_blood(bool newstate)
- {
- if(newstate)
- {
- set_RAM_bit(LCD_RAMRegister_11,0);
- }
- else
- {
- reset_RAM_bit(LCD_RAMRegister_11,0);
- }
- }
- void show_insert(bool newstate)
- {
- if(newstate)
- {
- set_RAM_bit(LCD_RAMRegister_0,4);
- }
- else
- {
- reset_RAM_bit(LCD_RAMRegister_0,4);
- }
- }
- void show_adjust(bool newstate)
- {
- if(newstate)
- {
- set_RAM_bit(LCD_RAMRegister_0,5);
- }
- else
- {
- reset_RAM_bit(LCD_RAMRegister_0,5);
- }
- }
- void show_colon(bool newstate)
- {
- if(newstate)
- {
- set_RAM_bit(LCD_RAMRegister_20,6);
- }
- else
- {
- reset_RAM_bit(LCD_RAMRegister_20,6);
- }
- }
- //seg of map
- // REG,BIT a,b,c,d,e,f,g
- const u8 mon_map[14]={ \
- 1,6, \
- 5,2, \
- 8,6, \
- 12,2, \
- 8,5, \
- 1,5, \
- 5,1 \
- };
- // REG,BIT a,b,c,d,e,f,g
- const u8 day_map_H[14]={ \
- 2,0, \
- 5,4, \
- 9,0, \
- 12,4, \
- 8,7, \
- 1,7, \
- 5,3 \
- };
- // REG,BIT a,b,c,d,e,f,g
- const u8 day_map_L[14]={ \
- 2,4, \
- 6,0, \
- 9,4, \
- 13,0, \
- 9,3, \
- 2,3, \
- 5,7 \
- };
- //��ʾ����
- static void show_digit(const u8 *map,u8 digit)
- {
- switch (digit)
- {
- case 0:
- set_RAM_bit(map[0],map[1]);//a
- set_RAM_bit(map[2],map[3]);//b
- set_RAM_bit(map[4],map[5]);//c
- set_RAM_bit(map[6],map[7]);//d
- set_RAM_bit(map[8],map[9]);//e
- set_RAM_bit(map[10],map[11]);//f
- reset_RAM_bit(map[12],map[13]);//g
- break;
- case 1:
- reset_RAM_bit(map[0],map[1]);//a
- set_RAM_bit(map[2],map[3]);//b
- set_RAM_bit(map[4],map[5]);//c
- reset_RAM_bit(map[6],map[7]);//d
- reset_RAM_bit(map[8],map[9]);//e
- reset_RAM_bit(map[10],map[11]);//f
- reset_RAM_bit(map[12],map[13]);//g
- break;
- case 2:
- set_RAM_bit(map[0],map[1]);//a
- set_RAM_bit(map[2],map[3]);//b
- reset_RAM_bit(map[4],map[5]);//c
- set_RAM_bit(map[6],map[7]);//d
- set_RAM_bit(map[8],map[9]);//e
- reset_RAM_bit(map[10],map[11]);//f
- set_RAM_bit(map[12],map[13]);//g
- break;
- case 3:
- set_RAM_bit(map[0],map[1]);//a
- set_RAM_bit(map[2],map[3]);//b
- set_RAM_bit(map[4],map[5]);//c
- set_RAM_bit(map[6],map[7]);//d
- reset_RAM_bit(map[8],map[9]);//e
- reset_RAM_bit(map[10],map[11]);//f
- set_RAM_bit(map[12],map[13]);//g
- break;
- case 4:
- reset_RAM_bit(map[0],map[1]);//a
- set_RAM_bit(map[2],map[3]);//b
- set_RAM_bit(map[4],map[5]);//c
- reset_RAM_bit(map[6],map[7]);//d
- reset_RAM_bit(map[8],map[9]);//e
- set_RAM_bit(map[10],map[11]);//f
- set_RAM_bit(map[12],map[13]);//g
- break;
- case 5:
- set_RAM_bit(map[0],map[1]);//a
- reset_RAM_bit(map[2],map[3]);//b
- set_RAM_bit(map[4],map[5]);//c
- set_RAM_bit(map[6],map[7]);//d
- reset_RAM_bit(map[8],map[9]);//e
- set_RAM_bit(map[10],map[11]);//f
- set_RAM_bit(map[12],map[13]);//g
- break;
- case 6:
- reset_RAM_bit(map[0],map[1]);//a
- reset_RAM_bit(map[2],map[3]);//b
- set_RAM_bit(map[4],map[5]);//c
- set_RAM_bit(map[6],map[7]);//d
- set_RAM_bit(map[8],map[9]);//e
- set_RAM_bit(map[10],map[11]);//f
- set_RAM_bit(map[12],map[13]);//g
- break;
- case 7:
- set_RAM_bit(map[0],map[1]);//a
- set_RAM_bit(map[2],map[3]);//b
- set_RAM_bit(map[4],map[5]);//c
- reset_RAM_bit(map[6],map[7]);//d
- reset_RAM_bit(map[8],map[9]);//e
- reset_RAM_bit(map[10],map[11]);//f
- reset_RAM_bit(map[12],map[13]);//g
- break;
- case 8:
- set_RAM_bit(map[0],map[1]);//a
- set_RAM_bit(map[2],map[3]);//b
- set_RAM_bit(map[4],map[5]);//c
- set_RAM_bit(map[6],map[7]);//d
- set_RAM_bit(map[8],map[9]);//e
- set_RAM_bit(map[10],map[11]);//f
- set_RAM_bit(map[12],map[13]);//g
- break;
- case 9:
- set_RAM_bit(map[0],map[1]);//a
- set_RAM_bit(map[2],map[3]);//b
- set_RAM_bit(map[4],map[5]);//c
- reset_RAM_bit(map[6],map[7]);//d
- reset_RAM_bit(map[8],map[9]);//e
- set_RAM_bit(map[10],map[11]);//f
- set_RAM_bit(map[12],map[13]);//g
- break;
- }
- }
- void show_month(u8 m)
- {
- if(m>=10) set_RAM_bit(LCD_RAMRegister_12,1);
- else reset_RAM_bit(LCD_RAMRegister_12,1);
- show_digit(mon_map,m%10);
- }
- void show_day(u8 d)
- {
- show_digit(day_map_H,d/10);
- show_digit(day_map_L,d%10);
- }
- void show_hour(u8 H)
- {
- }
- void LCD_test(void)
- {
- u8 i;
- show_high_temperature(TRUE);
- show_low_voltage(TRUE);
- show_AM(TRUE);
- show_PM(TRUE);
- show_month_day(TRUE);
- show_error(TRUE);
- show_result(TRUE);
- show_wait(TRUE);
- show_blood(TRUE);
- show_insert(TRUE);
- show_adjust(TRUE);
- show_colon(TRUE);
- for(i=0;i<10;i++)
- {
- show_month(i);
- }
- for(i=0;i<10;i++)
- {
- show_day(i*10+i);
- }
- show_high_temperature(FALSE);
- show_low_voltage(FALSE);
- show_AM(FALSE);
- show_PM(FALSE);
- show_month_day(FALSE);
- show_error(FALSE);
- show_result(FALSE);
- show_wait(FALSE);
- show_blood(FALSE);
- show_insert(FALSE);
- show_adjust(FALSE);
- show_colon(FALSE);
- }
复制代码 |
|