【沁恒CH582】3配备零功耗LCD段码屏
<p><span style="font-size:16px;">CH582M本身是蓝牙方面的应用,特点就是低功耗,为此我给它配了一个几乎是零功耗的LCD段码屏。</span></p><p><span style="font-size:16px;">LCD段码屏有<strong>静态驱动</strong>和<strong>动态驱动</strong>。<br />
<strong>静态驱动</strong>:只有一个公共端COM,每个像素都是单独电极引出。优点是和动态驱动相比显示效果好一些,缺点是引脚多。<br />
<strong>动态驱动</strong>:2个及以上的公共端COM,每个电极至少控制2个以上的像素,需要时间分割扫描方式驱动。<br />
我采用的就是静态驱动的LCD段码屏。可以显示3个“8”和2个“.”,一共需要24个IO进行控制。</span></p>
<p><span style="font-size:16px;">单纯的显示只需要COM和SEG相互为相反电平就可以,不显示为相同的电平。</span></p>
<p><span style="font-size: 16px;">用这个简单的段码屏显示后面的试验的数据。</span></p>
<p>#include "CH58x_common.h"</p>
<p>__attribute__((aligned(4))) UINT32 CapBuf;<br />
UINT8V capFlag = 0;</p>
<p><br />
void main()<br />
{<br />
UINT8 i;</p>
<p> SetSysClock( CLK_SOURCE_PLL_60MHz );</p>
<p> GPIOB_SetBits( GPIO_Pin_20 );<br />
GPIOB_ModeCfg( GPIO_Pin_20, GPIO_ModeOut_PP_5mA );<br />
GPIOB_SetBits( GPIO_Pin_22 );<br />
GPIOB_ModeCfg( GPIO_Pin_22, GPIO_ModeOut_PP_5mA );<br />
GPIOB_SetBits( GPIO_Pin_10 );<br />
GPIOB_ModeCfg( GPIO_Pin_10, GPIO_ModeOut_PP_5mA );<br />
GPIOB_SetBits( GPIO_Pin_12 );<br />
GPIOB_ModeCfg( GPIO_Pin_12, GPIO_ModeOut_PP_5mA );<br />
GPIOB_SetBits( GPIO_Pin_19 );<br />
GPIOB_ModeCfg( GPIO_Pin_19, GPIO_ModeOut_PP_5mA );<br />
GPIOB_SetBits( GPIO_Pin_0 );<br />
GPIOB_ModeCfg( GPIO_Pin_0, GPIO_ModeOut_PP_5mA );<br />
GPIOB_SetBits( GPIO_Pin_2 );<br />
GPIOB_ModeCfg( GPIO_Pin_2, GPIO_ModeOut_PP_5mA );<br />
GPIOB_SetBits( GPIO_Pin_1 );<br />
GPIOB_ModeCfg( GPIO_Pin_1, GPIO_ModeOut_PP_5mA );<br />
GPIOB_SetBits( GPIO_Pin_3 );<br />
GPIOB_ModeCfg( GPIO_Pin_3, GPIO_ModeOut_PP_5mA );<br />
GPIOB_SetBits( GPIO_Pin_5 );<br />
GPIOB_ModeCfg( GPIO_Pin_5, GPIO_ModeOut_PP_5mA );<br />
GPIOB_SetBits( GPIO_Pin_7 );<br />
GPIOB_ModeCfg( GPIO_Pin_7, GPIO_ModeOut_PP_5mA );<br />
GPIOB_SetBits( GPIO_Pin_11 );<br />
GPIOB_ModeCfg( GPIO_Pin_11, GPIO_ModeOut_PP_5mA );<br />
GPIOB_SetBits( GPIO_Pin_13 );<br />
GPIOB_ModeCfg( GPIO_Pin_13, GPIO_ModeOut_PP_5mA );<br />
GPIOB_SetBits( GPIO_Pin_15 );<br />
GPIOB_ModeCfg( GPIO_Pin_15, GPIO_ModeOut_PP_5mA );<br />
GPIOA_SetBits( GPIO_Pin_5 );<br />
GPIOA_ModeCfg( GPIO_Pin_5, GPIO_ModeOut_PP_5mA );<br />
GPIOA_SetBits( GPIO_Pin_0 );<br />
GPIOA_ModeCfg( GPIO_Pin_0, GPIO_ModeOut_PP_5mA );<br />
GPIOA_SetBits( GPIO_Pin_2 );<br />
GPIOA_ModeCfg( GPIO_Pin_2, GPIO_ModeOut_PP_5mA );<br />
GPIOA_SetBits( GPIO_Pin_15 );<br />
GPIOA_ModeCfg( GPIO_Pin_15, GPIO_ModeOut_PP_5mA );<br />
GPIOA_SetBits( GPIO_Pin_13 );<br />
GPIOA_ModeCfg( GPIO_Pin_13, GPIO_ModeOut_PP_5mA );<br />
GPIOA_SetBits( GPIO_Pin_11 );<br />
GPIOA_ModeCfg( GPIO_Pin_11, GPIO_ModeOut_PP_5mA );<br />
GPIOA_SetBits( GPIO_Pin_7 );<br />
GPIOA_ModeCfg( GPIO_Pin_7, GPIO_ModeOut_PP_5mA );<br />
GPIOA_SetBits( GPIO_Pin_9 );<br />
GPIOA_ModeCfg( GPIO_Pin_9, GPIO_ModeOut_PP_5mA );<br />
GPIOB_SetBits( GPIO_Pin_8 );<br />
GPIOB_ModeCfg( GPIO_Pin_8, GPIO_ModeOut_PP_5mA );<br />
GPIOB_SetBits( GPIO_Pin_16 );<br />
GPIOB_ModeCfg( GPIO_Pin_16, GPIO_ModeOut_PP_5mA );</p>
<p> GPIOB_InverseBits( GPIO_Pin_20 );</p>
<p> TMR0_TimerInit( FREQ_SYS / 30 ); // 设置定时时间 ms<br />
TMR0_ITCfg( ENABLE, TMR0_3_IT_CYC_END ); // 开启中断<br />
PFIC_EnableIRQ( TMR0_IRQn );</p>
<p> while( 1 )<br />
;<br />
}</p>
<p>__INTERRUPT<br />
__HIGH_CODE<br />
void TMR0_IRQHandler( void ) // TMR0 定时中断<br />
{<br />
if ( TMR0_GetITFlag( TMR0_3_IT_CYC_END ) )<br />
{<br />
TMR0_ClearITFlag( TMR0_3_IT_CYC_END ); // 清除中断标志<br />
GPIOB_InverseBits( GPIO_Pin_20 );<br />
GPIOB_InverseBits( GPIO_Pin_22 );<br />
GPIOB_InverseBits( GPIO_Pin_10 );<br />
GPIOB_InverseBits( GPIO_Pin_12 );<br />
GPIOB_InverseBits( GPIO_Pin_19 );<br />
GPIOB_InverseBits( GPIO_Pin_0 );<br />
GPIOB_InverseBits( GPIO_Pin_2 );<br />
GPIOB_InverseBits( GPIO_Pin_1 );<br />
GPIOB_InverseBits( GPIO_Pin_3 );<br />
GPIOB_InverseBits( GPIO_Pin_5 );<br />
GPIOB_InverseBits( GPIO_Pin_7 );<br />
GPIOB_InverseBits( GPIO_Pin_11 );<br />
GPIOB_InverseBits( GPIO_Pin_13 );<br />
GPIOB_InverseBits( GPIO_Pin_15 );<br />
GPIOA_InverseBits( GPIO_Pin_5 );<br />
GPIOA_InverseBits( GPIO_Pin_0 );<br />
GPIOA_InverseBits( GPIO_Pin_2 );<br />
GPIOA_InverseBits( GPIO_Pin_15 );<br />
GPIOA_InverseBits( GPIO_Pin_13 );<br />
GPIOA_InverseBits( GPIO_Pin_11 );<br />
GPIOA_InverseBits( GPIO_Pin_7 );<br />
GPIOA_InverseBits( GPIO_Pin_9 );<br />
GPIOB_InverseBits( GPIO_Pin_8 );<br />
GPIOB_InverseBits( GPIO_Pin_16 );</p>
<p> }<br />
}<br />
</p>
这个可以呀,等待你更加精采的作品。
页:
[1]