//****************************************************************************************** // PIC12F1822 Sample Program // Project : // Program Name : // Programer : // Create date : Version 1.0 H25.10.06 // Replace date : // History : // Laungage : HI_TECH PICC C Laungage Version 9.83 //****************************************************************************************** // Description // OSC : Internal OSC 16MHz //****************************************************************************************** #include __CONFIG( FOSC_INTOSC & WDTE_OFF & PWRTE_OFF & MCLRE_OFF & CP_OFF & CPD_OFF & BOREN_OFF & CLKOUTEN_OFF & IESO_OFF & FCMEN_OFF ); __CONFIG( WRT_OFF & PLLEN_OFF & STVREN_OFF & BORV_HI & LVP_OFF ) ; void timer(unsigned int); void M0puls(void); void M1puls(void); void M_hyp(unsigned int); void M_dot(unsigned int); void M_spe(unsigned int); void M_end(unsigned int); void M_out(unsigned char); void M_outs(unsigned char *); void Mintim(void); void Strcpy(unsigned char *,unsigned char *); int main(void) { // ******************************** // 1.Initialized Segment // ******************************** // (1)Define OSC (Internal OSC 16MHz) OSCCON = 0b11111010; // (2)Define ANSELA (All Degital Port) ANSELA = 0x00; // (3)Define I/O PORT PORTA = 0x00; TRISA = 0b11000000; // ******************************** // 2.Program main // ******************************** while(1){ M_outs("ABCDEFGHIJKLMNOPQRSTUVWXYZ "); M_outs("1234567890 "); M_outs("START PIC16F88 OK "); } } //**************************************************************************** // Function Name : M_outs // Title : // Input : // Output : // Description : //**************************************************************************** void M_outs(unsigned char in_char[] ) { unsigned int lp=0; while(in_char[lp]!=0x00){ M_out(in_char[lp]); lp++; } } //**************************************************************************** // Function Name : M_out // Title : // Input : // Output : // Description : //**************************************************************************** void M_out(unsigned char in_char ) { unsigned char m_data[15]; unsigned int lp; unsigned int Speed=40; // ******************** // 1.Set data // ******************** if(in_char==' ') Strcpy(m_data,(unsigned char *)" "); if(in_char=='A') Strcpy(m_data,(unsigned char *)"0-"); if(in_char=='B') Strcpy(m_data,(unsigned char *)"-000"); if(in_char=='C') Strcpy(m_data,(unsigned char *)"-0-0"); if(in_char=='D') Strcpy(m_data,(unsigned char *)"-00"); if(in_char=='E') Strcpy(m_data,(unsigned char *)"0"); if(in_char=='F') Strcpy(m_data,(unsigned char *)"00-0"); if(in_char=='G') Strcpy(m_data,(unsigned char *)"--0"); if(in_char=='H') Strcpy(m_data,(unsigned char *)"0000"); if(in_char=='I') Strcpy(m_data,(unsigned char *)"00"); if(in_char=='J') Strcpy(m_data,(unsigned char *)"0---"); if(in_char=='K') Strcpy(m_data,(unsigned char *)"-0-"); if(in_char=='L') Strcpy(m_data,(unsigned char *)"0-00"); if(in_char=='M') Strcpy(m_data,(unsigned char *)"--"); if(in_char=='N') Strcpy(m_data,(unsigned char *)"-0"); if(in_char=='O') Strcpy(m_data,(unsigned char *)"---"); if(in_char=='P') Strcpy(m_data,(unsigned char *)"0--0"); if(in_char=='Q') Strcpy(m_data,(unsigned char *)"--0-"); if(in_char=='R') Strcpy(m_data,(unsigned char *)"0-0"); if(in_char=='S') Strcpy(m_data,(unsigned char *)"000"); if(in_char=='T') Strcpy(m_data,(unsigned char *)"-"); if(in_char=='U') Strcpy(m_data,(unsigned char *)"00-"); if(in_char=='V') Strcpy(m_data,(unsigned char *)"000-"); if(in_char=='W') Strcpy(m_data,(unsigned char *)"0--"); if(in_char=='X') Strcpy(m_data,(unsigned char *)"-00-"); if(in_char=='Y') Strcpy(m_data,(unsigned char *)"-0--"); if(in_char=='Z') Strcpy(m_data,(unsigned char *)"--00"); if(in_char=='0') Strcpy(m_data,(unsigned char *)"-----"); if(in_char=='1') Strcpy(m_data,(unsigned char *)"0----"); if(in_char=='2') Strcpy(m_data,(unsigned char *)"00---"); if(in_char=='3') Strcpy(m_data,(unsigned char *)"000--"); if(in_char=='4') Strcpy(m_data,(unsigned char *)"0000-"); if(in_char=='5') Strcpy(m_data,(unsigned char *)"00000"); if(in_char=='6') Strcpy(m_data,(unsigned char *)"-0000"); if(in_char=='7') Strcpy(m_data,(unsigned char *)"--000"); if(in_char=='8') Strcpy(m_data,(unsigned char *)"---00"); if(in_char=='9') Strcpy(m_data,(unsigned char *)"----0"); // ******************** // 2.Output // ******************** for(lp=0;lp<15;lp++){ switch(m_data[lp]){ case '0': M_dot(Speed); M_spe(Speed); break; case '-': M_hyp(Speed); M_spe(Speed); break; case ' ': M_end(Speed); break; default: M_end(Speed); return; } } } //**************************************************************************** // Function Name : M_hyp // Title : // Input : // Output : // Description : //**************************************************************************** void M_hyp(unsigned int len ) { unsigned int lp; len=len*3; for(lp=0;lp