Page 690 - 3-2
P. 690

else
                            begin
                                    clk_count<=clk_count+1;
                                    clk_uart<=0;
                            end
                    end
            end


            always @ (posedge clk,negedge reset)
            begin
                    if(!reset)
                    begin
                            tx_reg <=0; // 송신 데이터 보관 변수
                            tx_empty<=1; // 송신 완료 (1   을 넣어줌으로써 송신이 멈춰있음)
                            tx_out<=1;  // 스타트 ,  스탑 비트 역할을 하는 변수
                            tx_cnt<=0; // 전송 데이터 비트수 세는 변수
                    end
                    else
                    begin
                            if(clk_uart)
                            begin
                                    tx_reg<=var2;
                                    tx_empty<=0;
                                    if(!tx_empty) //  송신이 시작되었을 때
                                    begin
                                            tx_cnt<=tx_cnt+1; // 전송 데이터 비트수를 카운트해줌
                                            if(tx_cnt==0) tx_out<=0; // 전송 데이터 비트수가 0       일 때 start
                                            if(tx_cnt>0 && tx_cnt <9) tx_out<=tx_reg[tx_cnt-1]; //  전송 데이
            터 비트수가 1     부터 8  까지일 때 송신 데이터 보관 변수에 현재 전송 데이터 비트수 -1                         을 넣어준다
                                            if(tx_cnt==9) // 전송 데이터 비트수가 9       일때
                                            begin
                                                    tx_out<=1; //stop
                                                    tx_cnt<=0; // 전송 데이터 비트수 세는 변수를 0            으로 만든다
                                                    tx_empty<=1; // 송신 완료 을 넣어줌으로써 송신을 멈춘다(1
                                            end
                                    end
                            end
                    end
            end


            endmodule


            -------------------------------------------------------------
            C.  풍선으로 눌려진 limit sw       수를 세는 소스
            module balloon_num (clk,reset,lim,var2);


                                                         - 690 -
   685   686   687   688   689   690   691   692   693   694   695