keil C51 환경에서는 LCD 일부 한자에 문제가 표시되지 않습니다.

1767 단어 단편기
문제 설명:keil C51 컴파일 환경, 라이브러리 액정 사용.어떤 한자는 이런 문구를 사용해서 표시할 수 없음 발견: uchar code counshow1[]={"첫 번째 조작수를 입력하세요"};한자 "수"는 표시되지 않으며, 위와 같은 한자를 간체 중국어 인코딩으로 대체할 경우: uchar code counshow1[]={0xc7,0xeb,0xca,0xe4,0xc8,0xeb,0xb5,0xda,0xd2,0xbb,0xb2,0xd9,0xd7,0xf7,0xca,0xfd};,액정 스크린에 한자 '수' 를 표시할 수 있다.여기서 한자'수'간체 중국어 인코딩은 0xca, 0xfd.'제'(간체 중국어 인코딩: 0xb3,0xfd),'3'(간체 중국어 인코딩 0xc8,0xfd) 등 일부 한자도 발견되었고 표시할 수 없는 한자들은 모두 공통점이 하나 있다. 간체 중국어 인코딩의 두 번째 바이트는 모두 0xfd이다.
 
이것은 아주 오래 전에 겪은 문제로 내가 대학에서 대학생 전자 경연을 준비할 때 근무 기간에 또 한 번 이 문제를 만났다고 거슬러 올라간다.단지 컴파일러일 수 있는 버그를 분석했을 뿐이다. 왜냐하면 간체 중국어 인코딩에서 액정은 표시할 수 있지만, 줄곧 확인되지 않았기 때문이다.며칠 전에 인터넷을 한가로이 거닐다가 패치 하나를 보고 나서야 비로소 자신의 당초 추측이 정확하다는 것을 깨달았다.
 
원래 이것은 컴파일러 bug입니다: keil c51은 컴파일할 때 0xfd의 문자 (일부 한자는 이 문자를 포함하는 내장 코드, 예를 들어 한자 '수') 를 필터해서 프로그램에 오류가 발생합니다.특히 액정 한자 표시를 할 때.
   
이 버그에 대해 일부 네티즌들은 패치를 만들어서 다운로드한 후keil/c51/bin 디렉터리에 넣고 이 프로그램을 실행합니다.됐어요.지원 v8.02
 
이 사이트에서 패치를 다운로드할 수 있습니다.http://share.eepw.com.cn/share/download/id/17061
또는 이 사이트에서 패치를 다운로드하십시오.http://www.cndzz.com/down/soft/39675.htm
 
PS:현재 주로 ARM을 하고 있기 때문에keilc51은 기본적으로 사용하지 않기 때문에 상기 패치 본인은 테스트를 한 적이 없습니다.
또한: 컴파일러 인코딩 형식 설정
         Edit >> Configuration      

0xFD Bug은 Keil 컴파일러에 항상 존재하고 공식적으로 복구되지 않은 BUG입니다!!!
BUG 설명: C 소스 코드에 한자 등 비 ASCII 문자를 사용하고, 이 문자의 인코딩이 0xFD보다 크거나 같은 바이트를 포함할 때, 이 바이트는 컴파일러에 의해 삭제되어 최종 프로그램 코드의 실행 오류가 발생합니다.
BUG 복구 방법 1: 16진수 편집 소프트웨어로 c51. 열기exe와 cx51.exe (이 두 파일은 같고 이름은 다르다) c51.exe 위치: Keil 설치 디렉토리/keil/c51/bin/c51.exe cx51.exe 위치: Keil 설치 디렉토리/keil/c51/bin/cx51.exe
v905 이전 0xfd 취약점 수정 방법:
80fbfd56을 80fbff56v905로 바꾸는 0xfd 빈틈 수정 방법 찾기 80fbfd0f를 80fbff0f로 바꾸는 방법

좋은 웹페이지 즐겨찾기