分为两部分:AD转换器实现数字电压表,DA转换器实现波形发生器(在仿真部分详细说明)
#include
#include
#define uint unsigned int
#define uchar unsigned char
sbit D1=P1^0; //灯组
sbit key1=P3^4; //独立键盘P3^4//控制PWM波的频率
sbit key2=P3^5; //独立键盘P3^5//控制PWM波的频率
sbit CS_DA=P2^0; //DA转换器片选端,低电平有效
sbit WR_DA=P2^1; //DA转换器输入寄存器写信号,低电平有效
sbit LCD_RS=P2^5; //LCD1206数据(高)指令(低)选择端
sbit LCD_RW=P2^6; //LCD1206读(高)写(低)信号端
sbit LCD_E=P2^7; //LCD1206使能端(下降沿执行命令)
sbit START=P2^2; //AD转换器start/ale控制端(下降沿开始工作)
sbit EOC=P2^3; //AD转换器EOC端(开始工作时为低,结束时为高)
sbit OE=P2^4; //AD转换器OE端(为高时单片机读取数据)
uchar code sin[]={//正弦表
0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,
0xa2,0xa5,0xa8,0xab,0xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,
0xc2,0xc5,0xc7,0xcc,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,
0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,
0xf2,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,
0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,
0xf6,0xf5,0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,
0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8,0xd6,0xd4,0xd1,0xcf,
0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,
0xae,