⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 display_release.dasm

📁 MIPS的液晶显示原码,运行在ECLIPSE上,已通过测试.
💻 DASM
📖 第 1 页 / 共 5 页
字号:
81000ce0:	8fa20020 	lw	v0,32(sp)81000ce4:	afa20010 	sw	v0,16(sp)    result=hal_gpio_write(0x02);  
     for(i=0;i<1000;i++) ;       
81000ce8:	afa00014 	sw	zero,20(sp)81000cec:	8fa20014 	lw	v0,20(sp)81000cf0:	284203e8 	slti	v0,v0,100081000cf4:	10400006 	beqz	v0,81000d10 <main+0x13c>81000cf8:	00000000 	nop81000cfc:	8fa20014 	lw	v0,20(sp)81000d00:	24420001 	addiu	v0,v0,181000d04:	afa20014 	sw	v0,20(sp)81000d08:	1000fff8 	b	81000cec <main+0x118>81000d0c:	00000000 	nop    // lcd_init("/dev/t6963c", &handle);     
    /* Print a message */ 
    //lcd_puts(handle, "Hello !");
    //==mcu lcd interface initial====
    HAL_DISPLAY_CONFIG  params1;
    params1.mode     = HAL_DISPLAY_MODE_AUTO | HAL_DISPLAY_MODE_E_HIGH;
81000d10:	24020001 	li	v0,181000d14:	afa20028 	sw	v0,40(sp)    params1.buswidth = HAL_DISPLAY_BUS_WIDTH_8;     
81000d18:	24020008 	li	v0,881000d1c:	afa2002c 	sw	v0,44(sp)    params1.period   = 450;
81000d20:	240201c2 	li	v0,45081000d24:	afa20030 	sw	v0,48(sp)#include <hal/usip/hal_sys.h>

typedef void (*hal_display_handler_t)(int event);

__hal_defunc1(hal_display_init, HAL_DISPLAY_CONFIG *, params);
81000d28:	27a20028 	addiu	v0,sp,4081000d2c:	afa20024 	sw	v0,36(sp)81000d30:	3c028001 	lui	v0,0x800181000d34:	3442f3fc 	ori	v0,v0,0xf3fc81000d38:	8c420000 	lw	v0,0(v0)81000d3c:	8fa40024 	lw	a0,36(sp)81000d40:	0040f809 	jalr	v081000d44:	00000000 	nop81000d48:	afa20020 	sw	v0,32(sp)    hal_display_init(&params1);     
    //===============================
    result=s6b0724_write_command(lcd_bias);      //bias
