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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

Multisim仿真51單片機正弦波/方波360度移向 數碼管顯示程序

[復制鏈接]
跳轉到指定樓層
樓主
仿真原理圖如下(Multisim仿真工程文件可到本帖附件中下載)

截圖不太清楚,盡力了,,,不得不說,用multisim仿真51單片機效果實在是一言難盡!
出現了一些問題,主要是multisim的鍋,51單片機在計算的時候引腳電平會亂閃,這也就導致了這個時候數碼管會顯示亂碼。
需要等一段時間,仿真運行才能穩定下來,可以通過示波器觀看仿真運行速度以及仿真跑到哪了。
它果然只能仿真點小電路。。


單片機源程序如下:
  1. #include <reg51.h>       //調用51單片機的頭文件

  2. #define uint unsigned int
  3. #define ulint unsigned long int
  4. #define uchar unsigned char
  5.         
  6. #define AMing_T  10                //測量周期數宏定義
  7. #define AMing_F  50                //測量信號頻率宏定義

  8. //數碼管字形表,供顯示時查詢
  9. unsigned char code AMing_LED[10]=
  10.         {                          //定義表格一定要使用code,這樣會做到程序存儲區中
  11.     0x00,                  //"0"的字形表,0B00111111
  12.     0x01,                  //"1"的字形表,0B00000110
  13.     0x02,                  //"2"的字形表,0B01011011
  14.     0x03,                  //"3"的字形表,0B01001111
  15.     0x04,                  //"4"的字形表,0B01100110
  16.     0x05,                  //"5"的字形表,0B01101101
  17.     0x06,                  //"6"的字形表,0B01111101
  18.     0x07,                  //"7"的字形表,0B00000111
  19.     0x08,                  //"8"的字形表,0B01111111
  20.     0x09,                  //"9"的字形表,0B01101111
  21.         };

  22. ulint AMing_n=0;                        //計數
  23. uint AMing_k=0;                         //用于標記n的變化.控制數碼管刷新頻率
  24. char AMing_k_Flag=0;                   //用于標記k的變化

  25. //延時函數
  26. void AMing_Delay(uint z)
  27.         {
  28.          uint x,y;
  29.                          for(x=z;x>0;x--)
  30.                                 for(y=50;y>0;y--);
  31.         }

  32. //定時器0初始化
  33. void AMing_time_init(void)                                                   //定時器初始化函數
  34.         {
  35.         TMOD=0x02;                                                          //選擇方式2
  36.         TH0=56;                                                          //重裝初值為156    200us
  37.         TL0=56;                                                          //運行值為156
  38.         EA=1;                 //使能總中斷                                                         //開總中斷
  39.         PT0 = 0;                                 //設為低優先級
  40.         }
  41. //外部中斷0中斷初始化
  42. void AMing_ConfigExitIint0()
  43.         {
  44.         IT0 = 1;        //選擇為下降沿觸發方式(為1代表下降沿觸發,為0代表低電平觸發)
  45.         EX0 = 1;        //使能外部中斷0        
  46.         PX0 = 1;                //設為高優先級
  47.         }
  48. //外部中斷1中斷初始化
  49. void AMing_ConfigExitIint1()
  50.         {
  51.         IT1 = 1;          //選擇為下降沿觸發方式
  52.         EX1 = 1;                //使能外部中斷1        
  53.         PX1 = 1;                //設為高優先級
  54.         }
  55. //數碼管顯示函數
  56. void AMing_Display(void)
  57.         {           
  58.         uint p2=0;                         //用于記錄P2的變化
  59.         uint p0=0;                         //用于記錄P0的變化
  60.         uint i=0;
  61.         uint j=0;
  62.         i = (ulint)(360*AMing_F*(float)AMing_n/5000/AMing_k);           //360*AMing_F*t   t是單位周期相位超前時間,單位是s
  63.         p2 = AMing_LED[i%10];
  64.         j = AMing_LED[i/100]<<4;
  65.         p0 = j+AMing_LED[i%100/10];
  66.         P2 = 0x00;
  67.         P0 = 0x00;      
  68.         AMing_Delay(50);               
  69.         P2 = p2;
  70.         P0 = p0;
  71.         }

  72. //主函數
  73. void main(void)            //主函數,單片機開機后就是從這個函數開始運行
  74.         {
  75.         P1 = 0xFF;
  76.         P3 = 0xFF;
  77.         P2 = 0x00;
  78.         P0 = 0x00;
  79.         AMing_ConfigExitIint0();
  80.         AMing_ConfigExitIint1();
  81.         AMing_time_init();
  82.         while(1)               //死循環,單片機初始化后,將一直運行這個死循環
  83.                 {
  84.         //                                        AMing_Delay(1);        //等待multisim               
  85.                         if(AMing_k_Flag)
  86.                                 {
  87.                                 AMing_Display();                  //數碼管顯示
  88.                                 AMing_k = AMing_k_Flag = 0;                      //重置標志
  89.                                 AMing_n = 0;                      //清零
  90.                                 EA = 1;                     //開總中斷
  91.                                 }
  92.                 }
  93.         }
  94. //外部中斷0中斷服務函數
  95. //由相移前的波整形后下降沿觸發
  96. void extInt0ISR() interrupt 0
  97.         {
  98.         AMing_k++;
  99.         ET0=1;                                                                  //開定時器0中斷
  100.   TR0=1;                                                                  //開定時器0    //開始計時
  101.         }                     
  102. //外部中斷1中斷服務函數
  103. //由相移后的波整形后下降沿觸發
  104. void extInt1ISR() interrupt 2
  105.         {
  106.         if(AMing_k)
  107.                 {                                      //判斷外部中斷0是否已觸發,以確定基準
  108.                 ET0=0;                                                                  //關定時器0中斷
  109.                 TR0=0;                                                                  //關定時器0
  110.                 if(AMing_k >= AMing_T)
  111.                         {                 //
  112.                         AMing_k_Flag = 1;                 //標志位置1
  113.                         EA = 0;                     //關總中斷
  114.                         }
  115.                 }
  116.         }
  117. //定時器0中斷
  118. void timer() interrupt 1                                          //定時器0中斷
  119.         {
  120.         AMing_n++;            //AMing_n(200us)
  121.         }
復制代碼

Multisim14仿真文件51hei附件下載: 51單片機的Multisim仿真.7z (875.56 KB, 下載次數: 29)

評分

參與人數 1黑幣 +90 收起 理由
admin + 90 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 午夜视频精品 | 天堂男人av | 综合久久av | 日韩av网址在线观看 | 欧美日本久久 | 久久久久99| 欧美日韩久久 | 欧美成年黄网站色视频 | 国产 日韩 欧美 在线 | av一级毛片 | 久久久久久国产精品 | 七七婷婷婷婷精品国产 | 亚洲精品一区中文字幕 | 日本污视频 | 国产99久久精品一区二区永久免费 | 精品三级在线观看 | 在线观看h视频 | 日韩精品成人一区二区三区视频 | 精品美女久久久久久免费 | 九九综合 | 这里只有精品999 | 亚洲三区在线播放 | 在线中文字幕亚洲 | 欧美成人一区二区 | 欧美在线观看一区 | 欧美日韩国产精品一区二区 | 成人免费看电影 | 日韩在线观看一区 | aaa国产大片| 成人午夜视频在线观看 | 女人精96xxx免费网站p | 97色在线视频| 91国自产| 成人在线视频免费看 | 精品国产一区二区国模嫣然 | 国产精品色av | 国产剧情一区 | 一区二区三区欧美在线 | 久久久久久久国产 | 亚洲品质自拍视频 | 成人免费视频 |