單片機(jī)四位抽獎機(jī).doc_第1頁
單片機(jī)四位抽獎機(jī).doc_第2頁
單片機(jī)四位抽獎機(jī).doc_第3頁
單片機(jī)四位抽獎機(jī).doc_第4頁
單片機(jī)四位抽獎機(jī).doc_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

漳州師范學(xué)院漳州師范學(xué)院 電子時鐘及抽獎機(jī) 姓 名 學(xué) 號 系 別 物理與電子信息工程系 專 業(yè) 電子科學(xué)與技術(shù) 年 級 09 級 指導(dǎo)教師 白炳良 2012 年 5 月 目錄目錄 1摘要摘要 4 2關(guān)鍵字關(guān)鍵字 5 3設(shè)計(jì)任務(wù)設(shè)計(jì)任務(wù) 5 3 1兩種抽獎方式 5 3 2擴(kuò)展功能擴(kuò)展功能 5 4設(shè)計(jì)方案設(shè)計(jì)方案 5 4 1設(shè)計(jì)思路設(shè)計(jì)思路 5 4 2方案比較與論證方案比較與論證 5 4 3系統(tǒng)結(jié)構(gòu)框圖系統(tǒng)結(jié)構(gòu)框圖 6 5各功能模塊設(shè)計(jì)6 5 1顯示模塊原理顯示模塊原理 6 5 2參數(shù)計(jì)算參數(shù)計(jì)算 7 5 3獨(dú)立式按鍵模塊獨(dú)立式按鍵模塊 7 5 4總系統(tǒng)原理圖總系統(tǒng)原理圖 8 6軟件設(shè)計(jì) 9 6 1I OI O 口分配口分配 9 6 2隨機(jī)數(shù)算法隨機(jī)數(shù)算法 10 6 3秒產(chǎn)生算法秒產(chǎn)生算法 10 6 4按鍵掃描按鍵掃描 10 6 5顯示掃描顯示掃描 10 7流程圖流程圖 10 10 8程序清單程序清單 14 9調(diào)試要點(diǎn) 29 9 1硬件調(diào)試 29 9 2軟件調(diào)試 29 9 3結(jié)果分析及設(shè)計(jì)工作總結(jié) 29 10參考文獻(xiàn)及附件參考文獻(xiàn)及附件30 10 1參考文獻(xiàn) 30 10 2元器件清單 30 11PCBPCB 版圖版圖 30 31 1摘要摘要 本設(shè)計(jì)由單片機(jī) AT89S52 芯片和 LED 共陽數(shù)碼管為核心 輔以必要的電路 構(gòu)成了一個由單片機(jī)控制的四位顯示設(shè)計(jì) 設(shè)計(jì)制作同步和單步抽獎機(jī) 在模式鍵 啟動鍵 停止鍵的控制 下實(shí)現(xiàn)設(shè)計(jì)集成了時鐘 秒表 四位抽獎三種功能于一體 2關(guān)鍵字關(guān)鍵字 AT89S52 動態(tài)顯示 四位抽獎 按鍵掃描 隨機(jī)數(shù) 秒表 3設(shè)計(jì)任務(wù)設(shè)計(jì)任務(wù) 3 1兩種抽獎方式 3 1 1按抽獎啟動鍵時 四位數(shù)碼管以不同的隨機(jī)數(shù)快速滾動顯示 按抽獎停止鍵時 四位隨機(jī)數(shù)停止?jié)L動顯示在數(shù)碼管上 3 1 2按抽獎啟動鍵時 個位數(shù)碼管以隨機(jī)數(shù)快速滾動顯示 按 抽獎停止鍵時 個位隨機(jī)數(shù)停止?jié)L動顯示在數(shù)碼管上 用同樣 的方法來確定十位 百位 千位的隨機(jī)數(shù) 3 2擴(kuò)展功能擴(kuò)展功能 電子時鐘 電子鐘以 99 時 59 分 59 秒為一個計(jì)數(shù)周期 在顯示分秒 時分模塊化之間切換 4設(shè)計(jì)方案設(shè)計(jì)方案 4 1設(shè)計(jì)思路設(shè)計(jì)思路 本設(shè)計(jì)需要實(shí)現(xiàn)兩種方式的抽獎 即四位同時抽和逐位抽獎 因此重點(diǎn)在于由軟件產(chǎn) 生隨機(jī)數(shù) 而硬件則需由數(shù)碼管來顯示中獎結(jié)果以及按鍵來控制抽獎模式和啟動 停止抽 獎 系統(tǒng)以AT89S52為核心 主要有顯示模塊 按鍵模塊和單片機(jī)軟件控制模塊構(gòu)成 4 2方案比較與論證方案比較與論證 數(shù)碼管顯示模塊 方案一 單片機(jī)輸出數(shù)據(jù)經(jīng)譯碼芯片 CD4511 進(jìn)行譯碼后直接驅(qū)動 數(shù)碼管 數(shù)碼管公共端接 9012 三極管擴(kuò)流 并通過單片機(jī) I O 口控制三 極管的選通 實(shí)現(xiàn)動態(tài)顯示 方案二 有單片機(jī)的 I O 口直接驅(qū)動數(shù)碼管的段碼 數(shù)碼管的公共端 接 9012 三極管 通過灌電流的方式點(diǎn)亮數(shù)碼管 也需通過單片機(jī) I O 口 控制三極管的選通 實(shí)現(xiàn)動態(tài)顯示 由于所需 I O 口由 AT98S52 可直接提供 無須因?yàn)?I O 口不夠而用 CD4511 來節(jié)省 I O 口 方案二又較方案一更容易實(shí)惠 所以 我選擇方案二 4 3 系統(tǒng)結(jié)構(gòu)框圖系統(tǒng)結(jié)構(gòu)框圖 AT89S52 單片機(jī)在模式鍵 啟動鍵和停止鍵的控制下 由 P1 口輸出數(shù)據(jù) 通過 P2 0 P2 1 P2 2 P2 4 進(jìn)行選通 有數(shù)碼管顯示信息 系統(tǒng)框圖 圖 2 3 系統(tǒng)總框圖 5各功能模塊設(shè)計(jì) 5 1顯示模塊顯示模塊原理原理 由單片機(jī) AT89S52 的引腳 P1 口輸出中獎號碼 時間等數(shù)據(jù)信息 通過片 選信號 P2 0 P2 1 P2 2 P2 4 就可在相應(yīng)的數(shù)碼管進(jìn)行顯示 當(dāng)位選信號 P2 0 為低電平時 P1 口送出數(shù)據(jù)也為低電平就點(diǎn)亮數(shù)碼管 電流灌進(jìn)單片機(jī) 多位 LED 顯示 為了簡化電路 降低成本 將所有位的段選線并聯(lián)在一起 由 一個 8 位 I O 口控制 而共陽極公共端分別接一個 9012 由相應(yīng)的 I O 口線控 制 9012 實(shí)現(xiàn)各位數(shù)碼管的分時選通 段選碼 位選碼每送入一次后延時 10MS 因人的視覺暫留時間為 0 1S 100MS 所以每位顯示的時間不能超過 20MS 并保持延時一段時間 以造成視覺暫留效果 給人看上去每個數(shù)碼管總 在亮 這種方式稱為軟件掃描方式 電路如 圖 3 1 所示 由于采用的是共陽極數(shù)碼管 所以要讓段碼點(diǎn)亮需把 I O 口置 0 例如 段碼 a 到 g 對應(yīng)的 I O 口是 P1 0 到 P1 6 則要讓數(shù)碼管顯示 0 到 6 對應(yīng)的 16 進(jìn)值如圖所示 a 7 b 6 c 4 d 2 e 1 f 9 g 10 dt 5 com 3 com 8 SEG 3 LE D8 a 7 b 6 c 4 d 2 e 1 f 9 g 10 dt 5 com 3 com 8 SEG 1 LE D8 a 7 b 6 c 4 d 2 e 1 f 9 g 10 dt 5 com 3 com 8 SEG 2 LE D8 T1 901 2 T2 901 2 T3 901 2 T4 901 2 a 7 b 6 c 4 d 2 e 1 f 9 g 10 dt 5 com 3 com 8 SEG 4 LE D8 R1 RE S2 R2 RE S2 R3 RE S2 R4 RE S2 5V 5V 5V 5V h g f e d c b a d g f e d c a b h g f e d c a b h g f e d c a b a b c d e f g h P2 0P2 1P2 4P2 7 R14 RE S R13 RE S R12 RE S R11 RE S R10 RE S R9 RE S R8 RE S R7 RE S 圖 3 1 顯示電路 圖 3 2 碼表 5 2參數(shù)計(jì)算參數(shù)計(jì)算 由于I O 口高電平約等于 5V 使用灌電流的方式驅(qū)動數(shù)碼管 故選用 PNP 型 三極管 9012 數(shù)碼管能正常工作的段電流為 3mA 10 mA 壓降為 1 7V 三極 管發(fā)射極和集電極的壓降為 0 3V 因此限流電阻的壓降為 3 0V 所以選用限流電阻的阻值 R 470 歐 500 10 5 mA V R 5 3獨(dú)立式按鍵模塊獨(dú)立式按鍵模塊 獨(dú)立式按鍵是直接用 I O 口線構(gòu)成的單個按鍵電路 其特點(diǎn)是每個按鍵單獨(dú)占用一根 I O 口線 每個按鍵的工作不會影響其它 I O 口線的狀態(tài) 獨(dú)立式按鍵的典型應(yīng)用如 圖 3 3 所示 獨(dú)立式按鍵電路配置靈活 軟件結(jié)構(gòu)簡單 但每個按鍵必須占用一根 I O 口線 因此 P1 6P1 5P1 4P1 3P1 2P1 1P1 016 進(jìn) 制 010000000C0H 111110010F9H 201001000A4H 301100000B0H 4001100199H 5001001092H 6000001082H 在按鍵較多時 I O 口線浪費(fèi)較大 但本設(shè)計(jì)只用到三個按鍵 顧采用獨(dú)立式按鍵電路 S2 S3 S4 P3 4 P3 0 P3 7 圖 3 3 獨(dú)立式按鍵電路 5 4總系統(tǒng)原理圖總系統(tǒng)原理圖 單片機(jī) AT89S52 9 腳為復(fù)位輸入端 上電復(fù)位 只要 RST 引腳上有大于二 個機(jī)器周期以上的高電平 單片機(jī) AT89C2051 即復(fù)位 按鍵從單片機(jī) AT89S52 的 P2 0 P2 1 P2 2 P2 4 口接入 當(dāng)按鍵被按 下時 相應(yīng)的輸入口就會輸入低電平 0 單片機(jī) AT89S52 的 XTAL1 腳 XTAL2 腳接一個由 12M 晶振和 10pf 組成的振 蕩電路 為單片機(jī)提供相應(yīng)的時序 10p F C10 10p F C11 XT 1 12M HZ a 7 b 6 c 4 d 2 e 1 f 9 g 10 dt 5 com 3 com 8 SEG 3 LE D8 a 7 b 6 c 4 d 2 e 1 f 9 g 10 dt 5 com 3 com 8 SEG 1 LE D8 a 7 b 6 c 4 d 2 e 1 f 9 g 10 dt 5 com 3 com 8 SEG 2 LE D8 S2 S1 RE SET S3 S4 T1 901 2 T2 901 2 T3 901 2 T4 901 2 a 7 b 6 c 4 d 2 e 1 f 9 g 10 dt 5 com 3 com 8 SEG 4 LE D8 R1 RE S2 R23 4K 7 R2 RE S2 R3 RE S2 R4 RE S2 R22 5V 5V 5V 5V C12 104 5V h g f e d c b a P3 4 P3 0 P3 7 d g f e d c a b h g f e d c a b h g f e d c a b a b c d e f g h P2 0P2 1P2 4P2 7 a b c d c g P07 C2 104 D2 D4 D3 D1 13 2 IC1 780 5 C1 470 uF C4 220 uF C3 104 ISP1 P1 5 RST P1 6 P1 7 5V 5V 5v EA VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 T 1 P11 T 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE P 30 TXD 11 RXD 10 U1 89s 52 f RST RST P1 5 P1 6 P1 7 P2 0 P2 1 P2 4 P2 7 R14 RE S R13 RE S R12 RE S R11 RE S R10 RE S R9 RE S R8 RE S R7 RE S Port Port 220 5 6軟件設(shè)計(jì) 主程序主要起到一個導(dǎo)向和決策功能 控制程序的走向 本系統(tǒng)在主程 序中運(yùn)用模塊化結(jié)構(gòu) 所有控制量集中處理 提高了處理效率 并在 RAM 建立 各控制量的映射 方便各功能模塊的編程及修改 運(yùn)用散轉(zhuǎn)結(jié)構(gòu) 可實(shí)現(xiàn)無擾 動重入 本設(shè)計(jì)主要有以下幾個模塊 時鐘模塊 四位抽獎模塊 逐位抽獎模 塊 操作說明 上電復(fù)位后進(jìn)入數(shù)碼初顯示模塊 按 SW0 啟動 四位數(shù)碼管產(chǎn)生四 位隨機(jī)數(shù) 按 SW0 四位隨機(jī)數(shù)停止 操作可重復(fù) 按 SW1 一次進(jìn)入抽獎 2 模 塊 按 SW0 啟動 四位數(shù)碼管最低位產(chǎn)生隨機(jī)數(shù) 按 SW1 最低位停止高位啟 動 按 4 次 SW1 后四位數(shù)碼管均產(chǎn)生隨機(jī)數(shù) 按 SW0 鍵停止抽獎 操作可重 復(fù) 按 SW1 一次進(jìn)入時間模塊 可循環(huán) 按 RET 鍵單片機(jī)復(fù)位 6 1I OI O 口分配口分配 1 P2 0 P2 1 P2 2 P2 4 作為個位 十位 百位 千位數(shù)碼管片選 2 P3 0 P3 4 P3 7 作為按鍵接口 3 P1 0 到 P1 6 作為段碼 a 到 g 的輸出口 6 2隨機(jī)數(shù)算法隨機(jī)數(shù)算法 在隨機(jī)數(shù)模式下 調(diào)用庫函數(shù) stdlib h 用 dis buf i dis dm rand 10 返回隨機(jī)數(shù)值 6 3秒產(chǎn)生算法秒產(chǎn)生算法 將定時器 0 定時 5mS 每計(jì)數(shù) 200 次為 1S 6 4按鍵掃描按鍵掃描 直接判斷按鍵的按下與放開 不采用標(biāo)志位判斷 6 5顯示掃描顯示掃描 顯示掃描采用高 低兩位分開顯示 這樣 在進(jìn)行時鐘顯示及秒表顯示時易于處 7流程圖流程圖 5ms 到 重新對計(jì)數(shù)器賦值 調(diào)用按鍵掃描程序 調(diào)用顯示子程序 調(diào)用閃爍子程序 500ms 到 F300cnt 0 取反閃爍標(biāo)志位 根據(jù) msta 的值進(jìn)行散轉(zhuǎn) 數(shù)碼顯示初值 四位數(shù)同時抽獎 四位數(shù)逐位抽獎 時鐘顯示分秒 時鐘顯示時分 Msta 1 Msta 2 Msta 3 Msta 0 Y YN Msta 0初始化 N 可編輯 word 文檔 數(shù)碼顯示初值數(shù)碼顯示初值 Esw9 Esw0 Esw9 Msta 1 Msta 2 Msta 3 返回 Msta 1 四位同時抽獎 Esw0 cj cj Cj 1 據(jù) rand 產(chǎn)生隨機(jī) 數(shù) Esw1 ESW2 四位數(shù)碼管閃爍 返回 Msta 2 Y Y Y Y N N N N Y Y Y N N N Msta 0 可編輯 word 文檔 Msta 2 逐位產(chǎn)生隨機(jī)數(shù) Esw2 1 Msta 3 據(jù) pointer 轉(zhuǎn)模塊 Pointer 0 Esw0 Jc cjCj 1 產(chǎn)生個位隨機(jī)數(shù)Esw1 Pointer 1 Y Y Y 返回 N N N 返回 N Y Pointer 1 Esw0 Jc cjCj 1 產(chǎn)生個位隨機(jī)數(shù) Esw1 Pointer 2 Y Y Y N N N 返回 Pointer 2 Esw0 Jc cjCj 1 產(chǎn)生個位隨機(jī)數(shù) Esw1 Pointer 3 Y Y Y N N 返回 N 可編輯 word 文檔 N 返回 Pointer 3 Esw0 Jc cj Cj 1 產(chǎn)生個位隨機(jī)數(shù) Esw1 Pointer 3 Y Y Y N N 返回 1s 到 F200cnt 200 F200cnt Msta 3 a 秒個位 a 送顯 a 9 10s 到 a 0 b N Y N 秒十位 b 送顯 b 5 1 分到 b 0 c N Y 分個位 d 送顯 c 9 10 分到 N Y c 0 d 分十位 d 送顯 d 5 1 時到 N Y d 0 e 時個位 e 送顯 e 9 10 時到 N Y e 0 g 時十位 g 送顯 g 9 99 時到 N Y g 0 Y esw1 Msta 0 按下 esw0 轉(zhuǎn)到 msta 4 顯示小時 分鐘 可編輯 word 文檔 8程序清單程序清單 名稱 四位抽獎機(jī) 編寫 張小葉 日期 2012 5 4 平臺 AT89S52 include include include define uint unsigned int 宏定義 define uchar unsigned char 宏定義 define nop nop 端口定義 define disport P0 數(shù)據(jù)端口 sbit cs0 P2 0 sbit cs1 P2 1 sbit cs2 P2 4 sbit cs3 P2 2 sbit sw0 P3 0 獨(dú)立按鍵端口 可編輯 word 文檔 sbit sw1 P3 4 sbit sw2 P3 7 定義變量 uchar data key 定義鍵值寄存器 uchar bdata ekey 定義鍵沿寄存器 uchar bdata lastkey sbit esw0 ekey 0 sbit esw1 ekey 4 sbit esw2 ekey 7 bit flaflag 定義閃爍標(biāo)志 bit f300flag bit cj 1 uchar f300cnt f200cnt 200 f100cnt 閃爍標(biāo) 志 uchar msta ck 0 uchar flasta 5 uchar a b c d e g h uchar code dis dm 0 xC0 0 xF9 0 xA4 0 xB0 0 x99 0 x92 0 x82 0 xF8 0 x80 0 x90 0 xff 0 xfc 0 x00 0 xf0 0 x0f 顯示段碼值 可編輯 word 文檔 uchar dis buf 0 xC0 0 xC0 0 xC0 0 xC0 0 xff 顯示緩沖 uchar dis pointer pointer 定義顯示指針 函數(shù)聲明 void Disply 顯示函數(shù) void Flaply 閃爍函數(shù) void KeyScan 讀鍵函數(shù) void Init timer0 定時器初始化 void choujiang 2 抽獎方式 2 void dianzishizhong 電子時鐘 void dianzishizhongxiaoshi 主函數(shù) void main uint i TMOD 0 x11 定時器 0 工作方式 1 SCON 0 x00 TH0 0 xec 可編輯 word 文檔 TL0 0 x78 TR0 1 while 1 while TF0 5ms TF0 0 TH0 0 xec 定時器初值重設(shè) TL0 0 x78 KeyScan 調(diào)用鍵掃描函數(shù) 顯示函數(shù) Disply Flaply if f300cnt 100 f300cnt 0 f300flag f300flag if f100cnt 600 f100cnt 0 ck 1 switch msta case 0 可編輯 word 文檔 dis buf 0 0 x90 數(shù)碼顯示初值 dis buf 1 0 xC0 dis buf 2 0 xA4 dis buf 3 0 xA4 if esw0 msta 1 if esw1 msta 2 if esw2 msta 3 break case 1 if esw0 cj cj if cj for i 0 i9 a 0 b if b 5 b 0 c if c 9 c 0 d 可編輯 word 文檔 if d 5 d 0 e if e 9 e 0 g if g 9 g 0 dis buf 0 dis dm c dis buf 1 dis dm d dis buf 2 dis dm e dis buf 3 dis dm g f200cnt 200 break default msta 0 可編輯 word 文檔 抽獎方式 2 逐位抽獎 void choujiang 2 switch pointer case 0 if esw0 cj cj if cj dis buf 0 dis dm rand 10 if esw1 pointer 1 break case 1 if esw0 cj cj if cj dis buf 1 dis dm rand 10 if esw1 pointer 2 可編輯 word 文檔 break case 2 if esw0 cj cj if cj dis buf 2 dis dm rand 10 if esw1 pointer 3 break case 3 if esw0 cj cj if cj dis buf 3 dis dm rand 10 if esw1 pointer 0 break default break 可編輯 word 文檔 電子時鐘 分秒 void dianzishizhong a if a 9 a 0 b if b 5 b 0 c if c 9 c 0 d if d 5 d 0 e dis buf 0 dis dm a dis buf 1 dis dm b dis buf 2 dis dm c dis buf 3 dis dm d 定時器 0 初始化函數(shù) void Init Timer0 void 可編輯 word 文檔 TMOD 0 x11 定時器 0 工作在方式 1 TH0 0 xec TL0 0 x78 定時器 5ms 初值 TR0 1 開定時器 0 鍵掃描函數(shù) void KeyScan uchar kbuf keycnt P2 0XFF P3 P3 0X91 讀獨(dú)立按建 kbuf P3 kbuf kbuf lastkey kbuf if lastkey key 鍵有變化 key 為電平 lastkey 為前沿 if keycnt 0 鍵有變 計(jì)數(shù)到 lastkey key 放棄不穩(wěn)定的鍵 可編輯 word 文檔 else keycnt 0X05 重賦去抖值 ekey key lastkey 鍵前沿提取 key lastkey 顯示函數(shù) void Disply disport 0 xff P2 0 xff switch dis pointer 根據(jù)顯示指針 轉(zhuǎn) 相應(yīng)顯示位 case 0 cs0 0 點(diǎn)亮第零位數(shù)碼管 disport dis buf 0 dis pointer 1 if flaflag Flaply break 點(diǎn)亮第一位數(shù)碼管 可編輯 word 文檔 case 1 cs1 0 disport dis buf 1 dis pointer 2 if flaflag Flaply break 點(diǎn)亮第二位數(shù)碼管 case 2 cs2 0 disport dis buf 2 dis pointer 3 if flaflag Flaply break case 3 cs3 0 點(diǎn)亮第三位數(shù)碼 管 disport dis buf 3 dis pointer 0 if flaflag Flaply break default break 可編輯 word 文檔 閃爍函數(shù) void Flaply switch flasta 據(jù)閃爍狀態(tài)轉(zhuǎn)相應(yīng)位 case 0 if f300flag 300ms 到 關(guān)顯示 cs0 1 break case 1 if f300flag cs1 1 break case 2 if f300flag cs2 1 break case 3 if f300flag cs3 1 break case 4 i

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論