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 -