久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
51單片機(jī)簡(jiǎn)易的函數(shù)信號(hào)發(fā)生器+LCD1602顯示代碼
[打印本頁]
作者:
Twinkstar
時(shí)間:
2021-6-26 10:04
標(biāo)題:
51單片機(jī)簡(jiǎn)易的函數(shù)信號(hào)發(fā)生器+LCD1602顯示代碼
#include "reg51.h"
#include "LCD1602.h"
#include "i2c.h"
sbit S1 =P2^1;
sbit S4 =P2^2;
/**********************************
參數(shù)聲明
**********************************/
uint F=0; //頻率
uint S=0,Pwm=0,Tra=0,AA=0; //正弦波 方波 三角波 鋸齒波信號(hào)
uchar zkb=30,bx=1; //頻率加/減 PWM占空比 波形選擇
uchar t1=0,flagPwm=0,flag1=0; //標(biāo)志位
uchar T=0; //周期
uchar code num[]={ 0x7F,0x82,0x85,0x88,0x8B,0x8F,0x92,0x95,0x98,0x9B,0x9E,0xA1,0xA4,0xA7,0xAA,0xAD
,0xB0,0xB3,0xB6,0xB8,0xBB,0xBE,0xC1,0xC3,0xC6,0xC8,0xCB,0xCD,0xD0,0xD2,0xD5,0xD7
,0xD9,0xDB,0xDD,0xE0,0xE2,0xE4,0xE5,0xE7,0xE9,0xEB,0xEC,0xEE,0xEF,0xF1,0xF2,0xF4
,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFB,0xFC,0xFD,0xFD,0xFE,0xFE,0xFE,0xFE,0xFE
,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFD,0xFD,0xFC,0xFB,0xFB,0xFA,0xF9,0xF8,0xF7,0xF6
,0xF5,0xF4,0xF2,0xF1,0xEF,0xEE,0xEC,0xEB,0xE9,0xE7,0xE5,0xE4,0xE2,0xE0,0xDD,0xDB
,0xD9,0xD7,0xD5,0xD2,0xD0,0xCD,0xCB,0xC8,0xC6,0xC3,0xC1,0xBE,0xBB,0xB8,0xB6,0xB3
,0xB0,0xAD,0xAA,0xA7,0xA4,0xA1,0x9E,0x9B,0x98,0x95,0x92,0x8F,0x8B,0x88,0x85,0x82
,0x7F,0x7C,0x79,0x76,0x73,0x6F,0x6C,0x69,0x66,0x63,0x60,0x5D,0x5A,0x57,0x54,0x51
,0x4E,0x4B,0x48,0x46,0x43,0x40,0x3D,0x3B,0x38,0x36,0x33,0x31,0x2E,0x2C,0x29,0x27
,0x25,0x23,0x21,0x1E,0x1C,0x1A,0x19,0x17,0x15,0x13,0x12,0x10,0x0F,0x0D,0x0C,0x0A
,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x03,0x02,0x01,0x01,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x05,0x06,0x07,0x08
,0x09,0x0A,0x0C,0x0D,0x0F,0x10,0x12,0x13,0x15,0x17,0x19,0x1A,0x1C,0x1E,0x21,0x23
,0x25,0x27,0x29,0x2C,0x2E,0x31,0x33,0x36,0x38,0x3B,0x3D,0x40,0x43,0x46,0x48,0x4B
,0x4E,0x51,0x54,0x57,0x5A,0x5D,0x60,0x63,0x66,0x69,0x6C,0x6F,0x73,0x76,0x79,0x7C
};
/*********************************
函數(shù)聲明
**********************************/
void Fun_Sin();
void Fun_Triangle();
void Fun_Pwm();
void Fun_AA();
void TimerInit();
void KEY();
void Delay10ms();
/*******************************************
主函數(shù)
*******************************************/
void main() //主程序
{
S1 = 1;
S4 = 1;
LcdInit(); //屏幕初始化
TimerInit(); //定時(shí)器初始化
while(1)
{
KEY(); //按鍵檢測(cè)
switch(bx)
{
case 1:Fun_Sin(); break; //正弦波
case 2:Fun_Triangle(); break; //三角波
case 3:Fun_Pwm(); break; //方波
case 4:Fun_AA(); break; //鋸齒波
}
if(flag1==1)
{
T=1*t1;
F=((1*100000)/T);
LcdWriteCom(0x89);
LcdWriteData(T%1000/100+'0');
LcdWriteData(T%100/10+'0');
LcdWriteData(T%10+'0');
LcdWriteCom(0x82+0x40);
LcdWriteData(F%10000/1000+'0');
LcdWriteData(F%1000/100+'0'); //個(gè)位
LcdWriteData('.');
LcdWriteData(F%100/10+'0'); //小數(shù)后一位
LcdWriteData(F%10+'0'); //小數(shù)后兩位
}
flag1=0;
}
}
/**********************************
延遲10ms函數(shù)
**********************************/
void Delay10ms()
{
uchar a,b,c;
for(c=1;c>0;c--)
for(b=38;b>0;b--)
for(a=130;a>0;a--);
}
/**********************************
按鍵檢測(cè)函數(shù)
**********************************/
void KEY()
{
if(S1==0)
{
Delay10ms();
if(S1==0)
{
bx=bx+1;
flag1=1; //周期顯示標(biāo)志位
case_1:
switch(bx)
{
case 1: LcdWriteCom(0x83);
LcdWriteData('S');
LcdWriteData('i');
LcdWriteData('n');break;
case 2: LcdWriteCom(0x83);
LcdWriteData('T');
LcdWriteData('r');
LcdWriteData('a');break;
case 3: LcdWriteCom(0x83);
LcdWriteData('P');
LcdWriteData('w');
LcdWriteData('m');break;
case 4: LcdWriteCom(0x83);
LcdWriteData('A');
LcdWriteData('A');
LcdWriteData(' ');break;
default:bx=1;
goto case_1;
}
}
while(!S1); //檢測(cè)按鍵是否松開
}
if(S4==0)
{
Delay10ms();
if(S4==0)
{
zkb=zkb+10;
if(zkb>90)
{
zkb=10;
}
LcdWriteCom(0x8c+0x40);
LcdWriteData(zkb%100/10+'0');
LcdWriteData(zkb%10+'0');
}
while(!S4); //檢測(cè)按鍵是否松開
}
}
/**********************************
正弦波1函數(shù)
**********************************/
void Fun_Sin()
{
uchar i;
t1=0; //重置計(jì)數(shù)標(biāo)志位
TR0=1; //開定時(shí)
for(i=0;i<255;i++)
{
S=num[i]; //打點(diǎn)賦值
I2cStart();
I2c_write_char(0x90);
I2cAck();
I2c_write_char(0x40); //控制字 允許模擬輸出 不自增單端 0100 0000
I2cAck();
I2c_write_char(S); //放置需要轉(zhuǎn)換的量
I2cAck();
I2cStop();
}
TR0=0; //關(guān)定時(shí)
}
/*******************************
三角波2函數(shù)
********************************/
void Fun_Triangle()
{
uchar i;
t1=0; //重置計(jì)數(shù)標(biāo)志位
TR0=1; //開定時(shí)器
for(i=0;i<255;i++)
{
Tra =i;
I2cStart();
I2c_write_char(0x90);
I2cAck();
I2c_write_char(0x40); //控制字 允許模擬輸出 不自增單端 0100 0000
I2cAck();
I2c_write_char(Tra);
I2cAck();
I2cStop();
}
for(i=255;i>0;i--)
{
Tra =i;
I2cStart();
I2c_write_char(0x90);
I2cAck();
I2c_write_char(0x40); //控制字 允許模擬輸出 不自增單端 0100 0000
I2cAck();
I2c_write_char(Tra);
I2cAck();
I2cStop();
}
TR0=0; //關(guān)定時(shí)器
}
/********************************
方波3函數(shù)
********************************/
void Fun_Pwm()
{
t1=0; //重置計(jì)數(shù)標(biāo)志位
TR0=1; //開定時(shí)器
for(flagPwm=0;flagPwm<100;flagPwm++)
{
if(flagPwm<zkb) //占空比為%30
{
Pwm=0;
}
else
{
Pwm=255;
}
I2cStart(); //DA轉(zhuǎn)換程序
I2c_write_char(0x90);
I2cAck();
I2c_write_char(0x40);//控制字 允許模擬輸出 不自增單端 0100 0000
I2cAck();
I2c_write_char(Pwm);
I2cAck();
I2cStop();
}
TR0=0; //關(guān)定時(shí)器
}
/***********************************
鋸齒波4函數(shù)
***********************************/
void Fun_AA()
{
uchar i;
t1=0; //重置計(jì)數(shù)標(biāo)志位
TR0=1; //開定時(shí)器
for(i=255;i>0;i--)
{
AA =i;
I2cStart();
I2c_write_char(0x90);
I2cAck();
I2c_write_char(0x40); //控制字 允許模擬輸出 不自增單端 0100 0000
I2cAck();
I2c_write_char(AA);
I2cAck();
I2cStop();
}
TR0=0; //關(guān)定時(shí)器
}
/*********************************
定時(shí)器初始化函數(shù)
**********************************/
void TimerInit()
{
TMOD|=0x01; //定時(shí)器0工作方式1
TH0=0xFC; // 65536-1000+1
TL0=0x18;
ET0=1;
EA=1; //定時(shí)器總開關(guān)
TR0=0; //中斷開關(guān)
}
/**********************************
定時(shí)器中斷函數(shù)
**********************************/
void Timer(void) interrupt 1 //中斷
{
// TR0=0; //賦初值,定時(shí)器需在關(guān)閉狀態(tài)
TH0=0xfc;// 65536-1000+1
TL0=0x18;//
// TR0=1;
t1=t1+1; //計(jì)數(shù)中斷個(gè)數(shù) 每個(gè)中斷 1ms
}
復(fù)制代碼
全部代碼下載:
函數(shù)信號(hào)發(fā)生器代碼.zip
(63.39 KB, 下載次數(shù): 22)
2021-6-26 10:03 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
91久久电影
|
欧美精品久久
|
国产精品视频一区二区三区
|
久久久久久成人
|
中文字幕第一页在线
|
亚洲九九
|
91看片免费版
|
精品日韩一区二区
|
天天碰日日操
|
欧美成人精品欧美一级
|
欧美一级特黄aaa大片在线观看
|
欧美亚洲国产日韩
|
国产高清免费
|
欧美性生活一区二区三区
|
美女久久久久久久
|
免费一级黄
|
日韩最新网址
|
日韩成人精品一区二区三区
|
日韩欧美在线不卡
|
老子午夜影院
|
www.日本在线播放
|
午夜国产羞羞视频免费网站
|
日本午夜在线视频
|
精品国产一区二区三区观看不卡
|
国产精品久久久久久久岛一牛影视
|
国产精品资源在线观看
|
免费看a
|
在线免费黄色小视频
|
午夜欧美一区二区三区在线播放
|
成人国产精品久久久
|
精品国产伦一区二区三区观看体验
|
亚洲国产一区二区在线
|
中文字幕不卡视频在线观看
|
国产精品美女久久久久aⅴ国产馆
|
亚洲精品乱
|
伊人春色成人网
|
成人精品一区亚洲午夜久久久
|
欧美亚洲国产一区二区三区
|
91免费观看
|
欧美日韩不卡在线
|
成人免费区一区二区三区
|