【Proteus仿真】波形信号发生器(4种波形可选,频率可调)
【Proteus仿真】波形信号发生器(4种波形可选,频率可调)
📝主程序代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
| #include "reg51.h" #include <data.h> #include <LCD1602.h> #define uchar unsigned char #define uint unsigned int #define key P1 #define dataout P3 uchar fre[5] ="001Hz"; uint data THHL=65536-3906; uchar data keyword,n=0; uchar data Signal_chose = 0; uchar data div = 1; void keyscan() { keyword=key&0x3f; if(keyword!=0x3f) { while((key&0x3f)!=0x3f); //等待按键松开 switch(keyword) { case 62: { if(div>=100) THHL=65536-39; else {div++;THHL=65536-3906/div;}//频率up fre[0]=div/100 + '0';fre[1]=div/10%10 + '0';fre[2]=div%10 + '0'; TR1=0;LCD\_send(2,11,fre,5);TR1=1; break; } case 61: { if(div<=1) THHL=65536-3906; else {div--;THHL=65536-3906/div;}//频率down fre[0]=div/100 + '0';fre[1]=div/10%10 + '0';fre[2]=div%10 + '0'; TR1=0;LCD\_send(2,11,fre,5);TR1=1; break; }
case 59: {Signal_chose=0;TR1=0;LCD\_send(1,5,"Sin ",10);TR1=1; break;} //正弦波 case 55: {Signal_chose=1;TR1=0;LCD\_send(1,5,"Triangular",10);TR1=1; break;} //三角波 case 47: {Signal_chose=2;TR1=0;LCD\_send(1,5,"Square ",10);TR1=1; break;} //方波 case 31: {Signal_chose=3;TR1=0;LCD\_send(1,5,"Sawtooth ",10);TR1=1; break;} //锯齿波 default:{break;} } } } void init() //初始化 { key=0x3f;P2=0x00;dataout=0x00;THHL=65536-3906; ///初始频率为1Hz TH1=THHL/256;TL1=THHL%256; TMOD=0x11;ET1=1;TR1=1;EA=1; } void main() { LCD\_init(); LCD\_send(1,0,"Type:Sin",8); LCD\_send(2,0,"frequency:",10); LCD\_send(2,11,fre,5); init(); while(1) { keyscan(); switch(Signal_chose) { case 0: {dataout=sin_tab[n]; break;} //正弦波 case 1: {dataout=thr_tab[n]; break;} //三角波 case 2: {dataout=squ_tab[n]; break;} //方波 case 3: {dataout=255-n;break;} //锯齿波 default:{break;} } } } void time\_intt1(void) interrupt 3 { TL1=THHL%256;TH1=THHL/256; // if(n>=255) {n=0;} else {n++;} n++; }
|
📚程序源码和仿真资源
1 2 3
| 链接:https://pan.baidu.com/s/1zgFzzDAer8ItDjCP5LxZSw 提取码:u2to
|
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!