123

Dependencies:   mbed

Committer:
yujc99
Date:
Mon May 29 01:03:24 2017 +0000
Revision:
1:b81598bdd689
Parent:
0:90cc924d4dc0
2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yujc99 0:90cc924d4dc0 1 #include "mbed.h"
yujc99 0:90cc924d4dc0 2
yujc99 0:90cc924d4dc0 3 //------------------------------------
yujc99 0:90cc924d4dc0 4 // Hyperterminal configuration
yujc99 0:90cc924d4dc0 5 // 9600 bauds, 8-bit data, no parity
yujc99 0:90cc924d4dc0 6 //------------------------------------
yujc99 0:90cc924d4dc0 7
yujc99 0:90cc924d4dc0 8 Serial pc(SERIAL_TX, SERIAL_RX);
yujc99 0:90cc924d4dc0 9
yujc99 0:90cc924d4dc0 10 DigitalOut myled(LED1);
yujc99 0:90cc924d4dc0 11
yujc99 0:90cc924d4dc0 12 // TC1668
yujc99 0:90cc924d4dc0 13 DigitalOut LED_CLK(PB_8);
yujc99 0:90cc924d4dc0 14 DigitalOut LED_DIO(PB_9);
yujc99 0:90cc924d4dc0 15 DigitalOut LED_STB(PB_10);
yujc99 0:90cc924d4dc0 16
yujc99 0:90cc924d4dc0 17
yujc99 0:90cc924d4dc0 18 DigitalOut BUZZER_ON_OFF(PB_3);
yujc99 0:90cc924d4dc0 19 DigitalOut BUZZER_MELODY(PA_2);
yujc99 0:90cc924d4dc0 20
yujc99 0:90cc924d4dc0 21
yujc99 0:90cc924d4dc0 22 #define uchar unsigned char
yujc99 0:90cc924d4dc0 23
yujc99 0:90cc924d4dc0 24 /*----------------0----1----2----3----4----5----6----7----8----9----A----b----C----d----E----F*/
yujc99 0:90cc924d4dc0 25 uchar TAB[16] = {0X3f,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X67,0xDB,0X5E,0XC6,0X1F,0XCE,0XCA};\\
yujc99 0:90cc924d4dc0 26 // TM1668 H/W SEG1~8(PIN7~14) / GRID 1~4(PIN 24,23,21,20)/ DIO CLK STB(PIN 1,2,3)
yujc99 0:90cc924d4dc0 27 // SEGMENT 1(A),2(B),3(C),4(D),5(E),6(F),7(G) DRID N
yujc99 0:90cc924d4dc0 28
yujc99 0:90cc924d4dc0 29
yujc99 0:90cc924d4dc0 30
yujc99 0:90cc924d4dc0 31 void Send_data(uchar dat)
yujc99 0:90cc924d4dc0 32 {
yujc99 0:90cc924d4dc0 33 uchar i;
yujc99 0:90cc924d4dc0 34 for(i=0;i<8;i++)
yujc99 0:90cc924d4dc0 35 {
yujc99 0:90cc924d4dc0 36 LED_CLK = 0;// CLK_L;
yujc99 0:90cc924d4dc0 37 if(dat & (1 << i)) LED_DIO = 1;//{DI_H;}
yujc99 0:90cc924d4dc0 38 else LED_DIO = 0;//{DI_L;}
yujc99 0:90cc924d4dc0 39 asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); //asm("nop"); asm volatile("NOP");
yujc99 0:90cc924d4dc0 40 LED_CLK = 1; //CLK_H;
yujc99 0:90cc924d4dc0 41 }
yujc99 0:90cc924d4dc0 42 LED_CLK = 0;// CLK_L;
yujc99 0:90cc924d4dc0 43 }
yujc99 0:90cc924d4dc0 44
yujc99 0:90cc924d4dc0 45 void DIS_1668(uchar data1,uchar data2,uchar data3,uchar data4) //void DIS_1668(uchar data1,uchar data2,uchar data3,uchar data4)
yujc99 0:90cc924d4dc0 46 {
yujc99 0:90cc924d4dc0 47 LED_STB = 1; // STB_H;
yujc99 0:90cc924d4dc0 48 asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); // asm("nop"); // 14段
yujc99 0:90cc924d4dc0 49 LED_STB = 0; // STB_L;
yujc99 0:90cc924d4dc0 50 Send_data(0X03); //设置显示模式,4位14段
yujc99 0:90cc924d4dc0 51
yujc99 0:90cc924d4dc0 52
yujc99 0:90cc924d4dc0 53 LED_STB = 1; // STB_H;
yujc99 0:90cc924d4dc0 54 asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); // asm("nop");
yujc99 0:90cc924d4dc0 55 LED_STB = 0; // // STB_L;
yujc99 0:90cc924d4dc0 56 Send_data(0X44); //固定地址
yujc99 0:90cc924d4dc0 57
yujc99 0:90cc924d4dc0 58 //data1 = 0x00; FND D2(중간)
yujc99 0:90cc924d4dc0 59 LED_STB = 1; // STB_H;
yujc99 0:90cc924d4dc0 60 asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); // asm("nop");
yujc99 0:90cc924d4dc0 61 LED_STB = 0; // STB_L;
yujc99 0:90cc924d4dc0 62 Send_data(0XC2); //?送地址
yujc99 0:90cc924d4dc0 63 Send_data(data1);//data1 = 0x00; FND D2(중간)
yujc99 0:90cc924d4dc0 64 //data2 = 0x00; // FND D3(우측)
yujc99 0:90cc924d4dc0 65 LED_STB = 1; // STB_H;
yujc99 0:90cc924d4dc0 66 asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); // asm("nop");
yujc99 0:90cc924d4dc0 67 LED_STB = 0; // STB_L;
yujc99 0:90cc924d4dc0 68 Send_data(0XC4); //?送地址
yujc99 0:90cc924d4dc0 69 Send_data(data2);
yujc99 0:90cc924d4dc0 70 //data3 = 0x00; // FND 해당없음
yujc99 0:90cc924d4dc0 71 LED_STB = 1; // STB_H;
yujc99 0:90cc924d4dc0 72 asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); // asm("nop");
yujc99 0:90cc924d4dc0 73 LED_STB = 0; // STB_L;
yujc99 0:90cc924d4dc0 74 Send_data(0XC6); //?送地址
yujc99 0:90cc924d4dc0 75 Send_data(data3);
yujc99 0:90cc924d4dc0 76 data4 = 0x00; // FND D1(좌측)
yujc99 0:90cc924d4dc0 77 LED_STB = 1; // STB_H;
yujc99 0:90cc924d4dc0 78 asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); // asm("nop");
yujc99 0:90cc924d4dc0 79 LED_STB = 0; // STB_L;
yujc99 0:90cc924d4dc0 80 Send_data(0XC0); //?送地址
yujc99 0:90cc924d4dc0 81 Send_data(data4);
yujc99 0:90cc924d4dc0 82
yujc99 0:90cc924d4dc0 83 LED_STB = 1; // STB_H;
yujc99 0:90cc924d4dc0 84 asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); //asm("nop");
yujc99 0:90cc924d4dc0 85 LED_STB = 0; // STB_L;
yujc99 0:90cc924d4dc0 86 Send_data(0X8B); //??示
yujc99 0:90cc924d4dc0 87 }
yujc99 0:90cc924d4dc0 88
yujc99 0:90cc924d4dc0 89
yujc99 0:90cc924d4dc0 90 void MODE_Display(uchar data1){
yujc99 0:90cc924d4dc0 91
yujc99 0:90cc924d4dc0 92 LED_STB = 1; // STB_H;
yujc99 0:90cc924d4dc0 93 asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); // asm("nop"); // 14段
yujc99 0:90cc924d4dc0 94 LED_STB = 0; // STB_L;
yujc99 0:90cc924d4dc0 95 Send_data(0X03); //设置显示模式,4位14段
yujc99 0:90cc924d4dc0 96
yujc99 0:90cc924d4dc0 97
yujc99 0:90cc924d4dc0 98 LED_STB = 1; // STB_H;
yujc99 0:90cc924d4dc0 99 asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); // asm("nop");
yujc99 0:90cc924d4dc0 100 LED_STB = 0; // // STB_L;
yujc99 0:90cc924d4dc0 101 Send_data(0X44); //固定地址
yujc99 0:90cc924d4dc0 102
yujc99 0:90cc924d4dc0 103 LED_STB = 1; // STB_H;
yujc99 0:90cc924d4dc0 104 asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); // asm("nop");
yujc99 0:90cc924d4dc0 105 LED_STB = 0; // STB_L;
yujc99 0:90cc924d4dc0 106 Send_data(0xC0); //FND 1번
yujc99 0:90cc924d4dc0 107 Send_data(data1);//data1 = 0x00; FND D1(좌)
yujc99 0:90cc924d4dc0 108
yujc99 0:90cc924d4dc0 109 LED_STB = 1; // STB_H;
yujc99 0:90cc924d4dc0 110 asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); //asm("nop");
yujc99 0:90cc924d4dc0 111 LED_STB = 0; // STB_L;
yujc99 0:90cc924d4dc0 112 Send_data(0X8B); //??示
yujc99 0:90cc924d4dc0 113 }
yujc99 0:90cc924d4dc0 114
yujc99 0:90cc924d4dc0 115
yujc99 0:90cc924d4dc0 116 void HEATER_Display(uchar data1){
yujc99 0:90cc924d4dc0 117
yujc99 0:90cc924d4dc0 118 LED_STB = 1; // STB_H;
yujc99 0:90cc924d4dc0 119 asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); // asm("nop"); // 14段
yujc99 0:90cc924d4dc0 120 LED_STB = 0; // STB_L;
yujc99 0:90cc924d4dc0 121 Send_data(0X03); //设置显示模式,4位14段
yujc99 0:90cc924d4dc0 122
yujc99 0:90cc924d4dc0 123
yujc99 0:90cc924d4dc0 124 LED_STB = 1; // STB_H;
yujc99 0:90cc924d4dc0 125 asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); // asm("nop");
yujc99 0:90cc924d4dc0 126 LED_STB = 0; // // STB_L;
yujc99 0:90cc924d4dc0 127 Send_data(0X44); //固定地址
yujc99 0:90cc924d4dc0 128
yujc99 0:90cc924d4dc0 129 LED_STB = 1; // STB_H;
yujc99 0:90cc924d4dc0 130 asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); // asm("nop");
yujc99 0:90cc924d4dc0 131 LED_STB = 0; // STB_L;
yujc99 0:90cc924d4dc0 132 Send_data(0xC2); //FND 2번
yujc99 0:90cc924d4dc0 133 Send_data(data1);//data1 = 0x00; FND D2(중간)
yujc99 0:90cc924d4dc0 134
yujc99 0:90cc924d4dc0 135 LED_STB = 1; // STB_H;
yujc99 0:90cc924d4dc0 136 asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); //asm("nop");
yujc99 0:90cc924d4dc0 137 LED_STB = 0; // STB_L;
yujc99 0:90cc924d4dc0 138 Send_data(0X8B); //??示
yujc99 0:90cc924d4dc0 139 }
yujc99 0:90cc924d4dc0 140
yujc99 0:90cc924d4dc0 141 void INTENSITY_Display(uchar data1){
yujc99 0:90cc924d4dc0 142
yujc99 0:90cc924d4dc0 143 LED_STB = 1; // STB_H;
yujc99 0:90cc924d4dc0 144 asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); // asm("nop"); // 14段
yujc99 0:90cc924d4dc0 145 LED_STB = 0; // STB_L;
yujc99 0:90cc924d4dc0 146 Send_data(0X03); //设置显示模式,4位14段
yujc99 0:90cc924d4dc0 147
yujc99 0:90cc924d4dc0 148
yujc99 0:90cc924d4dc0 149 LED_STB = 1; // STB_H;
yujc99 0:90cc924d4dc0 150 asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); // asm("nop");
yujc99 0:90cc924d4dc0 151 LED_STB = 0; // // STB_L;
yujc99 0:90cc924d4dc0 152 Send_data(0X44); //固定地址
yujc99 0:90cc924d4dc0 153
yujc99 0:90cc924d4dc0 154 LED_STB = 1; // STB_H;
yujc99 0:90cc924d4dc0 155 asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); // asm("nop");
yujc99 0:90cc924d4dc0 156 LED_STB = 0; // STB_L;
yujc99 0:90cc924d4dc0 157 Send_data(0xC4); //FND 3번
yujc99 0:90cc924d4dc0 158 Send_data(data1);//data1 = 0x00; FND D3(우측)
yujc99 0:90cc924d4dc0 159
yujc99 0:90cc924d4dc0 160 LED_STB = 1; // STB_H;
yujc99 0:90cc924d4dc0 161 asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); asm volatile("NOP"); //asm("nop");
yujc99 0:90cc924d4dc0 162 LED_STB = 0; // STB_L;
yujc99 0:90cc924d4dc0 163 Send_data(0X8B); //??示
yujc99 0:90cc924d4dc0 164 }
yujc99 0:90cc924d4dc0 165
yujc99 0:90cc924d4dc0 166
yujc99 0:90cc924d4dc0 167 int main()
yujc99 0:90cc924d4dc0 168 {
yujc99 0:90cc924d4dc0 169 int i = 1; char a=4,b=5;
yujc99 0:90cc924d4dc0 170 pc.printf("Hello World !\n");
yujc99 0:90cc924d4dc0 171
yujc99 0:90cc924d4dc0 172
yujc99 0:90cc924d4dc0 173 MODE_Display(TAB[0]);HEATER_Display(TAB[0]);INTENSITY_Display(TAB[0]);
yujc99 0:90cc924d4dc0 174 while(1) {
yujc99 0:90cc924d4dc0 175
yujc99 0:90cc924d4dc0 176
yujc99 0:90cc924d4dc0 177 myled = 1; // LED is ON
yujc99 0:90cc924d4dc0 178 wait(0.5); // 200 ms
yujc99 0:90cc924d4dc0 179 myled = 0; // LED is OFF
yujc99 0:90cc924d4dc0 180 wait(0.5); // 1 sec
yujc99 0:90cc924d4dc0 181
yujc99 0:90cc924d4dc0 182
yujc99 0:90cc924d4dc0 183 #if 1 // FND 테스트 프로그그램 -> 정상동작 확인
yujc99 0:90cc924d4dc0 184 // DIS_1668(TAB[14],TAB[15],TAB[1],TAB[0]); // DIS_1668();
yujc99 0:90cc924d4dc0 185 // for(a=0, b=1;a<=8;a++, b++){
yujc99 0:90cc924d4dc0 186
yujc99 0:90cc924d4dc0 187 // wait(0.5);
yujc99 0:90cc924d4dc0 188 // DIS_1668(TAB[a],TAB[a],TAB[a],TAB[a]);//DIS_1668(TAB[a],TAB[a],TAB[a],TAB[a]);
yujc99 0:90cc924d4dc0 189 // wait(0.5);
yujc99 0:90cc924d4dc0 190 // DIS_1668(TAB[b],TAB[b],TAB[b],TAB[b]);//DIS_1668(TAB[b],TAB[b],TAB[b],TAB[b]);
yujc99 0:90cc924d4dc0 191 // }
yujc99 0:90cc924d4dc0 192
yujc99 0:90cc924d4dc0 193
yujc99 0:90cc924d4dc0 194 for(a=0;a<=9;a++){ wait(0.5); MODE_Display(TAB[a]); } // FND 1 동작
yujc99 0:90cc924d4dc0 195 for(a=0;a<=9;a++){ wait(0.5); HEATER_Display(TAB[a]); }// FND 2 동작
yujc99 0:90cc924d4dc0 196 for(a=0;a<=9;a++){ wait(0.5); INTENSITY_Display(TAB[a]); }// FND 3 동작
yujc99 0:90cc924d4dc0 197
yujc99 0:90cc924d4dc0 198 //display();// Display_FND();//send_data();
yujc99 0:90cc924d4dc0 199 #endif
yujc99 0:90cc924d4dc0 200
yujc99 0:90cc924d4dc0 201
yujc99 1:b81598bdd689 202 #if 1 // BUZZER //
yujc99 0:90cc924d4dc0 203
yujc99 0:90cc924d4dc0 204
yujc99 0:90cc924d4dc0 205
yujc99 0:90cc924d4dc0 206 #endif
yujc99 0:90cc924d4dc0 207 pc.printf("This program runs since %d seconds.\n", i++);
yujc99 0:90cc924d4dc0 208
yujc99 0:90cc924d4dc0 209 wait(0.5);
yujc99 0:90cc924d4dc0 210 MODE_Display(TAB[0]);HEATER_Display(TAB[0]);INTENSITY_Display(TAB[0]);
yujc99 0:90cc924d4dc0 211
yujc99 0:90cc924d4dc0 212 //myled = !myled;
yujc99 0:90cc924d4dc0 213 }
yujc99 0:90cc924d4dc0 214 }
yujc99 0:90cc924d4dc0 215
yujc99 0:90cc924d4dc0 216
yujc99 0:90cc924d4dc0 217
yujc99 0:90cc924d4dc0 218