日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

linux 普通io实现pwm,用普通IO口做PWM输出 - 51单片机 -电子工程世界-论坛 -手机版...

發布時間:2024/7/19 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 普通io实现pwm,用普通IO口做PWM输出 - 51单片机 -电子工程世界-论坛 -手机版... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本人現在想用IO口做PWM輸出,頻率1KHz,然后用兩按鍵(+、-)來調節占空比0-100%,對應數碼管顯示000-100。

現波形是OK了,也可以調占空比,但是出現一個問題數碼管顯示亂七八糟,調了兩天都沒有調好,還請大哥們幫忙指

點。

#include

#define uint?? unsigned int

#define uchar unsigned char

sbit up=P2^0;?????? //加1按鍵

sbit down=P2^1;???? //減1按鍵

sbit pwm_out=P1^0;? //PWM輸出端口

char disp=0;?????? //顯示計數器

char pwm_disp=50;?? //占空比顯示單元,初始化為中間值

timer0_count=100;//定時中斷計數器

uchar code disp_bit[]={0xbf,0xdf,0xef}; //數碼管位碼 P2.4,P2.5,P2.6

uchar code TABLE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

//數碼管段碼??????? 0,1,2,3,4,5,6,7,8,9

void display();

//延時子函數

void delay(int x)

{

int i,j;

for(i=0;i

for(j=1;j<120;j++);

}

//T0定時器初使化

void init()

{

TMOD=0x01;????????? //T0方式1計時

TH0=(65536-8)/256;? //定時10uS

TL0=(65536-8)%256;

EA=1;?????????????? //總中斷開

ET0=1;????????????? //定時器0開

TR0=1;???? //啟動定時器

}

//T0定時中斷子函數

void timer0() interrupt 1 using 0

{

TH0=(65536-8)/256;? //重置定時初值 10uS

TL0=(65536-8)%256;

if(pwm_disp==timer0_count )//占空比計數器等于定時中斷計數器否

{

pwm_out=1;??????? //開通輸出

}

if(timer0_count==0)?? //定時中斷計數器為0否

{

pwm_out=0;???????? //關斷輸出

timer0_count=100;? //重置初始值

}

timer0_count--;

}

//顯示子函數

void display()

{?? delay(10);

switch(disp)

{? case 0:

{

P2=0xbf;???????????????? //P2為位碼

P0=TABLE[pwm_disp/100];? //P0為段碼

break;

}

case 1:

{

P2=0xdf;

P0=TABLE[(pwm_disp%100)/10];

break;

}

case 2:

{

P2=0xef;

P0=TABLE[pwm_disp%10];

break;

}

}

disp++;//顯示計數器加1

if(disp>=3)//顯示計數器等于3

disp=0; //則清零

}

//主程序

void main()

{

init();

while(1)

{

if(up==0)//增1鍵按下否

{ delay(10);

if(up==0)

{ pwm_disp++;

if( pwm_disp>100)

pwm_disp=0;

if(up==0);

}

}

if(down==0)//減1鍵按下否

{ delay(10);

if(down==0)

{ pwm_disp--;

if( pwm_disp==0)

pwm_disp=100;

if(down==0);

}

}

}

}

總結

以上是生活随笔為你收集整理的linux 普通io实现pwm,用普通IO口做PWM输出 - 51单片机 -电子工程世界-论坛 -手机版...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。