信号发生器小程序.docx

上传人:b****5 文档编号:7819673 上传时间:2023-01-26 格式:DOCX 页数:21 大小:17.78KB
下载 相关 举报
信号发生器小程序.docx_第1页
第1页 / 共21页
信号发生器小程序.docx_第2页
第2页 / 共21页
信号发生器小程序.docx_第3页
第3页 / 共21页
信号发生器小程序.docx_第4页
第4页 / 共21页
信号发生器小程序.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

信号发生器小程序.docx

《信号发生器小程序.docx》由会员分享,可在线阅读,更多相关《信号发生器小程序.docx(21页珍藏版)》请在冰豆网上搜索。

信号发生器小程序.docx

信号发生器小程序

#include//包含头文件

#include

#defineucharunsignedchar//宏定义

#defineuintunsignedint

sbits1=P3^5;//定义按键的接口

sbits2=P3^6;

sbits3=P3^7;

sbitlcdrs=P1^0;//液晶控制位

sbitlcden=P1^1;

sbitcsda=P3^3;//DA控制位

sbitwr=P3^4;

charnum=0,boxing,u;//定义全局变量

uintpinlv;

ucharcodetable[]="0123456789";//定义显示的数组

ucharcodetable1[]="frequence:

boxing:

";

ucharcodesin[64]={

135,145,158,167,176,188,199,209,218,226,234,240,245,249,252,254,254,253,251,247,243,237,230,222,213,204,193,182,170,158,

146,133,121,108,96,84,72,61,50,41,32,24,17,11,7,3,1,0,0,2,5,9,14,20,28,36,45,55,66,78,90,102,114,128

};//正弦波取码

ucharcodejuxing[64]={

255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,

255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

};//矩形波取码

ucharcodesanjiao[64]={

0,8,16,24,32,40,48,56,64,72,80,88,96,104,112,120,128,136,144,152,160,168,176,184,192,200,208,216,224,232,240,248,

248,240,232,224,216,208,200,192,184,176,168,160,152,144,136,128,120,112,104,96,88,80,72,64,56,48,40,32,24,16,8,0

};//三角波取码

ucharcodejuchi[64]={

0,4,8,12,16,20,24,26,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96,100,104,108,112,116,120,124,

128,132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192,196,200,204,208,212,216,220,224,228,232,236,240,244,248

};//锯齿波取码

voiddelay(uintxms)//延时函数

{

inta,b;

for(a=xms;a>0;a--)

for(b=110;b>0;b--);

}

voidwrite_com(ucharcom)//写命令函数

{

lcdrs=0;

P0=com;

delay

(1);

lcden=1;

delay

(1);

lcden=0;

}

voidwrite_date(uchardate)//写数据函数

{

lcdrs=1;

P0=date;

delay

(1);

lcden=1;

delay

(1);

lcden=0;

}

voidinit_lcd()//初始化函数

{

lcden=0;//默认开始状态为关使能端,见时序图

write_com(0x0f);

write_com(0x38);//显示模式设置,默认为0x38,不用变。

write_com(0x01);//显示清屏,将上次的内容清除,默认为0x01.

write_com(0x0c);//显示功能设置0x0f为开显示,显示光标,光标闪烁;0x0c为开显示,不显光标,光标不闪

write_com(0x06);//设置光标状态默认0x06,为读一个字符光标加1.

write_com(0x80);//设置初始化数据指针,是在读指令的操作里进行的

}

voidinitclock()//时钟初始化

{

uinti;

TMOD=0x01;

TH0=(65536-1563)/256;

TL0=(65536-1563)%256;

EA=1;

ET0=1;

TR0=1;

for(i=10;i<17;i++)//显示初始化

{

write_date(table1[i]);

delay(5);

}

write_com(0x80+0x40);

for(i=0;i<10;i++)

{

write_date(table1[i]);

delay(5);

}

write_com(0x80+7);

write_date('s');

write_date('i');

write_date('n');

write_date('');

write_date('');

write_date('');

write_date('');

write_com(0x80+0x40+0xa);

write_date('');

write_date('1');

write_date('0');

write_date('H');

delay(5);

write_date('Z');

delay(5);

}

