文書の表示以前のリビジョンバックリンクPDF の出力全て展開する/折り畳むODT 出力文書の先頭へ この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。 ====== LCDモニター ====== ===== 概要 ===== RS232C(±12V)経由でデータを受信しLCDに表示します。 TTLレベルでも可能ですので、PICと直接接続することが出来ます。 以下の制御コードを受け付けます。 * %:ブザーを100msec間だけ鳴らせる。 * &:画面をオールクリアする。 * <:1行目にカーソルを移動させる。 * >:2行目にカーソルを移動させる。 {{:imgpaste:202004:htmikan-20200429-154433.png?500}} {{:imgpaste:202004:htmikan-20200429-154444.png?500}} {{:imgpaste:202004:htmikan-20200429-154454.png?500}} ===== 回路図 ===== {{:imgpaste:202004:htmikan-20200429-154509.png}} ===== ソースコード ===== <code c LcdMonitor2.c> //********************************************************************** /* ; 2006.12.31 JF3SFB ; ; 【液晶表示器(LCD モジュールSC1602BS*B)を利用した簡易モニタ】 ; ; RS232C(9600bps)からデータを受信し表示する。 ; パソコンとの接続やPIC同士の直結(TTLレベル)が可能です。 ; ; ■制御コード ; %:ブザーを100msec間だけ鳴らせる。 ; &:画面をオールクリアする。 ; <:1行目にカーソルを移動させる。 ; >:2行目にカーソルを移動させる。 ; ; ■履歴 ; R1.00 2006.09.22 ASM ; R2.00 2006.12.31 MikroC ; */ //********************************************************************** void interrupt() { if (INTCON.T0IF == 1) { INTCON.T0IF = 0; } if (PIR1.TMR1IF == 1) { PORTB.F3 = ~PORTB.F3; PIR1.TMR1IF = 0; } } //********************************************************************** void Pwm_Change_DutyEx(unsigned int duty_ratio) { CCPR1L = duty_ratio >> 2; CCP1CON.F6 = duty_ratio & 0b00000001; CCP1CON.F7 = (duty_ratio & 0b00000010) >> 1; } //********************************************************************** void Usart_Write_String(char *buf) { static int len, i; len = strlen(buf); for (i = 0; i < len; i++) { Usart_Write(buf[i]); } } //********************************************************************** void main() { static unsigned int cnt; static unsigned short rd; // OSCCON = 0b01110000; // クロックは8Mhz CMCON = 0b00000111; // コンパレータは使用しない。 ANSEL = 0b00000000; // A/D変換は使用しない。 TRISA = 0b01111100; TRISB = 0b00000100; OPTION_REG = 0b10000111; PIE1.TMR1IE = 1; PIR1.TMR1IF = 0; T1CON = 0b00110001; INTCON = 0b01100000; // Pwm_Init(3000); // 3Khz Pwm_Change_DutyEx(1024 / 2); // Lcd_Custom_Config(&PORTB, 4, 6, 7, 1, &PORTA, 1, 0, 7); TRISA = 0b01111100; Lcd_Custom_Cmd(LCD_CURSOR_OFF); for (cnt = 0; cnt < 5; cnt++) { Lcd_Custom_Out(1, 1, "LcdMonit"); Lcd_Custom_Out(2, 1, "or R2.0"); Pwm_Start(); Delay_ms(300); Pwm_Stop(); Lcd_Custom_Cmd(LCD_CLEAR); Delay_ms(300); } // Usart_Init(9600); // INTCON.GIE = 1; // これ以降の処理で割り込みを許可する。 // Pwm_Start(); Delay_ms(300); Pwm_Stop(); // while (1) { if (Usart_Data_Ready() == 0) continue; rd = Usart_Read(); switch(rd) { case '%': Pwm_Start(); Delay_ms(300); Pwm_Stop(); break; case '&': Lcd_Custom_Cmd(LCD_CLEAR); break; case '<': Lcd_Custom_Cmd(LCD_FIRST_ROW); break; case '>': Lcd_Custom_Cmd(LCD_SECOND_ROW); break; case '?': Lcd_Custom_Out(1, 1, "LcdMonit"); Lcd_Custom_Out(2, 1, "or R2.0"); break; default: Lcd_Custom_Chr_Cp(rd); break; } } } //********************************************************************** </code> ===== 動作確認 ===== PCのハイパータミナルよりデータを入力し動作確認をしました。 {{:imgpaste:202004:htmikan-20200429-154615.png?500}} <callout type="warning" title="著作権表示 copyright notice"> このページは稲崎様の閉鎖したHPのコピーで、著作権は稲崎様にあります。[[elechobby:picdic:picdic|詳細]] This page is a copy of Mr. Inasaki's closed website, and the copyright is held by him.[[elechobby:picdic:picdic|Details]] </callout> elechobby/picdic/pic16f88/44.txt 最終更新: 2025/10/17 14:29by 127.0.0.1