81000d4c:	240400a0 	li	a0,16081000d50:	3c028100 	lui	v0,0x810081000d54:	24420ff0 	addiu	v0,v0,408081000d58:	0040f809 	jalr	v081000d5c:	00000000 	nop81000d60:	afa20010 	sw	v0,16(sp)    result=s6b0724_write_command(adc);           //adc
81000d64:	240400a0 	li	a0,16081000d68:	3c028100 	lui	v0,0x810081000d6c:	24420ff0 	addiu	v0,v0,408081000d70:	0040f809 	jalr	v081000d74:	00000000 	nop81000d78:	afa20010 	sw	v0,16(sp)    result=s6b0724_write_command(shl);           //shl
81000d7c:	240400c8 	li	a0,20081000d80:	3c028100 	lui	v0,0x810081000d84:	24420ff0 	addiu	v0,v0,408081000d88:	0040f809 	jalr	v081000d8c:	00000000 	nop81000d90:	afa20010 	sw	v0,16(sp)    for(i=0;i<2000;i++) ;                 //delay 2ms
81000d94:	afa00014 	sw	zero,20(sp)81000d98:	8fa20014 	lw	v0,20(sp)81000d9c:	284207d0 	slti	v0,v0,200081000da0:	10400006 	beqz	v0,81000dbc <main+0x1e8>81000da4:	00000000 	nop81000da8:	8fa20014 	lw	v0,20(sp)81000dac:	24420001 	addiu	v0,v0,181000db0:	afa20014 	sw	v0,20(sp)81000db4:	1000fff8 	b	81000d98 <main+0x1c4>81000db8:	00000000 	nop    result=s6b0724_write_command(power_control); //power control
81000dbc:	2404002f 	li	a0,4781000dc0:	3c028100 	lui	v0,0x810081000dc4:	24420ff0 	addiu	v0,v0,408081000dc8:	0040f809 	jalr	v081000dcc:	00000000 	nop81000dd0:	afa20010 	sw	v0,16(sp)    for(i=0;i<2000;i++) ;                 //delay 2ms
81000dd4:	afa00014 	sw	zero,20(sp)81000dd8:	8fa20014 	lw	v0,20(sp)81000ddc:	284207d0 	slti	v0,v0,200081000de0:	10400006 	beqz	v0,81000dfc <main+0x228>81000de4:	00000000 	nop81000de8:	8fa20014 	lw	v0,20(sp)81000dec:	24420001 	addiu	v0,v0,181000df0:	afa20014 	sw	v0,20(sp)81000df4:	1000fff8 	b	81000dd8 <main+0x204>81000df8:	00000000 	nop    result=s6b0724_write_command(regulator_resistor);       //regulator resistor select
81000dfc:	24040026 	li	a0,3881000e00:	3c028100 	lui	v0,0x810081000e04:	24420ff0 	addiu	v0,v0,408081000e08:	0040f809 	jalr	v081000e0c:	00000000 	nop81000e10:	afa20010 	sw	v0,16(sp)    for(i=0;i<2000;i++) ;                            //delay 2ms
81000e14:	afa00014 	sw	zero,20(sp)81000e18:	8fa20014 	lw	v0,20(sp)81000e1c:	284207d0 	slti	v0,v0,200081000e20:	10400006 	beqz	v0,81000e3c <main+0x268>81000e24:	00000000 	nop81000e28:	8fa20014 	lw	v0,20(sp)81000e2c:	24420001 	addiu	v0,v0,181000e30:	afa20014 	sw	v0,20(sp)81000e34:	1000fff8 	b	81000e18 <main+0x244>81000e38:	00000000 	nop    result=s6b0724_write_command(reference_volt_mode);      //reference voltage mode
81000e3c:	24040081 	li	a0,12981000e40:	3c028100 	lui	v0,0x810081000e44:	24420ff0 	addiu	v0,v0,408081000e48:	0040f809 	jalr	v081000e4c:	00000000 	nop81000e50:	afa20010 	sw	v0,16(sp)    result=s6b0724_write_command(reference_volt_register);  //reference voltage register
81000e54:	2404003f 	li	a0,6381000e58:	3c028100 	lui	v0,0x810081000e5c:	24420ff0 	addiu	v0,v0,408081000e60:	0040f809 	jalr	v081000e64:	00000000 	nop81000e68:	afa20010 	sw	v0,16(sp)    result=s6b0724_write_command(initial_line);             //begining line
81000e6c:	24040040 	li	a0,6481000e70:	3c028100 	lui	v0,0x810081000e74:	24420ff0 	addiu	v0,v0,408081000e78:	0040f809 	jalr	v081000e7c:	00000000 	nop81000e80:	afa20010 	sw	v0,16(sp)    result=s6b0724_write_command(set_modify_read);   //column addres atuo +1
81000e84:	240400e0 	li	a0,22481000e88:	3c028100 	lui	v0,0x810081000e8c:	24420ff0 	addiu	v0,v0,408081000e90:	0040f809 	jalr	v081000e94:	00000000 	nop81000e98:	afa20010 	sw	v0,16(sp)    result=s6b0724_write_command(display_on);
81000e9c:	240400af 	li	a0,17581000ea0:	3c028100 	lui	v0,0x810081000ea4:	24420ff0 	addiu	v0,v0,408081000ea8:	0040f809 	jalr	v081000eac:	00000000 	nop81000eb0:	afa20010 	sw	v0,16(sp)    display_hz(0,0,&xin[0]);
81000eb4:	00002021 	move	a0,zero81000eb8:	00002821 	move	a1,zero81000ebc:	3c028000 	lui	v0,0x800081000ec0:	24461720 	addiu	a2,v0,592081000ec4:	3c028100 	lui	v0,0x810081000ec8:	24421100 	addiu	v0,v0,435281000ecc:	0040f809 	jalr	v081000ed0:	00000000 	nop    while(1);
81000ed4:	1000ffff 	b	81000ed4 <main+0x300>81000ed8:	00000000 	nop81000edc <s6b0724_write_data>:    return 0;
}

