• 沒有找到結果。

第五章 結論與未來研究方向

附圖 6 右側Light Bar Layout圖

附錄B

Scanning Field Sequential Color Backlight System 控制程式原始碼

// ============================================================ //

// 國立交通大學 – 光電所 //

// Scanning FSC Light Bar Control System Driving Program => MBI5028SCAN.C //

// Control Port : CLK=P3.0, LE=P3.5, OE=P3.6 //

// DATAI/OPort : Port1.0 ~ Port1.7 //

// VDD=5V (5V recommand); VLED=10V ~ 17V //

// Design & Coding by 蘇志揚 / Jeff Su 2007/03/15 //

// ============================================================ //

#include <AT89X51.H>

#include "SETDATA.H"

// ======== For serial interface ====

sbit CLK=0xb0;

sbit LE=0xb5;

sbit OE=0xb6;

// ===================================

void Write_data(char data1, char data2);

void Write_cfg_code(char cfg_code);

void CAdj_MODE();

void Normal_MODE();

void RGBW_DISP();

void RGB_SLOW();

void RGB_FAST();

void FSC_SCAN();

void FSC_SCAN2();

void FSC_SCAN_60HZ();

void FAST_SCAN();

void delay(int count);

void delay1(int count);

void delay1a(int count);

void delay2(int count);

int SCANP33();

void main(void) {

int a,b,tmpdat,adat,rdat,cfg_code,HC,pcode,dtime;

char keyscan(void);

char keystatus;

unsigned char key=0;

while(1)

else if (key==0x04) FSC_SCAN_60HZ();

else if (key==0x80) FSC_SCAN2();

else if (key==0x10) FAST_SCAN();

} }

// ==================================================

void RGBW_DISP() {

// T. For R.G.B Display Write_data(0x92,0x49);

Write_data(0x92,0x49);

SCANP33();

Write_data(0x24,0x92);

Write_data(0x24,0x92);

SCANP33();

Write_data(0x49,0x24);

Write_data(0x49,0x24);

SCANP33();

Write_data(0xFF,0xFF);

Write_data(0xFF,0xFF);

SCANP33();

/*

// ============== For Partial Display - Field4 =====================

Write_data(0x00,0x00);

Write_data(0x02,0x00);

SCANP33();

Write_data(0x00,0x00);

Write_data(0x04,0x00);

SCANP33();

Write_data(0x00,0x00);

Write_data(0x08,0x00);

SCANP33();

Write_data(0x00,0x00);

Write_data(0x0E,0x00);

SCANP33();

*/

// ============== For Partial Display - Field5 =====================

Write_data(0x00,0x00);

Write_data(0x10,0x00);

SCANP33();

Write_data(0x00,0x00);

Write_data(0x20,0x00);

SCANP33();

Write_data(0x00,0x00);

Write_data(0x40,0x00);

SCANP33();

Write_data(0x00,0x00);

Write_data(0x70,0x00);

SCANP33();

// ============== For Partial Display - Field6 =====================

Write_data(0x00,0x00);

Write_data(0x80,0x00);

SCANP33();

Write_data(0x00,0x02);

Write_data(0x00,0x00);

SCANP33();

Write_data(0x00,0x04);

Write_data(0x00,0x00);

SCANP33();

Write_data(0x00,0x07);

Write_data(0x80,0x00);

SCANP33();

void RGB_SLOW()

Write_data(0x23,0x11);

delay(dtime);

Write_data(0xc4,0x62);

delay(dtime);

Write_data(0x18,0x8c);

delay(dtime);

} }

void RGB_FAST() {

Write_data(0xc4,0x62);

delay(dtime);

Write_data(0x18,0x8c);

delay(dtime);

} }

// ================================================================

void FSC_SCAN_60HZ() // FSC Scanning {

int a,dtime;

dtime=4;

// 1A ~ 5A Red LED waiting time for LCD ready.

Write_data(0x00,0x00);

Write_data(0x00,0x00);

delay1a(dtime);

Write_data(0x00,0x00);

Write_data(0x00,0x00);

delay1a(dtime);

Write_data(0x00,0x00);

Write_data(0x00,0x00);

delay1a(dtime);

Write_data(0x00,0x00);

Write_data(0x00,0x02);

delay1a(dtime);

Write_data(0x00,0x00);

Write_data(0x00,0x12);

delay1a(dtime);

Write_data(0x00,0x00);

Write_data(0x00,0x92);

delay1a(dtime);

Write_data(0x04,0x92);

delay1a(dtime);

Write_data(0x00,0x00);

Write_data(0x24,0x92);

delay1a(dtime);

Write_data(0x00,0x02);

Write_data(0x24,0x90);

delay1a(dtime);

// --- Write_data(0x00,0x12);

Write_data(0x24,0x80);

delay1a(dtime);

Write_data(0x00,0x92);

Write_data(0x24,0x00);

delay1a(dtime);

Write_data(0x04,0x92);

Write_data(0x20,0x00);

delay1a(dtime);

Write_data(0x24,0x92);

Write_data(0x00,0x00);