voiddisplay()//显示函数

{

ucharbai,shi,ge;

if(num<10)

{

pinlv=num*10+10;

}

if(num>9)

{

pinlv=(num-9)*100+100;

}

bai=pinlv/100;

shi=pinlv%100/10;

ge=pinlv%100%10;

write_com(0x80+0x40+0xa);

if(bai<1)

{

write_date('');

delay(5);

}

if(bai!

=0)

{

write_date(table[bai]);

delay(5);

}

write_date(table[shi]);

delay(5);

write_date(table[ge]);

delay(5);

write_date('H');

delay(5);

write_date('Z');

delay(5);

if(boxing==0)

{

write_com(0x80+7);

write_date('s');

write_date('i');

write_date('n');

write_date('');

write_date('');

write_date('');

write_date('');

}

if(boxing==1)

{

write_com(0x80+7);

write_date('j');

write_date('u');

write_date('x');

write_date('i');

write_date('n');

write_date('g');

}

if(boxing==2)

{

write_com(0x80+7);

write_date('s');

write_date('a');

write_date('n');

write_date('j');

write_date('i');

write_date('a');

write_date('o');

}

if(boxing==3)

{

write_com(0x80+7);

write_date('j');

write_date('u');

write_date('');

write_date('c');

write_date('h');

write_date('i');

write_date('');

}

}

voidkeyscan()//键盘检测函数

{

if(s1==0)

{

EA=0;

delay

(2);

if(s1==0)

{

while(!

s1);

if(num<14)

num++;

display();

if(num>9)

{

EA=0;

}

else

EA=1;

}

}

if(s2==0)

{

EA=0;

delay(5);

if(s2==0)

{

while(!

s2);

num--;

if(num<0)

{

num=0;

}

display();

if(num>9)

{

EA=0;

}

else

EA=1;

}

}

if(s3==0)

{

EA=0;

delay(5);

if(s3==0)

{

while(!

s3);

boxing++;

if(boxing==4)

{

boxing=0;

}

display();

EA=1;

}

}

}

voiddelaym()//短暂延时

{

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

}

voidmain()//主函数

{

uchardelay_dat=0;

init_lcd();

initclock();

csda=0;

wr=0;

while

(1)

{

keyscan();

switch(num)

{

case10:

//200hz

switch(boxing)

{

case0:

while(s1&&s2&&s3)

{

for(u=0;u<64;u++)

{

P2=sin[u];

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();

}

}

break;

case1:

while(s1&&s2&&s3)

{

for(u=0;u<64;u++)

{

P2=juxing[u];

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();

}

}

break;

case2:

while(s1&&s2&&s3)

{

for(u=0;u<64;u++)

{

P2=sanjiao[u];

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();

}

}

break;

case3:

while(s1&&s2&&s3)

{

for(u=0;u<64;u++)

{

P2=juchi[u];

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();

}

}

break;

default:

break;

}

break;

case11:

//300hz

switch(boxing)

{

case0:

while(s1&&s2&&s3)

{

for(u=0;u<64;u++)

{

P2=sin[u];

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

}

}

break;

case1:

while(s1&&s2&&s3)

{

for(u=0;u<64;u++)

{

P2=juxing[u];

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

}

}

break;

case2:

while(s1&&s2&&s3)

{

for(u=0;u<64;u++)

{

P2=sanjiao[u];

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

}

}

break;

case3:

while(s1&&s2&&s3)

{

for(u=0;u<64;u++)

{

P2=juchi[u];

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

}

}

break;

default:

break;

}

break;

case12:

//400hz

switch(boxing)

{

case0:

while(s1&&s2&&s3)

{

for(u=0;u<64;u++)

{

P2=sin[u];

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

}

}

break;

case1:

while(s1&&s2&&s3)

{

for(u=0;u<64;u++)

{

P2=juxing[u];

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

}

}

break;

case2:

while(s1&&s2&&s3)

{

for

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1