static int s6b0724_write_data( unsigned char data )
{    
81000edc:	27bdffc8 	addiu	sp,sp,-5681000ee0:	afbf0030 	sw	ra,48(sp)81000ee4:	00801021 	move	v0,a081000ee8:	a3a20038 	sb	v0,56(sp)__hal_defunc2(hal_gpio_ioctl, HAL_GPIO_CONTROL, control, int *, data);
__hal_defunc3(hal_gpio_attach, int, gpio, int, event, hal_gpio_handler_t, handler);
__hal_defunc1(hal_gpio_detach, int, gpio);
__hal_defunc1(hal_gpio_read, unsigned int *, data);
__hal_defunc1(hal_gpio_write, unsigned int, data);
81000eec:	24020002 	li	v0,281000ef0:	afa20018 	sw	v0,24(sp)81000ef4:	3c028001 	lui	v0,0x800181000ef8:	3442f4b4 	ori	v0,v0,0xf4b481000efc:	8c420000 	lw	v0,0(v0)81000f00:	8fa40018 	lw	a0,24(sp)81000f04:	0040f809 	jalr	v081000f08:	00000000 	nop81000f0c:	afa2001c 	sw	v0,28(sp)81000f10:	8fa2001c 	lw	v0,28(sp)81000f14:	afa20010 	sw	v0,16(sp)__hal_defunc1(hal_display_set_config, HAL_DISPLAY_CONFIG *, params);
__hal_defunc1(hal_display_get_status, int *, status);
__hal_defunc1(hal_display_write, char, data);
__hal_defunc1(hal_display_read, char *, data);
__hal_defunc2(hal_display_ioctl, int, cmd, void *, data);
81000f18:	24020001 	li	v0,181000f1c:	afa2001c 	sw	v0,28(sp)81000f20:	afa00018 	sw	zero,24(sp)81000f24:	3c028001 	lui	v0,0x800181000f28:	3442f414 	ori	v0,v0,0xf41481000f2c:	8c420000 	lw	v0,0(v0)81000f30:	8fa4001c 	lw	a0,28(sp)81000f34:	8fa50018 	lw	a1,24(sp)81000f38:	0040f809 	jalr	v081000f3c:	00000000 	nop81000f40:	afa20020 	sw	v0,32(sp)81000f44:	afa0001c 	sw	zero,28(sp)81000f48:	24020001 	li	v0,181000f4c:	afa20018 	sw	v0,24(sp)81000f50:	3c028001 	lui	v0,0x800181000f54:	3442f414 	ori	v0,v0,0xf41481000f58:	8c420000 	lw	v0,0(v0)81000f5c:	8fa4001c 	lw	a0,28(sp)81000f60:	8fa50018 	lw	a1,24(sp)81000f64:	0040f809 	jalr	v081000f68:	00000000 	nop81000f6c:	afa20024 	sw	v0,36(sp)81000f70:	93a20038 	lbu	v0,56(sp)81000f74:	a3a20028 	sb	v0,40(sp)81000f78:	3c028001 	lui	v0,0x800181000f7c:	3442f40c 	ori	v0,v0,0xf40c81000f80:	8c430000 	lw	v1,0(v0)81000f84:	93a20028 	lbu	v0,40(sp)81000f88:	00402021 	move	a0,v081000f8c:	0060f809 	jalr	v181000f90:	00000000 	nop81000f94:	afa2001c 	sw	v0,28(sp)81000f98:	8fa2001c 	lw	v0,28(sp)81000f9c:	afa20010 	sw	v0,16(sp)81000fa0:	27a20014 	addiu	v0,sp,2081000fa4:	afa2001c 	sw	v0,28(sp)81000fa8:	3c028001 	lui	v0,0x800181000fac:	3442f404 	ori	v0,v0,0xf40481000fb0:	8c420000 	lw	v0,0(v0)81000fb4:	8fa4001c 	lw	a0,28(sp)81000fb8:	0040f809 	jalr	v081000fbc:	00000000 	nop81000fc0:	afa20018 	sw	v0,24(sp)    int result;
    int status;        
    result=hal_gpio_write(0x02);                       //cs=0
    hal_display_ioctl(HAL_DISPLAY_IOCTL_SET_RW, 0);    //rw=0,write
    hal_display_ioctl(HAL_DISPLAY_IOCTL_SET_CD, (void *)1);    //rs=1,data     
    result = hal_display_write(data);     
    do 
    {
        hal_display_get_status(&status);
        
    } while( (status & HAL_DISPLAY_STATUS_TX_DONE) == 0 );  
81000fc4:	8fa20014 	lw	v0,20(sp)81000fc8:	30420001 	andi	v0,v0,0x181000fcc:	14400003 	bnez	v0,81000fdc <s6b0724_write_data+0x100>81000fd0:	00000000 	nop81000fd4:	1000fff2 	b	81000fa0 <s6b0724_write_data+0xc4>81000fd8:	00000000 	nop    //result=hal_gpio_write(0x05);                       //cs=1   
    return result; 
81000fdc:	8fa20010 	lw	v0,16(sp)}
81000fe0:	8fbf0030 	lw	ra,48(sp)81000fe4:	27bd0038 	addiu	sp,sp,5681000fe8:	03e00008 	jr	ra81000fec:	00000000 	nop81000ff0 <s6b0724_write_command>:
static int s6b0724_write_command( unsigned char cmd )
{
81000ff0:	27bdffc8 	addiu	sp,sp,-5681000ff4:	afbf0030 	sw	ra,48(sp)81000ff8:	00801021 	move	v0,a081000ffc:	a3a20038 	sb	v0,56(sp)__hal_defunc2(hal_gpio_ioctl, HAL_GPIO_CONTROL, control, int *, data);
__hal_defunc3(hal_gpio_attach, int, gpio, int, event, hal_gpio_handler_t, handler);
__hal_defunc1(hal_gpio_detach, int, gpio);
__hal_defunc1(hal_gpio_read, unsigned int *, data);
__hal_defunc1(hal_gpio_write, unsigned int, data);
81001000:	24020002 	li	v0,281001004:	afa20018 	sw	v0,24(sp)81001008:	3c028001 	lui	v0,0x80018100100c:	3442f4b4 	ori	v0,v0,0xf4b481001010:	8c420000 	lw	v0,0(v0)81001014:	8fa40018 	lw	a0,24(sp)81001018:	0040f809 	jalr	v08100101c:	00000000 	nop81001020:	afa2001c 	sw	v0,28(sp)81001024:	8fa2001c 	lw	v0,28(sp)81001028:	afa20010 	sw	v0,16(sp)__hal_defunc1(hal_display_set_config, HAL_DISPLAY_CONFIG *, params);
__hal_defunc1(hal_display_get_status, int *, status);
__hal_defunc1(hal_display_write, char, data);
__hal_defunc1(hal_display_read, char *, data);
__hal_defunc2(hal_display_ioctl, int, cmd, void *, data);
8100102c:	24020001 	li	v0,181001030:	afa2001c 	sw	v0,28(sp)81001034:	afa00018 	sw	zero,24(sp)81001038:	3c028001 	lui	v0,0x80018100103c:	3442f414 	ori	v0,v0,0xf41481001040:	8c420000 	lw	v0,0(v0)81001044:	8fa4001c 	lw	a0,28(sp)81001048:	8fa50018 	lw	a1,24(sp)8100104c:	0040f809 	jalr	v081001050:	00000000 	nop81001054:	afa20020 	sw	v0,32(sp)81001058:	afa0001c 	sw	zero,28(sp)8100105c:	afa00018 	sw	zero,24(sp)81001060:	3c028001 	lui	v0,0x800181001064:	3442f414 	ori	v0,v0,0xf41481001068:	8c420000 	lw	v0,0(v0)8100106c:	8fa4001c 	lw	a0,28(sp)81001070:	8fa50018 	lw	a1,24(sp)81001074:	0040f809 	jalr	v081001078:	00000000 	nop8100107c:	afa20024 	sw	v0,36(sp)81001080:	93a20038 	lbu	v0,56(sp)81001084:	a3a20028 	sb	v0,40(sp)81001088:	3c028001 	lui	v0,0x80018100108c:	3442f40c 	ori	v0,v0,0xf40c81001090:	8c430000 	lw	v1,0(v0)81001094:	93a20028 	lbu	v0,40(sp)81001098:	00402021 	move	a0,v08100109c:	0060f809 	jalr	v1810010a0:	00000000 	nop810010a4:	afa2001c 	sw	v0,28(sp)810010a8:	8fa2001c 	lw	v0,28(sp)810010ac:	afa20010 	sw	v0,16(sp)810010b0:	27a20014 	addiu	v0,sp,20810010b4:	afa2001c 	sw	v0,28(sp)810010b8:	3c028001 	lui	v0,0x8001810010bc:	3442f404 	ori	v0,v0,0xf404810010c0:	8c420000 	lw	v0,0(v0)810010c4:	8fa4001c 	lw	a0,28(sp)810010c8:	0040f809 	jalr	v0810010cc:	00000000 	nop810010d0:	afa20018 	sw	v0,24(sp)    int result;
    int status;
    result=hal_gpio_write(0x02);                       //cs=0
    hal_display_ioctl(HAL_DISPLAY_IOCTL_SET_RW, 0);    //rw=0,write
    hal_display_ioctl(HAL_DISPLAY_IOCTL_SET_CD, 0);    //rs=0,command            
    result = hal_display_write(cmd);
    do 
    {
        hal_display_get_status(&status);
        
    } while( (status & HAL_DISPLAY_STATUS_TX_DONE) == 0 ); 
810010d4:	8fa20014 	lw	v0,20(sp)810010d8:	30420001 	andi	v0,v0,0x1810010dc:	14400003 	bnez	v0,810010ec <s6b0724_write_command+0xfc>810010e0:	00000000 	nop810010e4:	1000fff2 	b	810010b0 <s6b0724_write_command+0xc0>810010e8:	00000000 	nop    //result=hal_gpio_write(0x05);                       //cs=1
    return result;   
810010ec:	8fa20010 	lw	v0,16(sp)}
810010f0:	8fbf0030 	lw	ra,48(sp)810010f4:	27bd0038 	addiu	sp,sp,56810010f8:	03e00008 	jr	ra810010fc:	00000000 	nop81001100 <display_hz>:
void display_hz(unsigned char x_adr,unsigned char y_adr,unsigned char *hz_adr)
{  
81001100:	27bdffd8 	addiu	sp,sp,-4081001104:	afbf0020 	sw	ra,32(sp)81001108:	00801021 	move	v0,a08100110c:	00a01821 	move	v1,a181001110:	afa60030 	sw	a2,48(sp)81001114:	a3a20028 	sb	v0,40(sp)81001118:	a3a3002c 	sb	v1,44(sp)  unsigned char i,j,column_msb,column_lsb,page_adr;
  int result;
  page_adr=((x_adr*2)+0xb0);
8100111c:	93a20028 	lbu	v0,40(sp)81001120:	00021040 	sll	v0,v0,0x181001124:	2403ffb0 	li	v1,-8081001128:	00431021 	addu	v0,v0,v18100112c:	a3a20014 	sb	v0,20(sp)  column_msb=y_adr>>4;
81001130:	93a2002c 	lbu	v0,44(sp)81001134:	00021102 	srl	v0,v0,0x481001138:	a3a20012 	sb	v0,18(sp)  column_msb=column_msb|0xf0;
8100113c:	93a30012 	lbu	v1,18(sp)81001140:	2402fff0 	li	v0,-1681001144:	00621025 	or	v0,v1,v081001148:	a3a20012 	sb	v0,18(sp)  column_msb=column_msb&0x1f;
8100114c:	93a20012 	lbu	v0,18(sp)81001150:	3042001f 	andi	v0,v0,0x1f81001154:	a3a20012 	sb	v0,18(sp)  column_lsb=y_adr&0x0f;
81001158:	93a2002c 	lbu	v0,44(sp)8100115c:	3042000f 	andi	v0,v0,0xf81001160:	a3a20013 	sb	v0,19(sp)  result=s6b0724_write_command(column_msb); 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -