久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 17044|回復: 0
打印 上一主題 下一主題
收起左側

基于單片機的簡易八位計算器設計 課程設計報告

[復制鏈接]
跳轉到指定樓層
樓主
基于單片機的簡易計算器設計

一、設計任務和性能指標

1.1設計任務
利用單片機及外圍接口電路(鍵盤接口和顯示接口電路)設計制作一個計算器,用四位一體數碼管顯示計算數值及結果。要求用Protel 畫出系統的電路原理圖(要求以最少組件,實現系統設計所要求的功能),繪出程序流程圖,并給出程序清單(要 求思路清晰,盡量簡潔,主程序和子程序分開,使程序有較強的可讀性)。
1.2性能指標
1加法:能夠計算四位以內的數的加法。
2減法:能計算四位數以內的減法。
3乘法:能夠計算兩位數以內的乘法。
4除法:能夠計算四位數的乘法
5有清零功能,能隨時對運算結果和數字輸入進行清零。


二、系統設計方案
按照系統設計的功能的要求,初步確定設計系統由單片機主控模塊、四位一體數碼管顯示模塊、鍵掃描接口電路共三個主要模塊組成。主控芯片使用51系列AT89C51單片機,采用高性能的靜態80C51設計,它由先進工藝制造,并帶有非易失性Flash程序存儲器。它是一種高性能、低功耗的8COMS微處理芯片,市場應用最多。
鍵盤電路采用4*4矩陣鍵盤電路。
顯示模塊采用四位一體共陽極數碼管和SN74LS244鎖存芯片構成等器件構成。


三、硬件系統設計
1.單片機最小系統
單片機最小系統就是支持主芯片正常工作的最小電路部分,包括主控芯片、復位電路和晶振電路。
主控芯片選取STC89C51RC芯片,因其具有良好的性能及穩定性,價格便宜應用方便。
晶振選取11.0592MHz,晶振旁電容選取30pF
采用按鍵復位電路,電阻分別選取100Ω和10K,電容選取10μF
單片機最小系統硬件電路圖如圖(1)所示。


圖(1) 單片機最小系統
2.鍵盤接口電路
計算器所需按鍵有:
    數字鍵:’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’0’
    功能鍵:’+’, ’-‘, ’*’, ’/ ’ , ’ = ’, ’ C( 清零)’
共計16個按鍵,采用4*4矩陣鍵盤,鍵盤的行和列之間都有公共端相連,四行采用端口P0.0~P0.3,四列采用端口P3.0~P3.3,通過8個端口的的高低電平完成對矩陣鍵盤的控制。通過對16個按鍵進行編碼,從而得到鍵盤的口地址,對比P1口德掃描結果和各按鍵的地址,我們就可以得到是哪個鍵按下,從而完成鍵盤的功能。
3.數碼管顯示電路
采用4位一體的數碼管對計算數據和結果進行顯示,這里選取共陽數碼管,利用NPN三極管對數碼管進行驅動,為了節省I/O資源,采取動態顯示的方法來顯示計算數據及結果。
    利用SN74LS244N鎖存器來實現數碼管的動態顯示,P1口輸出顯示值,P2.0~P2.3為位選端口。通過鎖存器對段選信號的鎖存,最終得到對數碼管輸入數據的控制。
    以下為數碼顯示電路的硬件電路圖,左圖為數碼管驅動電路,右圖為段選信號鎖存電路。

四.軟件設計部分
根據選題要求,系統編程如下所示:
  1. #include "reg51.h"
  2. sbit P3_0=P3^0;
  3. sbit P3_1=P3^1;
  4. sbit P3_2=P3^2;
  5. sbit P3_3=P3^3;
  6. sbit P3_4=P3^4;
  7. sbit P3_5=P3^5;
  8. sbit P3_6=P3^6;
  9. sbit P3_7=P3^7;
  10. unsigned char sz[11],xs1[4],xs2[4],sj;
  11. int i,cs,bb,t1,t2,fh,s1,s2;
  12. void chushihua()
  13. {
  14.         bb=1;
  15.         xs1[0]=10;xs1[1]=10;xs1[2]=10;xs1[3]=10;
  16.         xs2[0]=10;xs2[1]=10;xs2[2]=10;xs2[3]=10;
  17.         t1=0;t2=0;s1=s2=0;
  18.         fh=0;
  19.         cs=1;
  20.         
  21. }
  22. void xianshi(unsigned char xs[4])
  23. {
  24.         int i,j;
  25.         unsigned char zy;
  26.         zy=0x08;
  27.         for (i=0;i<4;i++)
  28.         {
  29.                 P2=(0xff-zy);  
  30.                 P1=sz[xs[i]];        
  31.                 zy=(zy>>1);
  32.                 for (j=0;j<100;j++)        ;
  33.                
  34.         }
  35. //        for (i=0;i<100;i++);
  36.         return;

  37. }
  38. unsigned char saomiao()
  39. {
  40.         int i,j;
  41.         unsigned char pp;
  42.         for (i=0;i<1000;i++);
  43.         P0=0xfe;
  44.         P3=0x0f;
  45.         pp=P3;
  46.         if (P3_0==0)         {P3=0x0f;pp=P3;while (P3_0==0);for (i=0;i<1000;i++);return 7;}
  47.         if (P3_1==0)         {P3=0x0f;pp=P3;while (P3_1==0);for (i=0;i<1000;i++);return 8;}
  48.         if (P3_2==0)         {P3=0x0f;pp=P3;while (P3_2==0);for (i=0;i<1000;i++);return 9;}
  49.         if (P3_3==0)         {P3=0x0f;pp=P3;while (P3_3==0);for (i=0;i<1000;i++);return 11;}
  50.         //==========1
  51.         P0=0xfd;
  52.         P3=0x0f;
  53.         pp=P3;
  54.         if (P3_0==0)         {P3=0x0f;pp=P3;while (P3_0==0);for (i=0;i<1000;i++);return 4;}
  55.         if (P3_1==0)         {P3=0x0f;pp=P3;while (P3_1==0);for (i=0;i<1000;i++);return 5;}
  56.         if (P3_2==0)         {P3=0x0f;pp=P3;while (P3_2==0);for (i=0;i<1000;i++);return 6;}
  57.         if (P3_3==0)         {P3=0x0f;pp=P3;while (P3_3==0);for (i=0;i<1000;i++);return 12;}
  58.         //==========2
  59.         P0=0xfb;
  60.         P3=0x0f;
  61.         pp=P3;
  62.         if (P3_0==0)         {P3=0x0f;pp=P3;while (P3_0==0);for (i=0;i<1000;i++);return 1;}
  63.         if (P3_1==0)         {P3=0x0f;pp=P3;while (P3_1==0);for (i=0;i<1000;i++);return 2;}
  64.         if (P3_2==0)         {P3=0x0f;pp=P3;while (P3_2==0);for (i=0;i<1000;i++);return 3;}
  65.         if (P3_3==0)         {P3=0x0f;pp=P3;while (P3_3==0);for (i=0;i<1000;i++);return 13;}
  66.         //==========3
  67.         P0=0xf7;
  68.         P3=0x0f;
  69.         pp=P3;
  70.         if (P3_0==0)         {P3=0x0f;pp=P3;while (P3_0==0);for (i=0;i<1000;i++);return 16;}
  71.         if (P3_1==0)         {P3=0x0f;pp=P3;while (P3_1==0);for (i=0;i<1000;i++);return 0;}
  72.         if (P3_2==0)         {P3=0x0f;pp=P3;while (P3_2==0);for (i=0;i<1000;i++);return 15;}
  73.         if (P3_3==0)         {P3=0x0f;pp=P3;while (P3_3==0);for (i=0;i<1000;i++);return 14;}
  74.         //===========4
  75.         return 10;
  76. }
  77. void chuli(unsigned char x)
  78. {
  79.         int i;
  80.         if (x==16)
  81.         {
  82.                 cs=0;
  83.                 return ;
  84.         }
  85.         if (x>=0 && x<10)
  86.         {
  87.                 if (bb==1)
  88.                 {
  89.                         if (s1= =4) {cs=0;return ;}
  90.                         else
  91.                         {
  92.                                 for (i=3;i>0;i--)
  93.                                 xs1[i]=xs1[i-1];
  94.                                 xs1[0]=x;
  95.                                 s1++;
  96.                                 t1=t1*10+x;
  97.                         }
  98.                 }
  99.                 if (bb==2)
  100.                 {
  101.                         if (s2==4) {cs=0;return ;}
  102.                         else
  103.                         {
  104.                                 for (i=3;i>0;i--)
  105.                                 xs2[i]=xs2[i-1];
  106.                                 xs2[0]=x;
  107.                                 s2++;
  108.                                 t2=t2*10+x;
  109.                         }
  110.                 }        
  111.         }
  112.         if (x>10)
  113.         {
  114.                 if (bb==1) {fh=x;bb=2;return;}
  115.                 if (bb==2)
  116.                 {
  117.                         if (fh==11) t1=t1/t2;
  118.                         if (fh==12) t1=t1*t2;
  119.                         if (fh==13) t1=t1-t2;
  120.                         if (fh==14) t1=t1+t2;
  121.                         if (t1>=10000) {cs=0;return;}
  122.                         else
  123.                         {
  124.                                 if (t1>=0 && t1<10)         {xs1[0]=t1;xs1[1]=10;xs1[2]=10;xs1[3]=10;}
  125.                                 if (t1>=10 && t1<100)         {xs1[0]=t1%10;xs1[1]=t1/10;xs1[2]=10;xs1[3]=10;}
  126.                                 if (t1>=100 && t1<1000)         {xs1[0]=t1%10;xs1[1]=(t1-(t1/100)*100)/10;xs1[2]=t1/100;xs1[3]=10;}
  127.                                 if (t1>=1000 && t1<10000)         {xs1[0]=t1%10;xs1[1]=t1%100/10;xs1[2]=(t1-(t1/1000)*1000)/100;xs1[3]=t1/1000;}
  128.                                 bb=2;
  129.                                 s2=0;
  130.                                 t2=0;
  131.                                 xs2[0]=10;xs2[1]=10;xs2[2]=10;xs2[3]=10;
  132.                                 fh=x;
  133.                         }
  134.                 }
  135.         }

  136. }
  137. void main()
  138. {
  139.          sz[0]=0xfc;
  140.         sz[1]=0x60;
  141.         sz[2]=0xda;
  142.         sz[3]=0xf2;
  143.         sz[4]=0x66;
  144.         sz[5]=0xb6;
  145.         sz[6]=0xbe;
  146.         sz[7]=0xe0;
  147.         sz[8]=0xfe;
  148.         sz[9]=0xf6;
  149.         sz[10]=0x00;
  150.         cs=0;
  151.         
  152.         for (;;)
  153.         {
  154.                 if (cs==0) chushihua();
  155.                 if (cs==1) sj=saomiao();
  156.                 if (cs==1 && sj!=10) chuli(sj);
  157.                 if (cs==1 &&(bb==1 || bb==2 && s2==0)) xianshi(xs1);
  158.                 if (cs==1 &&(bb==2 && s2!=0)) xianshi(xs2);
  159.                
  160.         }
  161. }
  162. 軟件設計好后,在KEIL上面進行仿真,把仿真得到的文件下載到Proteus里面進行仿真,得到Proteus仿真電路圖如下所示:           

  163.            圖(2)  計算器Proteus仿真電路圖

  164. 五.硬件電路焊接及調試
  165.     根據電路圖紙,焊接好硬件電路,把程序下載到單片機芯片,接通好電源,進行調試。在焊接好器件后,先不要將芯片插在芯片座上,要先驗證先板上電源是否好用,有無短路等。接上USB電源,用萬用表測量個芯片座對應電源和地之間的電壓值,觀察電壓值是否正常。一切正常后方可將芯片插入芯片座,以繼續測試其他功能。
  166.     將芯片插上后,對各個模塊進行調試,按鍵是否工作正常,數碼管是否顯示正常等。編寫相關部分的測試程序對其進行測試。
  167.     各部分硬件檢測無誤后,下載程序進行整體調試,一切正常后,結束調試過程。
  168.     用所設計的單片機進行數字計算,顯示結果與任務要求一致,焊接電路符合要求。
  169. 六.課程設計心得
  170. 兩周的時間,終于把單片機課程設計搞完了。整個體會還是比較多的。首先是題目的選擇,各方面的原因,自己還是想選個簡單點的題目,不過最后選來選去,還是選擇了計算器。由于自己對單片機編程還不是很熟悉,結果在設計的時候遇到了一系列問題,程序總是調試部處理,不過還好,最后在同學的幫助下終于把程序調試出來了,雖然程序設計實現的功能與老師要求的不盡相同,不過勉強還算可以。從這里我知道了基本知識的重要性。其實進行程序設計的時候主要是對各功能模塊的把握。計算器里面最難的一部分是矩陣鍵盤的掃描和編碼,那個費了很大力氣。
  171. 另外一點就是硬件焊接調試部分。焊接的時候到時輕松,一個下午就焊接好了,然后是調試部分。調試花費的時間還是比較長的。不過有了上個學期數字電路焊接調試的經驗,這次單片機調試還算是比較順利。我也是從電路板的正負電源檢測起,一步一步來,最終得到了想要的結果。調試的時候主要遇到了兩個問題。一個是鍵盤總是沒有反應,為了這個自己調試了很久,前前后后把電路板檢查了幾次,最后才發現是鍵盤本身的問題,和同學們換了個好鍵盤才行。另一個問題是總是顯示不出來1、4、7這三個數字。檢測來檢測去,發現來是在測試最小系統時在一個位選端接了高電平,對位選信號產生了影響。當把那個高電平去掉后,終于得到了正確的結果。
  172. 總的來說這次課程設計達到了完成了基本任務,達到了基本要求。通過親身對程序設計和電路焊接調試的體會,自己對單片機有了進一步的了解,單片機編程能力也得到了提高。電路板的焊接與調試,使自己電路調試的方法和思想進一步加強了。這次單片機課程設計應該說是比較成功的。

  173. 參考文獻:
  174.    【1】徐維祥、劉旭敏:,《單片微型機原理及應用》,大連理工大學出版社,1996年。
  175. 【2】李光飛、樓然苗、胡佳文、謝象佐.,《單片機課程設計與實例指導.》, 北京航空航天大學出版社,2004年。
  176. 【3】余永權,《89系列FLASH單片機原理及應用.》,電子工業出版社,2002。
  177. 【4】楊恢先、黃輝先,《單片機原理及應用》,人民郵電出版社,2006年。
  178. 【5】常敏、王涵、范江波,《單片機應用程序開發與實踐》,電子工業出版社,2009年。






  179. #include   //頭文件
  180. #define uint unsigned int //
  181. #define uchar unsigned char

  182. sbit lcden=P2^3; //定義引腳
  183. sbit rs=P2^4;
  184. sbit rw=P2^0;
  185. sbit busy=P0^7;

  186. char i,j,temp,num,num_1;
  187. long a,b,c;     //a,第一個數 b,第二個數 c,得數
  188. float a_c,b_c;
  189. uchar flag,fuhao;//flag表示是否有符號鍵按下,fuhao表征按下的是哪個符號

  190. uchar code table[]={
  191. 7,8,9,0,
  192. 4,5,6,0,
  193. 1,2,3,0,
  194. 0,0,0,0};
  195. uchar code table1[]={
  196. 7,8,9,0x2f-0x30,
  197. 4,5,6,0x2a-0x30,
  198. 1,2,3,0x2d-0x30,
  199. 0x01-0x30,0,0x3d-0x30,0x2b-0x30};

  200. void delay(uchar z) // 延遲函數
  201. {
  202. uchar y;
  203. for(z;z>0;z--)
  204.    for(y=0;y<110;y++);
  205. }

  206. void check() // 判斷忙或空閑
  207. {
  208. do{
  209.     P0=0xFF;
  210.     rs=0;     //指令
  211.     rw=1;     //讀
  212.     lcden=0;     //禁止讀寫
  213.     delay(1); //等待,液晶顯示器處理數據
  214.     lcden=1;     //允許讀寫
  215.     }while(busy==1); //判斷是否為空閑,1為忙,0為空閑
  216. }
  217. void write_com(uchar com) // 寫指令函數
  218. {
  219. P0=com;    //com指令付給P0口
  220. rs=0;
  221. rw=0;
  222. lcden=0;
  223. check();
  224. lcden=1;
  225. }

  226. void write_date(uchar date) // 寫數據函數
  227. {
  228.     P0=date;
  229. rs=1;
  230. rw=0;
  231. lcden=0;
  232. check();
  233. lcden=1;
  234. }

  235. void init() //初始化
  236. {
  237.     num=-1;
  238. lcden=1; //使能信號為高電平
  239. write_com(0x38); //8位,2行
  240. write_com(0x0c); //顯示開,光標關,不閃爍*/
  241. write_com(0x06); //增量方式不移位 顯竟獗暌貧 柚?
  242. write_com(0x80); //檢測忙信號
  243. write_com(0x01); //顯示開,光標關,不閃爍
  244. num_1=0;
  245. i=0;
  246. j=0;
  247. a=0;     //第一個參與運算的數
  248. b=0;     //第二個參與運算的數
  249. c=0;
  250. flag=0; //flag表示是否有符號鍵按下,
  251. fuhao=0; // fuhao表征按下的是哪個符號
  252. }
  253. void keyscan() // 鍵盤掃描程序
  254. {

  255. P3=0xfe;
  256. if(P3!=0xfe)
  257. {
  258.    delay(20); 延遲20ms
  259.    if(P3!=0xfe)
  260.    {
  261.     temp=P3&0xf0;
  262.     switch(temp)
  263.     {
  264.      case 0xe0:num=0;
  265.        break;
  266.      case 0xd0:num=1;
  267.        break;
  268.      case 0xb0:num=2;
  269.        break;
  270.      case 0x70:num=3;
  271.        break;
  272.     }
  273.    }
  274.    while(P3!=0xfe);
  275.    if(num==0||num==1||num==2)//如果按下的是'7','8'或'9
  276.    {
  277.        if(j!=0)
  278.         {
  279.           write_com(0x01);
  280.           j=0;
  281.          }
  282.        if(flag==0)//沒有按過符號鍵
  283.     {
  284.      a=a*10+table[num];
  285.     }
  286.     else//如果按過符號鍵
  287.     {
  288.      b=b*10+table[num];
  289.     }
  290.    }
  291.    else//如果按下的是'/'
  292.    {
  293.     flag=1;
  294.     fuhao=4;//4表示除號已按
  295.    }
  296.    i=table1[num];
  297.    write_date(0x30+i);
  298. }

  299. P3=0xfd;
  300. if(P3!=0xfd)
  301. {
  302.    delay(5);
  303.    if(P3!=0xfd)
  304.    {
  305.     temp=P3&0xf0;
  306.     switch(temp)
  307.     {
  308.      case 0xe0:num=4;
  309.          break;
  310.       
  311.      case 0xd0:num=5;
  312.          break;
  313.       
  314.      case 0xb0:num=6;
  315.          break;
  316.       
  317.      case 0x70:num=7;
  318.          break;
  319.     }
  320.    }
  321.    while(P3!=0xfd);
  322.    if(num==4||num==5||num==6&&num!=7)//如果按下的是'4','5'或'6'
  323.    {
  324.     if(j!=0)
  325.         {
  326.           write_com(0x01);
  327.           j=0;
  328.          }
  329.        if(flag==0)//沒有按過符號鍵
  330.     {
  331.      a=a*10+table[num];
  332.     }
  333.     else//如果按過符號鍵
  334.     {
  335.      b=b*10+table[num];
  336.     }
  337.    }
  338.    else//如果按下的是'/'
  339.    {
  340.     flag=1;
  341.     fuhao=3;//3表示乘號已按
  342.    }
  343.    i=table1[num];
  344.    write_date(0x30+i);
  345. }

  346. P3=0xfb;
  347. if(P3!=0xfb)
  348. {
  349.    delay(5);
  350.    if(P3!=0xfb)
  351.    {
  352.     temp=P3&0xf0;
  353.     switch(temp)
  354.     {
  355.      case 0xe0:num=8;
  356.          break;
  357.       
  358.      case 0xd0:num=9;
  359.          break;
  360.       
  361.      case 0xb0:num=10;
  362.          break;
  363.       
  364.      case 0x70:num=11;
  365.          break;
  366.     }
  367.    }
  368.    while(P3!=0xfb);
  369.    if(num==8||num==9||num==10)//如果按下的是'1','2'或'3'
  370.    {
  371.     if(j!=0)
  372.         {
  373.           write_com(0x01);
  374.           j=0;
  375.          }
  376.       if(flag==0)//沒有按過符號鍵
  377.     {
  378.      a=a*10+table[num];
  379.     }
  380.     else//如果按過符號鍵
  381.     {
  382.      b=b*10+table[num];
  383.     }
  384.    }
  385.    else if(num==11)//如果按下的是'-'
  386.    {
  387.     flag=1;
  388.     fuhao=2;//2表示減號已按
  389.    }
  390.    i=table1[num];
  391.    write_date(0x30+i);
  392. }

  393. P3=0xf7;
  394. if(P3!=0xf7)
  395. {
  396.    delay(5);
  397.    if(P3!=0xf7)
  398.    {
  399.     temp=P3&0xf0;
  400.     switch(temp)
  401.     {
  402.      case 0xe0:num=12;
  403.          break;
  404.       
  405.      case 0xd0:num=13;
  406.          break;
  407.       
  408.      case 0xb0:num=14;
  409.          break;
  410.       
  411.      case 0x70:num=15;
  412.          break;
  413.     }
  414.    }
  415.    while(P3!=0xf7);
  416.    switch(num)
  417.    {
  418.     case 12:{write_com(0x01);a=0;b=0;flag=0;fuhao=0;}//按下的是"清零"
  419.      break;
  420.     case 13:{                //按下的是"0"
  421.        if(flag==0)//沒有按過符號鍵
  422.        {
  423.         a=a*10;
  424.         write_date(0x30);
  425.         P1=0;
  426.        }
  427.        else if(flag==1)//如果按過符號鍵
  428.        {
  429.         b=b*10;
  430.         write_date(0x30);
  431.         }
  432.       }
  433.      break;
  434.     case 14:{j=1;
  435.            if(fuhao==1){write_com(0x80+0x4f);//按下等于鍵,光標前進至第二行最后一個顯示處
  436.            write_com(0x04);     //設置從后住前寫數據,每寫完一個數據,光標后退一格
  437.            c=a+b;
  438.            while(c!=0)
  439.            {
  440.              write_date(0x30+c%10);
  441.              c=c/10;
  442.            }
  443.            write_date(0x3d);     //再寫"="
  444.            a=0;b=0;flag=0;fuhao=0;
  445.            }
  446.       else if(fuhao==2){write_com(0x80+0x4f);//光標前進至第二行最后一個顯示處
  447.             write_com(0x04);     //設置從后住前寫數據,每寫完一個數據,光標后退一格(這個照理說順序不對,可顯示和上段一樣)
  448.            if(a-b>0)
  449.              c=a-b;
  450.            else
  451.              c=b-a;
  452.            while(c!=0)
  453.            {
  454.              write_date(0x30+c%10);
  455.              c=c/10;
  456.            }
  457.            if(a-b<0)
  458.              write_date(0x2d);
  459.            write_date(0x3d);     //再寫"="           
  460.            a=0;b=0;flag=0;fuhao=0;
  461.           }
  462.       else if(fuhao==3){write_com(0x80+0x4f);
  463.             write_com(0x04);
  464.              c=a*b;
  465.              while(c!=0)
  466.              {
  467.              write_date(0x30+c%10);
  468.              c=c/10;
  469.              }
  470.              write_date(0x3d);     
  471.           a=0;b=0;flag=0;fuhao=0;
  472.              }
  473.       else if(fuhao==4){write_com(0x80+0x4f);
  474.             write_com(0x04);
  475.             i=0;
  476.             c=(long)(((float)a/b)*1000);
  477.             while(c!=0)
  478.              {
  479.                write_date(0x30+c%10);
  480.                c=c/10;
  481.            i++;
  482.            if(i==3)
  483.                write_date(0x2e);
  484.              }
  485.             if(a/b<=0)
  486.               write_date(0x30);
  487.             write_date(0x3d);                              
  488.             a=0;b=0;flag=0;fuhao=0;
  489.                     }
  490.       }
  491.      break;
  492.      case 15:{write_date(0x30+table1[num]);flag=1;fuhao=1;}
  493.      break;
  494.    }
  495. }
  496. }

  497. main()
  498. {
  499. init();

  500. ………余下代碼請下載附件………

復制代碼

完整的課程設計報告(論文)下載:
單片機計算器課程設計報告.doc (154 KB, 下載次數: 82)

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂1 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品美女www爽爽爽视频 | 性高朝久久久久久久3小时 av一区二区三区四区 | 成人欧美一区二区三区黑人孕妇 | 国产成人精品免费视频大全最热 | 中文字幕 国产精品 | 国产亚洲欧美日韩精品一区二区三区 | 欧美日一区二区 | 天天色天天射天天干 | 欧美综合一区二区 | 性视频一区 | 久久婷婷国产麻豆91 | 国产精品99视频 | 午夜男人的天堂 | www.激情.com | 日韩一区二区三区四区五区六区 | 久久久久久久网 | 色在线视频网站 | 99精品视频在线 | 亚州国产 | 美女爽到呻吟久久久久 | 在线免费观看a级片 | a免费视频 | 欧美精产国品一二三区 | 久久久五月天 | 欧美精品第一区 | 亚洲天天干| 99在线视频观看 | 欧美精品在线免费 | 欧美精品在线播放 | 亚洲男女激情 | 看a网站 | 新疆少妇videos高潮 | 国产精品成人在线观看 | 天天爱av | 国产精品99久久久久久宅男 | 成人av在线播放 | 久久久久成人精品 | 成人在线视频免费看 | 91视在线国内在线播放酒店 | 精品久久影院 | 欧美一区二区三区国产精品 |