📄 zh1.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 + -