⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zh1.c

📁 上课老师给的8086仿真器
💻 C
字号:
/*0832各种波型输出演示,同时使用0809采样W1电压来调整波频率,用74LS164来显示W1电压值(延时值).
接线方法为0832实验+0809实验(去掉273部分)+串并转换实验
P1.1 = 0时 P1.0 = 0 正弦波  = 1 锯齿波 
P1.1 = 1时 P1.0 = 0 方波    = 1 三角波 */

#include <reg51.h>
#include <ABSACC.H>
#define daport XBYTE[0x8000]
#define adport XBYTE[0x9000]
unsigned char i,j,k,m;
bit updown;  //三角波的上升/下降
unsigned char code sinn[64]={198,204,210,216,222,228,233,237,242,245,249,251,253,255,255,255,
               255,254,252,250,247,243,239,235,230,224,219,213,207,201,194,188,
               181,175,169,163,158,152,147,143,139,136,133,131,129,128,128,128,
               129,130,132,135,138,142,146,151,156,162,168,174,180,186,193,199};
unsigned char code zxb[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee,0x3e,0x9c,0x7a,0x9e,0x8e};

void main(void)
{
     updown=0;
     SCON=0;
     for (i=0;i<20;i++);
     i=128; j=0;
     adport=0;
     while(1)
     {
       if (P1_1==1)
       {
          if (P1_0==0) //方波
          {
             if (j<=30) i=255;
             else i=128;
             if (j==60) j=0;
          }
          else  //三角波
          {
             if (updown==0) //上升
             {
               if (i==255) {updown=1;}
               else i++;
             }
             else //下降
             {
               if (i==128) {updown=0;}
               else i--;
             }
          }
       }
       else
       {
          if (P1_0==0) //正弦波
          {
             i=sinn[j];
             if (j==63) j=0;
          }
          else //锯齿波
          {
             if (i==255) i=128;
             else i++;
          }
       }
       daport=i;
       m=adport;
       adport=0;
       for (k=0;k<(1+m/16);k++);
       SBUF=zxb[m/16];
       j++;
     }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -