打車課程設計報告
1. 課程設計怎麼寫
課程設計報告主要包括以下幾個方面.
1.封面(根據自己的個性設計)2.目錄3.主界面專(介紹這次設計的課屬題、人員、目標、任務、人員分工)4.主要過程(要告訴別人你的這個作品該怎麼用)5.程序流程圖(用圖來表示主要過程)6.核心源程序(你覺得這個作品它具備的主要功能是什麼,就將實現這個功能的代碼給COPY下來)7.主要函數(你程序代碼里用的函數中你覺得重要的或是難的)8.心得9.附錄(你完成這次課程設計參考的書,這個可以多寫一點,以示用心認真)
我第一次做課程設計時寫報告就是這么寫的.你參考參考.希望能對你有些幫助
2. 課程設計報告怎麼寫
歡迎看一下我的計算器, 有程序界面, 你可以參考一下,添加運算功能。 http://hi..com/jack%5Fican/blog/item/f3ab762acc95133a5243c1a2.html 說明:1.共有4個文本框其,其中三個是填入或輸出數據的(名稱分別是:txta txtb txtc),剩下的那個是符號(txtd)2.共7個按鈕,4個是符號按鈕,一個計算,一個清零.這是我弄的程序」袖珍計算器」代碼也是自己編寫的,代碼如下:通用聲明Dim j As Integer '定義j為整型 Private Sub Text1_Change()End SubPrivate Sub Command1_Click() txtfuhao.Text = "+" '將」+」顯示到文本框txtfuhao.Text中 End SubPrivate Sub Command2_Click() txtfuhao.Text = "-" ''將」-」顯示到文本框txtfuhao.Text中 End SubPrivate Sub Command3_Click() txtfuhao.Text = "×" '將」×」顯示到文本框txtfuhao.Text中 End SubPrivate Sub Command4_Click() txtfuhao.Text = "÷" 將」÷」'顯示到文本框txtfuhao.Text中 End Sub Private Sub Command5_Click() Dim a, b, c As Integer a = Val(txta.Text) '將txta.Text里的內容轉化為數值型,然後再賦給a b = Val(txtb.Text) '將txtb.Text里的內容轉化為數值型,然後再賦給b If txtfuhao.Text = "+" Then '運算過程 c = a + b '運算過程 ElseIf txtfuhao.Text = "-" Then '運算過程 c = a - b '運算過程 ElseIf txtfuhao.Text = "÷" Then '運算過程 c = a / b '運算過程 ElseIf txtfuhao.Text = "×" Then '運算過程 c = a * b '運算過程 Else j = MsgBox("您輸入的符號不正確", vbOKOnly, "錯誤信息") End If txtc.Text = c '將運算結果c輸出到文本框txtc中 End SubPrivate Sub Command6_Click() txta.Text = "" '將空字元輸入到文本框內(刷新) txtb.Text = "" '將空字元輸入到文本框內(刷新) txtc.Text = "" '將空字元輸入到文本框內(刷新) txtfuhao.Text = "" '將空字元輸入到文本框內(刷新) End SubPrivate Sub Command7_Click() End '結束程序 End SubPrivate Sub Form_Load()End Sub
3. plc課程設計報告 小車運行的控制 求解題
正起動I0.0,
正停止I0.1
正轉線圈O0.0
反轉起動I0.2
反轉停止I0.3,
反轉線圈Q0,.1
原點限位開關I1.1
終點限位開關I1.0
4. 課程設計報告要寫哪幾步,各有什麼要求
對於正文部分內容要求必須具備如下內容:
1) 目的
此次課程設計的目的。
2) 需求分析
以無二義性的陳述說明程序設計的任務,程序要做什麼?明確規定:
①輸入的形式和輸入值的范圍;
②輸出的形式;
③程序所能達到的功能;
3) 概要設計
說明本程序中用到的所有數據類型的定義及含義、各程序模塊的功能要求以及各模塊之間的層次(調用)關系。
4) 詳細設計
實現概要設計中定義的所有數據類型,對每個操作需寫出偽碼演算法;對主程序和其他模塊也都要寫出偽碼演算法;
最終實現的源程序要按照良好風格的程序書寫規則來編寫,要求結構清晰,重點函數、重點變數以及重點功能部分要加上清晰的程序注釋。
5) 調試分析
每個模塊設計和調試時存在問題的思考(問題是哪些?問題如何解決?)。
進行時間和空間復雜度分析,演算法的改進設想。
6) 測試結果
列出完備的測試計劃及其結果,包括輸入和輸出,這里的測試數據應該完整和嚴格。
7) 用戶使用說明
說明如何使用最終發布的程序,詳細列出每一步的操作步驟。
8) 課設總結
課程設計過程的收獲、遇到問題、遇到問題解決問題過程的思考、程序調試能力的思考、經驗和體會以及對設計與實現的回顧討論和分析;在課程設計過程中對課程的認識等內容。
5. 課程設計計程車計價器,用VERILOG語言編寫
我去年做過這個,和你的要求差不多,暫停鍵相當於你的停止計費鍵,停止鍵詳單與你的歸零鍵,換擋鍵你就不用管它(按一檔的速度運行),晶振的能改成50M就行了,能調的通。
1.設計要求
設計一個計程車計費器,能按路程計費,具體要求如下
(1)實現計費功能,計費標准為:按行駛里程計費,起步價為6.00元,並在車行駛3km後按1.2元/km計費,當計費器達到或超過20元時,每公里加收50%的車費,車停止和暫停時不計費。
(2)現場模擬汽車的啟動、停止、暫停、和換檔等狀態。
(3)設計數碼管動態掃描電路,將車費和路程顯示出來,各有兩位小數。
2.設計原理
設該計程車有啟動鍵、停止鍵、暫停鍵、和擋位鍵。啟動鍵為脈沖觸發信號,當其為一個脈沖時,表示汽車以啟動,並根據車速的選擇和基本車速發出響應頻率的脈沖(計費脈沖)來實現車費和路程的計數,同時車費顯示起步價;當停止鍵為高電平時,表示汽車熄火,同時停止發出脈沖,此時車費和路程計數清零;當暫停鍵為高電平時,表示汽車暫停並停止發出脈沖,此時車費和路程計數暫停;擋位鍵用來改變車速,不同的擋位對應著不同的車速,同時路程計數的速度也不同。
計程車計費器可分為兩大模塊:控制模塊和解碼顯示模塊,系統框圖如圖9-9-1所示。控制模塊實現了計費和路程的計數,並且通過不同的擋位來控制車速 。解碼顯示模塊實現十進制到4為十進制的轉換以及車費和路程的顯示 。
mole taxi(scan,seg7,dp,clk20mhz,clk,start,stop,pause,speep);
output[7:0] scan; //數碼管地址選擇信號
output[6:0] seg7; //7段顯示控制信號(abcdefg)
output dp; //小數點
input clk20mhz; //系統時鍾為20MHz
input clk; //計費時鍾
input start; //汽車起動
input stop; //汽車停止
input pause; //汽車暫停
input[1:0] speep; //擋位(4個擋位)
reg[7:0] scan;
reg[6:0] seg7;
reg dp;
reg[15:0] money_reg; //車費寄存器
reg[15:0] distance_reg; //路程寄存器
reg[3:0] num; //控制車速的計數器
reg[15:0] dis; //千米計數器
reg d; //千米標志位
reg clk1khz; //1kHz的分頻時鍾,用於掃描數碼管地址
reg[3:0] data;
reg[3:0] m_one,m_ten,m_hun,m_tho; //錢數的4位十進製表示
reg[3:0] d_one,d_ten,d_hun,d_tho; //路程的4位十進製表示
reg[15:0] count;
reg[15:0] comb1;
reg[3:0] comb1_a,comb1_b,comb1_c,comb1_d;
reg[15:0] comb2;
reg[3:0] comb2_a,comb2_b,comb2_c,comb2_d;
reg[2:0] cnt;
always @(posedge clk)
begin
if(stop) //汽車停止,計費和路程清零
begin money_reg<='d0;
distance_reg<='d0;
dis<='d0;
num<='d0;
end
else if(start) //汽車起動後,起步價為6元
begin money_reg<='d600;
distance_reg<='d0;
dis<='d0;
num<='d0;
end
else
begin
if(!start&&!speep&&!pause&&!stop) //1擋
begin
if(num=='d9)
begin num<='d0;
distance_reg<=distance_reg+1;
dis<=dis+1;
end
else
begin num<=num+1; end
end
else if(!start&&speep=='b01&&!pause&&!stop) //2擋
begin
if(num=='d9)
begin num<='d0;
distance_reg<=distance_reg+2;
dis<=dis+2;
end
else
begin num<=num+1; end
end
else if(!start&&speep=='b10&&!pause&&!stop) //3擋
begin
if(num=='d9)
begin num<='d0;
distance_reg<=distance_reg+5;
dis<=dis+5;
end
else
begin num<=num+1; end
end
else if(!start&&speep=='b11&&!pause&&!stop) //4擋
begin
distance_reg<=distance_reg+1;
dis<=dis+1;
end
end
if(dis>='d100)
begin d<='d1;dis<='d0; end
else
begin d<='d0; end
if(distance_reg>='d300) //如果超過3km則按1.2元/km計算
begin
if(money_reg<'d2000&&d=='d1)
begin money_reg<=money_reg+'d120; end
else if(money_reg>='d2000&&d=='d1)
begin money_reg<=money_reg+'d180; end
end
//-------------------當計費器達到20元時,每千米加收50%的車費-------------
end
//---------------------------1kHz的分頻時鍾,用於掃描數碼管地址----------------------
always @(posedge clk20mhz)
begin
if(count=='d10000)
begin clk1khz<=~clk1khz;count<='d0; end
else
begin count<=count+1; end
//----------------------------將車費的十進制數轉化為4位十進制數-----------------------
if(comb1<money_reg)
begin
if(comb1_a=='d9&&comb1_b=='d9&&comb1_c=='d9)
begin
comb1_a<='b0000;
comb1_b<='b0000;
comb1_c<='b0000;
comb1_d<=comb1_d+1;
comb1<=comb1+1;
end
else if(comb1_a=='d9&&comb1_b=='d9)
begin
comb1_a<='b0000;
comb1_b<='b0000;
comb1_c<=comb1_c+1;
comb1<=comb1+1;
end
else if(comb1_a=='d9)
begin
comb1_a<='b0000;
comb1_b<=comb1_b+1;
comb1<=comb1+1;
end
else
begin
comb1_a<=comb1_a+1;
comb1<=comb1+1;
end
end
else if(comb1==money_reg)
begin
m_one<=comb1_a;
m_ten<=comb1_b;
m_hun<=comb1_c;
m_tho<=comb1_d;
end
else if(comb1>money_reg)
begin
comb1_a<='b0000;
comb1_b<='b0000;
comb1_c<='b0000;
comb1_d<='b0000;
comb1<='d0;
end
//---------------------------將路程的十進制轉化為4位十進制數-----------------------
if(comb2<distance_reg)
begin
if(comb2_a=='d9&&comb2_b=='d9&&comb2_c=='d9)
begin
comb2_a<='b0000;
comb2_b<='b0000;
comb2_c<='b0000;
comb2_d<=comb2_d+1;
comb2<=comb2+1;
end
else if(comb2_a=='d9&&comb2_b=='d9)
begin
comb2_a<='b0000;
comb2_b<='b0000;
comb2_c<=comb2_c+1;
comb2<=comb2+1;
end
else if(comb2_a=='d9)
begin
comb2_a<='b0000;
comb2_b<=comb2_b+1;
comb2<=comb2+1;
end
else
begin
comb2_a<=comb2_a+1;
comb2<=comb2+1;
end
end
else if(comb2==distance_reg)
begin
d_one<=comb2_a;
d_ten<=comb2_b;
d_hun<=comb2_c;
d_tho<=comb2_d;
end
else if(comb2>distance_reg)
begin
comb2_a<='b0000;
comb2_b<='b0000;
comb2_c<='b0000;
comb2_d<='b0000;
comb2<='d0;
end
end
//-----------------------------數碼管動態掃描----------------------------------
always @(posedge clk1khz)
begin
cnt<=cnt+1;
end
always @(cnt)
begin
case(cnt)
'b000:begin data<=m_one;dp<='d0;scan<='b00000001; end
'b001:begin data<=m_ten;dp<='d0;scan<='b00000010; end
'b010:begin data<=m_hun;dp<='d1;scan<='b00000100; end
'b011:begin data<=m_tho;dp<='d0;scan<='b00001000; end
'b100:begin data<=d_one;dp<='d0;scan<='b00010000; end
'b101:begin data<=d_ten;dp<='d0;scan<='b00100000; end
'b110:begin data<=d_hun;dp<='d1;scan<='b01000000; end
'b111:begin data<=d_tho;dp<='d0;scan<='b10000000; end
default:begin data<='bx;dp<='bx;scan<='bx; end
endcase
end
//---------------------------------7段解碼----------------------------------
always @(data)
begin
case(data[3:0])
4'b0000:seg7[6:0]=7'b1111110;
4'b0001:seg7[6:0]=7'b0110000;
4'b0010:seg7[6:0]=7'b1101101;
4'b0011:seg7[6:0]=7'b1111001;
4'b0100:seg7[6:0]=7'b0110011;
4'b0101:seg7[6:0]=7'b1011011;
4'b0110:seg7[6:0]=7'b1011111;
4'b0111:seg7[6:0]=7'b1110000;
4'b1000:seg7[6:0]=7'b1111111;
4'b1001:seg7[6:0]=7'b1111011;
default:seg7[6:0]=7'b0000000;
endcase
end
endmole
具體的反考周潤景老師的那本書。