- SinoMCU_FAE_DN
-
32 发帖3 回复291 积分
- 私信他 + 关注
发现我最近用IO模拟最多的波形就是1/2偏压,1/2占空比较的A类波形。
HC05核一段模拟lLCD驱动的代码。lcd_buffer[0]--lcd_buffer[3]为四个COM端需要显示的内容。
switch(lcd_state)
{
case 0:
//com0 正亮
P2 |=lcd_buffer[0]>>4;
P1 =lcd_buffer[0]>>2;
//将4个COM设置output
COM0=0;
reg_temp = P0CONH; 设置其它COM端口为高阻
reg_temp &=0xfc;
reg_temp |=0x02;
P0CONH=reg_temp;
break;
case 1:
//com0 负亮
reg_temp =~lcd_buffer[0];
P2 |=reg_temp>>4;
P1 =reg_temp>>2;
//将COM设置output
COM0=1;
reg_temp = P0CONH;
reg_temp &=0xfc;
reg_temp |=0x02;
P0CONH=reg_temp;
break; case 2:
//com1 a
//com0 正亮
P2 |=lcd_buffer[1]>>4;
P1 =lcd_buffer[1]>>2;
//将COM设置output
COM1=0;
P0CONL |=0X80;
break;
case 3:
//com1 负亮
reg_temp =~lcd_buffer[1];
P2 |=reg_temp>>4;
P1 =reg_temp>>2;
//将COM设置output
COM1=1;
P0CONL |=0X80;
break;
case 4:
//com2 正亮
P2 |=lcd_buffer[2]>>4;
P1 =lcd_buffer[2]>>2;
//将4个COM设置output
COM2=0;
reg_temp = P2CONH;
reg_temp &=0xf3;
reg_temp |=0x08;
P2CONH=reg_temp;
break;
case 5:
//com2 负亮,
reg_temp =~lcd_buffer[2];
P2 |=reg_temp>>4;
P1 =reg_temp>>2;
//将COM设置output
COM2=1;
reg_temp = P2CONH;
reg_temp &=0xf3;
reg_temp |=0x08;
P2CONH=reg_temp;
break;
case 6:
//com3 正亮
P2 |=lcd_buffer[3]>>4;
P1 =lcd_buffer[3]>>2;
//将4个COM设置output
COM3=0;
reg_temp = P2CONH;
reg_temp &=0xfc;
reg_temp |=0x02;
P2CONH=reg_temp;
break;
case 7:
//com3 负亮
reg_temp =~lcd_buffer[3];
P2 |=reg_temp>>4;
P1 =reg_temp>>2;
//将COM设置output
COM3=1;
reg_temp = P2CONH;
reg_temp &=0xfc;
reg_temp |=0x02;
P2CONH=reg_temp;
break;
case 8:
//将4个COM设置为LOW
COM0=0;
COM1=0;
COM2=0;
COM3=0;
reg_temp = P2CONH;
reg_temp &=0xf0;
reg_temp |=0x0a;
P2CONH=reg_temp;
COM3=0;
COM2=0;
reg_temp = P0CONH;
reg_temp &=0xfc;
reg_temp |=0x02;
P0CONH=reg_temp;
COM0=0;
reg_temp = P0CONL;
reg_temp &=0x3f;
reg_temp |=0x80;
P0CONL=reg_temp;
COM1=0;
//P2 &=0XF0; //SEG LOW
P1 =0;
//lcd_set_buff(2,3);
break;
default:
break;
}
if(lcd_state>=7)
lcd_state=0;
else
lcd_state++;
块
导
航
举报
请选择举报类别
- 广告垃圾
- 违规内容
- 恶意灌水
- 重复发帖