資源簡介
這是最常用到的波形發生器(函數發生器)的單片機程序,硬件用的是ADC0832芯片,電路就用該芯片資料里的電路圖,驗證,實驗成功
代碼片段和文件信息
//可調信號發生器程序
#include?
unsigned?char?keykflagoo;
unsigned?char?VPP;//倍幅數
unsigned?int?fj;//倍頻數
bit?time;
/**********初始化子程序************/
void?init()
{
????TMOD=0X02;????????//定時器0用于控制輸出波的頻率
????TH0=256-f;
????ET0=1;?????//按鍵接于外部中斷0,與中斷1
????IT0=1;
????IT1=1;
????EX0=1;
????EX1=1;
????EA=1;
????TR0=1;
????flag=0;?????//開始時無輸出
}
/*void?init()
{
????TMOD=0X01;????????//定時器0用于控制輸出波的頻率
????TH0=(65536-f)/256;
????TL0=(65536-f)%256;
????ET0=1;?????//按鍵接于外部中斷0,與中斷1
????IT0=1;
????IT1=1;
????EX0=1;
????EX1=1;
????EA=1;
????TR0=1;
????flag=0;?????//開始時無輸出
????
}*/
?/************延時程序*************/
void?delay_1ms(unsigned?char?z)
{?
????unsigned?char?ij;?
????for(i=z;i>0;i--)?
????for(j=110;j>0;j--);?
}?
/*************線反轉法掃描鍵盤*************/
unsigned?char?Getch?(??)
{???????//線反轉法非常簡單
????unsigned?char?XYZ;
????P0=0xff;
????P0=0x0f;???????//先對P3置數??行掃描
????if(P0!=0x0f)?????//判斷是否有鍵按下
????{delay_1ms(10);????//延時軟件去干擾
?????if(P0!=0x0f)???//確認按鍵按下X?=?P3;
????{
????X=P0;??????????//保存行掃描時有鍵按下時狀態
????P0=0xf0;???????//列掃描
????Y=P0;??????????//保存列掃描時有鍵按下時狀態
?????Z=X|Y;?????????//取出鍵值
????switch?(?Z?)???//判斷鍵值(那一個鍵按下)
????{
????????/*case?0xee:?k=0;?break;?//P2.0~P2.3對應第一行至第四行,P2.4~P2.7對應第一列至第四列
????????case?0xde:?k=1;?break;
????????case?0xbe:?k=2;?break;
????????case?0x7e:?k=3;?break;
????????case?0xed:?k=4;?break;
????????case?0xdd:?k=5;?break;
????????case?0xbd:?k=6;?break;
????????case?0x7d:?k=7;?break;
????????case?0xeb:?k=8;?break;
????????case?0xdb:?k=9;?break;
????????case?0xbb:?k=10;break;
????????case?0x7b:?k=11;break;
????????case?0xe7:?k=12;break;
????????case?0xd7:?k=13;break;?
????????case?0xb7:?k=14;break;
????????case?0x77:?k=15;break;*/
????case?0xe7:?k=0;?break;//P2.3對應第一行,P2.2對應第二行,P2.1對應第三行,P2.0對應第四行,P2.4對應第一列,P2.5對應第二列,P2.6對應第三列,P2.7
????case?0xd7:?k=1;?break;?????????
????case?0xb7:?k=2;?break;?????????
????case?0x77:?k=3;?break;?????????
????case?0xeb:?k=4;?break;?????????
????case?0xdb:?k=5;?break;??????????
????case?0xbb:?k=6;?break;?????????
????case?0x7b:?k=7;?break;??????????
????case?0xed:?k=8;?break;?????????
????case?0xdd:?k=9;?break;?????????
????case?0xbd:?k=10;break;?????????
????case?0x7d:?k=11;break;?????????
????case?0xee:?k=12;break;????????
????case?0xde:?k=13;break;?????????
????case?0xbe:?k=14;break;?????????
????case?0x7e:?k=15;break;
????}
????}
????}
????return?k;
}
void?search()
{
??key=Getch();
??switch(key)
??{
????????case?0:VPP=2;break;
????????case?1:VPP=4;break;
????????case?2:VPP=8;break;
????????case?3:VPP=8;break;
????????case?4:VPP=8;break;
????????case?5:VPP=8;break;
????????case?6:VPP=8;break;
????????case?7:VPP=8;break;
????????case?8:VPP=8;break;
????????case?9:VPP=8;break;
????????case?10:f=f*2;oo=0;break;
????????case?11:f=f*3;oo=0;break;
????????case?12:f=f*4;oo=0;break;
????????case?13:f=f*5;oo=0;break;
????????case?14:f=f*6;oo=0;break;
??
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????5115??2002-04-16?15:32??可調信號發生器\STARTUP.A51
?????文件??????11769??2009-07-27?15:25??可調信號發生器\STARTUP.lst
?????文件????????873??2009-07-27?15:25??可調信號發生器\STARTUP.obj
?????文件???????9357??2009-07-27?15:25??可調信號發生器\可調信號發生器
?????文件???????2571??2009-07-27?15:25??可調信號發生器\可調信號發生器.hex
?????文件???????9451??2009-07-27?12:21??可調信號發生器\可調信號發生器.LST
?????文件??????13716??2009-07-27?15:25??可調信號發生器\可調信號發生器.M51
?????文件??????10303??2009-07-27?12:21??可調信號發生器\可調信號發生器.OBJ
?????文件???????1063??2009-07-30?08:39??可調信號發生器\可調信號發生器.Opt
?????文件????????204??2009-07-30?08:39??可調信號發生器\可調信號發生器.plg
?????文件???????2043??2009-07-30?08:39??可調信號發生器\可調信號發生器.Uv2
?????文件???????1022??2009-07-27?15:26??可調信號發生器\可調信號發生器_Opt.Bak
?????文件???????2127??2009-07-27?15:26??可調信號發生器\可調信號發生器_Uv2.Bak
?????文件???????5629??2009-07-27?15:25??可調信號發生器\可調信號發生器_修改后可調幅.c
?????文件??????10407??2009-07-27?15:25??可調信號發生器\可調信號發生器_修改后可調幅.lst
?????文件??????10658??2009-07-27?15:25??可調信號發生器\可調信號發生器_修改后可調幅.obj
?????文件???????5211??2009-07-27?15:18??可調信號發生器\可調信號發生器_初步程序.c
?????文件???????9281??2008-07-27?14:43??可調信號發生器\F51\F51
?????文件???????2571??2008-07-27?14:43??可調信號發生器\F51\F51.hex
?????文件??????12947??2008-07-27?14:43??可調信號發生器\F51\F51.M51
?????文件???????1140??2008-07-27?14:44??可調信號發生器\F51\F51.Opt
?????文件??????22197??2008-07-27?14:44??可調信號發生器\F51\F51.plg
?????文件???????2103??2008-07-27?14:44??可調信號發生器\F51\F51.Uv2
?????文件??????????0??2008-07-27?12:32??可調信號發生器\F51\F51_Uv2.Bak
?????文件???????5115??2002-04-16?15:32??可調信號發生器\F51\STARTUP.A51
?????文件??????11742??2008-07-27?14:43??可調信號發生器\F51\STARTUP.lst
?????文件????????810??2008-07-27?14:43??可調信號發生器\F51\STARTUP.obj
?????文件??????10546??2008-07-27?14:43??可調信號發生器\F51\可調信號發生器.lst
?????文件??????10451??2008-07-27?14:43??可調信號發生器\F51\可調信號發生器.obj
?????文件???????5629??2009-07-27?15:25??可調信號發生器\F51\可調信號發生器_修改后可調幅.c
............此處省略5個文件信息
- 上一篇:紅外接收頭資料(各種品牌的紅外接收頭參數對比)
- 下一篇:數據庫課程設計以及指導思想
評論
共有 條評論