[問題] 串列輸入控制顯示器一問 (已追加ic情報)
目前在測試IC型顯示器
之前有嘗試過控制並列輸入的顯示器 有成功的控制字碼
今回測試的顯示器為串列輸入
將程式載入後 顯示器並沒有任何的作動產生...= ="
目前不知道是硬體有問題還是軟體出現問題...
所以想請各位大大協助看一下..
程式碼如下所示
不知道各位大大是否可以替我檢視一下是否軟體部份有問題@@"
http://cid-d05d6bff731efcbf.skydrive.live.com/self.aspx/%e6%96%87%e4%bb%b6/
IC-090917.pdf
#include <reg51.h> /* define 8051 registers */
#include <stdio.h> /* define I/O functions */
sbit csb = P1^0; // define CSB pin
sbit cpb = P1^1; // define DA pin
sbit da = P1^2; // define CPB pin
sbit rstb = P1^3; // define RSTB pin
int i, j;
void initial();
void csb_enable();
void da_data(int);
void delay(int count);
void cgram();
void da_data(int a) // set input data (DA)
{
for (i = 1; i <= 8; i++) // data length = 8 bits
{
if (a & 0x01) // if data (a) AND 01H, true: 1; false: 0
da = 1;
else
da = 0;
a >>= 1; // after AND, the data right shift 1 bit
cpb = 0; delay(0);
cpb = 1; delay(0); // when CPB pin rising edge => write data
}
}
void csb_enable() // CSB signal
{
csb = 1; delay(1);
csb = 0; delay(1);
}
void delay(int count) // delay time
{
int i;
for (i = 1; i <= count; i++);
}
//========================================================================
void initial()
{
delay(5);
rstb = 0; delay(10);
rstb = 1; delay(20);
csb = 0;
da_data(0xe0); delay(16);
da_data(0x0f); delay(16);
csb_enable(); //Display timing Set (Page 4-10)
da_data(0x80); delay(16);
da_data(0x00); delay(16);
da_data(0x00); delay(16);
csb_enable(); //URAM Set (Page 4-11)
da_data(0x00); delay(16);
da_data(0x00); delay(16);
csb_enable(); //Display mode Set (Page 4-5)
da_data(0xe4); delay(16);
da_data(0xff); delay(16);
csb_enable(); //Dimming data write set (Page 4-12)
da_data(0xa0); delay(16);
da_data(0xff); delay(16);
csb_enable(); //Gray-level data write set (Page 4-13)
da_data(0xc0); delay(16);
da_data(0x00); delay(16);
csb_enable(); //Gray-level ON/OFF set (Page 4-14)
da_data(0x60); delay(8); //GR1 ~ GR16, ADRAM data write set(Page 4-8)
da_data(0x61); delay(8); //GR2, set to off
da_data(0x62); delay(8); //GR3, set to off
da_data(0x63); delay(8); //GR4, set to off
da_data(0x64); delay(8); //GR5, set to off
da_data(0x65); delay(8); //GR6, set to off
da_data(0x66); delay(8); //GR7, set to off
da_data(0x67); delay(8); //GR8, set to off
da_data(0x68); delay(8); //GR9, set to off
da_data(0x69); delay(8); //GR10, set to off
da_data(0x6a); delay(8); //GR11, set to off
da_data(0x6b); delay(8); //GR12, set to off
da_data(0x6c); delay(8); //GR13, set to off
da_data(0x6d); delay(8); //GR14, set to off
da_data(0x6e); delay(8); //GR15, set to off
da_data(0x6f); delay(8); //GR16, set to off
csb_enable();
// Clear Display
da_data(0x20); delay(8); //GR1 ~ GR16, 5 x 7 segment (Page 4-4)
da_data(0x20); delay(8); //GR1, call CGROM data=20H
da_data(0x20); delay(8); //GR2, call CGROM data=20H
da_data(0x20); delay(8); //GR3, call CGROM data=20H
da_data(0x20); delay(8); //GR4, call CGROM data=20H
da_data(0x20); delay(8); //GR5, call CGROM data=20H
da_data(0x20); delay(8); //GR6, call CGROM data=20H
da_data(0x20); delay(8); //GR7, call CGROM data=20H
da_data(0x20); delay(8); //GR8, call CGROM data=20H
da_data(0x20); delay(8); //GR9, call CGROM data=20H
da_data(0x20); delay(8); //GR10, call CGROM data=20H
da_data(0x20); delay(8); //GR11, call CGROM data=20H
da_data(0x20); delay(8); //GR12, call CGROM data=20H
da_data(0x20); delay(8); //GR13, call CGROM data=20H
da_data(0x20); delay(8); //GR14, call CGROM data=20H
da_data(0x20); delay(8); //GR15, call CGROM data=20H
da_data(0x20); delay(8); //GR16, call CGROM data=20H
csb_enable();
}
void cgram() //Setiing CGRAM data (ram address: 00~07H)
{
da_data(0x60); delay(1); //CGRAM 1
da_data(0x60); delay(1);
da_data(0x60); delay(1);
da_data(0x60); delay(1);
da_data(0x60); delay(1);
da_data(0x70); delay(1); //CGRAM 2
da_data(0x70); delay(1);
da_data(0x70); delay(1);
da_data(0x70); delay(1);
da_data(0x70); delay(1);
da_data(0x78); delay(1); //CGRAM 3
da_data(0x78); delay(1);
da_data(0x78); delay(1);
da_data(0x78); delay(1);
da_data(0x78); delay(1);
da_data(0x7c); delay(1); //CGRAM 4
da_data(0x7c); delay(1);
da_data(0x7c); delay(1);
da_data(0x7c); delay(1);
da_data(0x7c); delay(1);
da_data(0x7c); delay(1); //CGRAM 5
da_data(0x7c); delay(1);
da_data(0x7c); delay(1);
da_data(0x7c); delay(1);
da_data(0x7c); delay(1);
da_data(0x78); delay(1); //CGRAM 6
da_data(0x78); delay(1);
da_data(0x78); delay(1);
da_data(0x78); delay(1);
da_data(0x78); delay(1);
da_data(0x70); delay(1); //CGRAM 7
da_data(0x70); delay(1);
da_data(0x70); delay(1);
da_data(0x70); delay(1);
da_data(0x70); delay(1);
da_data(0x60); delay(1); //CGRAM 8
da_data(0x60); delay(1);
da_data(0x60); delay(1);
da_data(0x60); delay(1);
da_data(0x60); delay(1);
csb_enable();
}
void main()
{
initial(); //jump initial setting
while(1)
{
da_data(0x20); delay(1); //CGRAM setting
cgram();
da_data(0xe0);
da_data(0x0f); csb_enable(); //Display Duty Set (Dimming, 15/16)
da_data(0x10); delay(8); //GR1 ~ GR16, 5 x 7 segment
for (j=0x00; j<=0xff; j++)
{
da_data(j); delay(8); //GRn, display as j++
delay(20000);
}
csb_enable();
// Clear Display
da_data(0x20); delay(8); //GR1 ~ GR16, 5 x 7 segment(Page 4-4)
da_data(0x20); delay(8); //GR1, call CGROM data=20H
da_data(0x20); delay(8); //GR2, call CGROM data=20H
da_data(0x20); delay(8); //GR3, call CGROM data=20H
da_data(0x20); delay(8); //GR4, call CGROM data=20H
da_data(0x20); delay(8); //GR5, call CGROM data=20H
da_data(0x20); delay(8); //GR6, call CGROM data=20H
da_data(0x20); delay(8); //GR7, call CGROM data=20H
da_data(0x20); delay(8); //GR8, call CGROM data=20H
da_data(0x20); delay(8); //GR9, call CGROM data=20H
da_data(0x20); delay(8); //GR10, call CGROM data=20H
da_data(0x20); delay(8); //GR11, call CGROM data=20H
da_data(0x20); delay(8); //GR12, call CGROM data=20H
da_data(0x20); delay(8); //GR13, call CGROM data=20H
da_data(0x20); delay(8); //GR14, call CGROM data=20H
da_data(0x20); delay(8); //GR15, call CGROM data=20H
da_data(0x20); delay(8); //GR16, call CGROM data=20H
csb_enable();
}
}
--
靜靜的等人追的話頂多只能有兩三個選擇
但是主動出擊去追人的話妳的選擇將會是無限喔~共勉之
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 124.6.3.229
→
09/15 23:50, , 1F
09/15 23:50, 1F
推
09/15 23:56, , 2F
09/15 23:56, 2F
→
09/15 23:56, , 3F
09/15 23:56, 3F
→
09/16 10:38, , 4F
09/16 10:38, 4F
※ 編輯: beminaru 來自: 124.6.3.229 (09/16 22:12)
※ 編輯: beminaru 來自: 124.6.3.229 (09/16 22:27)
※ beminaru:轉錄至看板 ASM 09/16 22:28
※ 編輯: beminaru 來自: 124.6.3.229 (09/17 22:13)