Thông báo

Collapse
No announcement yet.

Hỏi về user character

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Hỏi về user character

    Chào các bác, em là dân mới tập tọe 8051, đang lúc bí, mong các bác giúp em với.
    Chẳng là em muốn hiển thị kí tự tự định nghĩa lên LCD. Phần cứng của em là thế này (đơn giản quá, vì mới học):

    Em đã đọc về nó trong sách rồi viết đoạn code này (KeilC) nhưng nó ko chạy:

    Code:
    #include<regx51.h>
    #define lcdPort P3
    #define E P2_0
    #define RS P2_2
    #define RW P2_1
    
    void ready()
    {
    	P3_7=1;
    	RS=0;
    	RW=1;
    	do
    	{
    		E=0;E=1;
    	}while(P3_7==1);
    }
    void send_command(com)
    {
    	ready();
    	lcdPort=com;
    	RS=0;
    	RW=0;
    	E=1;E=0;
    }
    void send_data(unsigned char ascii_data)
    {
    	ready();
    	lcdPort=ascii_data;
    	RS=1;
    	RW=0;
    	E=1;E=0;	
    }
    void main()
    {
    	char i;
    	i=0x40;
    	send_command(0x38);//init LCD
    	send_command(0x0c);		
    	send_command(0x01);
    	send_command(0x06);
    	
    	while(1)
    	{
    		send_command(i);
    		send_data(0x0a);
    		i++;
    		if(i==0x40+8)break;
    	} 
    	//send_command(0xc0);
    	//send_data('f');
    	//while(1);
    }
    Em chôm chỉa được một đoạn code asm chạy được nhưng ko hiểu lắm (ở chỗ inc R0 đó):

    Code:
    build:						;Building custom character routine
    	mov	dptr,#cgram
    	MOV	R0,#40h
    putcg:	
    	MOV	A,R0
    	acall	command
    	inc	R0
    	MOV	A,#00h
    	MOVC	A,@A+dptr
    	CJNE	A,#99h,next_cg
    	
    	ret
    next_cg:
    	lcall	data_in
    	inc 	dptr
    	jmp	putcg
    cgram:
    	db 4h,0eh,0eh,0eh,1fh,0h,4h,0h	 ;BELL
    	db 99h
    Các bác giúp em với nhé, em cám ơn nhiều.
    Chuyện nhỏ như con thỏ,bắt thỏ mới là chuyện lớn!!!

Về tác giả

Collapse

it4rb &quot;second hand&quot; student Tìm hiểu thêm về it4rb

Bài viết mới nhất

Collapse

Đang tải...
X