delay1a(dtime);

Write_data(0x24,0x90);

Write_data(0x00,0x00);

delay1a(dtime);

Write_data(0x24,0x80);

Write_data(0x00,0x01);

delay1a(dtime);

Write_data(0x24,0x00);

Write_data(0x00,0x09);

delay1a(dtime);

Write_data(0x20,0x00);

Write_data(0x00,0x49);

delay1a(dtime);

Write_data(0x00,0x00);

Write_data(0x02,0x49);

delay1a(dtime);

Write_data(0x00,0x00);

Write_data(0x12,0x49);

delay1a(dtime);

Write_data(0x00,0x00);

Write_data(0x92,0x48);

delay1a(dtime);

// --- Write_data(0x00,0x08);

Write_data(0x92,0x40);

delay1a(dtime);

Write_data(0x00,0x48);

Write_data(0x92,0x00);

delay1a(dtime);

Write_data(0x02,0x48);

Write_data(0x90,0x00);

delay1a(dtime);

Write_data(0x12,0x48);

Write_data(0x80,0x00);

delay1a(dtime);

Write_data(0x12,0x48);

Write_data(0x00,0x00);

delay1a(dtime);

Write_data(0x12,0x40);

Write_data(0x00,0x04);

delay1a(dtime);

Write_data(0x12,0x00);

Write_data(0x00,0x24);

delay1a(dtime);

Write_data(0x10,0x00);

Write_data(0x01,0x24);

delay1a(dtime);

Write_data(0x00,0x00);

Write_data(0x09,0x24);

delay1a(dtime);

Write_data(0x00,0x00);

Write_data(0x49,0x24);

delay1a(dtime);

Write_data(0x00,0x04);

Write_data(0x49,0x20);

delay1a(dtime);

// --- Write_data(0x00,0x24);

Write_data(0x49,0x00);

delay1a(dtime);

Write_data(0x01,0x24);

Write_data(0x48,0x00);

delay1a(dtime);

Write_data(0x09,0x24);

Write_data(0x40,0x00);

delay1a(dtime);

Write_data(0x49,0x24);

Write_data(0x00,0x00);

delay1a(dtime);

Write_data(0x49,0x20);

Write_data(0x00,0x00);

delay1a(dtime);

Write_data(0x49,0x00);

Write_data(0x00,0x02);

delay1a(dtime);

Write_data(0x48,0x00);

Write_data(0x00,0x12);

delay1a(dtime);

Write_data(0x40,0x00);

Write_data(0x00,0x92);

delay1a(dtime);

} }

// =================================================

////////// MBI5028 Command Subroutine //////////

void Write_cfg_code(char cfg_code) {

LE=1;

void Write_data(char data1, char data2) {

void CAdj_MODE() {

LE=0;

OE=1;

CLK=0;

CLK=1;

LE=0;

void Normal_MODE() {

OE=1;

char keyscan(void) {

char keystatus;

P3=0xff;

keystatus=~P3;

return(keystatus);

}

int SCANP33() {

while(P3_3==0);

delay2(10);

while(P3_3==1);

return 1;

}

void delay(int count) {

int j,k;

for(j=0;j<count;j++) {

for(k=0;k<160;k++);

} }

void delay1a(int count) {

int j,k;

for(j=0;j<count;j++) {

for(k=0;k<20;k++);

} }

void delay1(int count) {

int j,k;

for(j=0;j<count;j++) {

for(k=0;k<1;k++);

} }

void delay2(int count) {

int j,k;

for(j=0;j<count;j++) {

for(k=0;k<12000;k++);

} }

簡 歷

姓名:蘇志揚

籍貫:臺灣省高雄縣 出生年月:1975年

學歷:

省立臺南高工-電子科 國立雲林工專-光電工程科 崑山技術學院-電子工程系

國立交通大學-電機學院-電子與光電學程碩士班

經歷:

明碁電通-應用工程師 東訊公司-研發工程師 緯創資通-高級工程師 凌陽科技-正工程師 旭曜科技-資深工程師

研討會論文:

Ming-Chin Chien, Cho-Chih Chen, Chih-Yang Su, Yen-Hsing Lu, Chung-Hao Tien, Hao-Chung Kuo, "LED LIGHT LIT FOR FIELD-SEQUENTIAL-COLOR BACKLIGHT SYSTEM", ASIA DISPLAY 2007 INTERNATIONAL CONFERENCE & EXHIBITION, AD50182.

專利發明:

機台測試卡關方法, 中華民國發明專利證書, I226566

機台測試卡關方法, 中華人民共和國發明專利證書, CN03124391.6

專業證照:

工業電子技術士, 丙級, 行政院勞委會, 證書編號:224139 電腦軟體應用技術士, 丙級, 行政院勞委會, 證書編號:206793 電腦硬體裝修技術士, 丙級, 行政院勞委會, 證書編號:069402 電腦軟體設計技術士, 丙級, 行政院勞委會, 證書編號:024976 全民英語檢定合格, 教育部語言訓練測驗中心, 證書編號:E060554

相關文件