-
大小: 80KB文件類型: .zip金幣: 2下載: 0 次發(fā)布日期: 2021-06-02
- 語言: 其他
- 標(biāo)簽: 51單片機(jī)??頻率可調(diào)??DA轉(zhuǎn)換器??
資源簡介
用D/A轉(zhuǎn)換器輸出一個(gè)正弦波,頻率從20Hz~5KHz,采用矩陣式按鍵,由按鍵直接四位數(shù)指定頻率,8052的定時(shí)器2定時(shí)輸出。文件包含電路圖和設(shè)計(jì)程序,及全部仿真文件可直接運(yùn)行。

代碼片段和文件信息
#include?
#include?
#include?
#define?uint?unsigned?int
#define?uchar?unsigned?char
#define?DAC0832?XBYTE[0x7fff]
#define?KEY_PORT???P1
uchar?code?DSY_CODE[]=
{
0x800xb10xda0xf50xff0xf50xda0xb10x800x4f0x260x0b0x010x0b0x260x4f
};
float?tdelay?;//每個(gè)點(diǎn)延時(shí)的時(shí)間
unsigned?char?keyNum=0xff;
unsigned?char?SetFreq_flag=0;//設(shè)置頻率的標(biāo)志
uint?exchangeusuuj;
uint?mntcaaa;
uint?pinlv=1000;
uint?g_Period;
//void?DelayMS(uint?u)//延時(shí)程序單位為10微秒
//{
//? uchar?i;
//??while(u--)
//? {
// ? for(i=0;i<120;i++);
// }
//}
?void?DelayMs(?unsigned?int?ms)
{
unsigned?int?ij;
for?(i?=?0;?i? for(j=0;j<124;j++);
}
//??#define?cv?1024??//?10000次計(jì)數(shù),60MHz時(shí)鐘時(shí)定時(shí)2mS
void?init_T2() ??//?定時(shí)器2初始化
{ T2CON?=0; ??//?設(shè)定T2自動(dòng)重裝模式
T2MOD?=0;
RCAP2H?=(65536-us)/256;
RCAP2L?=(65536-us)%256;
TH2?=(65536-us)/256;
TL2?=(65536-us)%256;
ET2?=?1;??//?開T2中斷
PT2?=?1;??//T2?中斷高優(yōu)先級
TR2?=?1;??//啟動(dòng)T2?
}
unsigned?char?keyScan(void)?
{
??unsigned?char?key=0xff;
??unsigned?char?temptemp1temp2;
??
??KEY_PORT=0XF0;
??
??if(?(KEY_PORT&?0XF0)?!=0XF0)?
{??
EA=0;
????DelayMs(10);
?????if(?(KEY_PORT?&?0XF0)?!=0XF0)
?{
???????temp1=?KEY_PORT?&?0XF0;
??????????KEY_PORT=0X0f;
??????????DelayMs(10);
??????temp2=?KEY_PORT?&?0X0f;?
????????
??????while((KEY_PORT?&?0X0f)?!=0X0f);//等待按鍵釋放
??????
??????
??????temp=temp1|temp2;
??????
??????switch(temp)
{
?????????case?0xee:key=1;break;
?????????case?0xde:key=2;break;
?????????case?0xbe:key=3;break;
?????????case?0x7e:key=4;break;
?????????
?????????case?0xed:key=5;break;
?????????case?0xdd:key=6;break;
?????????case?0xbd:key=7;break;
?????????case?0x7d:key=8;break;??
????????????????
?????????case?0xeb:key=9;break;
?????????case?0xdb:key=0;break;
?????????case?0xbb:key=10;break;
?????????case?0x7b:key=11;break;????????
?????????case?0xe7:key=12;break;
?????????case?0xd7:key=13;break;
?????????case?0xb7:key=14;break;
?????????case?0x77:key=15;break;?
?????????
?????????default:break;????????
??????}????
?????}?
?EA=1;
??}
??return?key;?
}
void?main()
{
EA=1;
EC=1;
CR=1;
??? us=500;
g_Period=floor(1000000/pinlv?);
tdelay=g_Period/16;?//獲得每個(gè)點(diǎn)需要延時(shí)的時(shí)間 ????
us=5*floor(tdelay);??????//每個(gè)點(diǎn)需要延時(shí)多少個(gè)微秒
init_T2();??
while(1) //循環(huán)輸出正弦
??{
??keyNum=keyScan(); //按鍵選擇控制函數(shù)
if(keyNum!=0xff)
{??EA=0;
if(keyNum==10?&&?SetFreq_flag==0)??//A鍵??進(jìn)入設(shè)置頻率狀態(tài)
{?
? ?? SetFreq_flag=1;
pinlv=0;
}
else?if(keyNum<10?&&?SetFreq_flag==1)//數(shù)字鍵??輸入頻率
{
pinlv=pinlv*10+keyNum;
???? ????????????
}
else?if(keyNum==10?&&?SetFreq_flag==1)//A鍵???HZ確定輸出
{???
SetFreq_flag=0;
EA=1;
}
EA=1;
us=500;
g_Period=floor(1000000/pinlv?);
tdelay=g_Period/16;?//獲得每個(gè)點(diǎn)需要延時(shí)的時(shí)間 ????
us=5*floor(tdelay);??????//每個(gè)點(diǎn)需要延時(shí)多少個(gè)微秒
init_T2();??
}
????
??
??
??for(j=0;j<16;j++)
??{
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-12-05?20:02??單片機(jī)作業(yè)C51\
?????文件????????1397??2018-10-27?20:20??單片機(jī)作業(yè)C51\absacc.h
?????文件???????19649??2018-10-27?20:36??單片機(jī)作業(yè)C51\Last?Loaded?zyk.pdsbak
?????文件????????1197??2018-10-27?20:21??單片機(jī)作業(yè)C51\math.h
?????文件????????3088??2018-10-27?20:24??單片機(jī)作業(yè)C51\reg51f.h
?????文件????????6376??2009-05-07?14:37??單片機(jī)作業(yè)C51\STARTUP.A51
?????文件???????14054??2018-10-27?20:24??單片機(jī)作業(yè)C51\STARTUP.LST
?????文件?????????749??2018-10-27?20:24??單片機(jī)作業(yè)C51\STARTUP.OBJ
?????文件???????19684??2018-10-27?20:38??單片機(jī)作業(yè)C51\zyk.pdsprj
?????文件????????2400??2018-12-23?14:31??單片機(jī)作業(yè)C51\zyk.pdsprj.LAPTOP-P90I1490.HP.workspace
?????文件????????3522??2018-10-27?20:17??單片機(jī)作業(yè)C51\zz.c
?????文件????????8389??2018-10-27?20:24??單片機(jī)作業(yè)C51\zz.LST
?????文件???????10347??2018-10-27?20:24??單片機(jī)作業(yè)C51\zz.OBJ
?????文件???????11334??2018-10-27?20:24??單片機(jī)作業(yè)C51\zzz
?????文件????????6475??2018-10-27?20:24??單片機(jī)作業(yè)C51\zzz.hex
?????文件??????????53??2018-10-27?20:24??單片機(jī)作業(yè)C51\zzz.lnp
?????文件???????13536??2018-10-27?20:24??單片機(jī)作業(yè)C51\zzz.M51
?????文件?????????165??2018-11-14?15:21??單片機(jī)作業(yè)C51\zzz.plg
?????文件???????71791??2018-12-05?20:02??單片機(jī)作業(yè)C51\zzz.uvgui.HP
?????文件????????5435??2018-11-14?15:24??單片機(jī)作業(yè)C51\zzz.uvopt
?????文件???????12200??2018-11-14?15:24??單片機(jī)作業(yè)C51\zzz.uvproj
?????文件???????58125??2018-10-27?20:39??單片機(jī)作業(yè)C51\zzz_uvopt.bak
?????文件???????????0??2018-10-27?20:14??單片機(jī)作業(yè)C51\zzz_uvproj.bak
- 上一篇:51單片機(jī)計(jì)算器
- 下一篇:WiFi介紹及技術(shù)原理
評論
共有 條評論