成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

c語言中表示方波的函數(shù) 什么是波形函數(shù)

C語言編寫輸出方波

以12M晶振,50ms為例

創(chuàng)新互聯(lián)建站專業(yè)IDC數(shù)據(jù)服務(wù)器托管提供商,專業(yè)提供成都服務(wù)器托管,服務(wù)器租用,綿陽服務(wù)器托管,綿陽服務(wù)器托管,成都多線服務(wù)器托管等服務(wù)器托管服務(wù)。

用定時器寫

以下是中斷程序

void pwm_1() interrupt 1

{

th0=(65536-50000)/256;

tl0=(65536-50000)%256;

P1^0=~P1^0;

}

用c語言編程實(shí)現(xiàn)C8051F300單片機(jī)1s定時,50Hz的方波輸出

#include

sbit wave=P1^0;

void SetupTimer0()

{

TMOD = 0XF0; //僅保留T1信息

TMOD |= 0X02; //設(shè)置T0: 定時功能,方式2,自動重載8位定時器/計(jì)數(shù)器

TH0 = 256-250;//定時每0.25ms中斷一次

TL0 = 256-250;

TR0 = 1; //開啟定時器

ET0 = 1; //定時器0中斷打開

}

data unsigned char us250;

data unsigned int ms;

bit WAVE; //用以記住當(dāng)前wave的狀態(tài)

void Timer0_ISR() interrupt 1 //定時中斷服務(wù)程序,為按鍵消抖服務(wù)

{

if (++us2504) return;

us250=0; ++ms;

if (ms10) return;

//每10ms波形變化一次,20ms完成一個波形,所以波形是50Hz的

ms=0;

WAVE=~WAVE; wave=WAVE; //方波輸出

}

void main()

{

us250=ms=0;

wave=WAVE=0;

SetupTimer0();

EA = 1; //全局中斷打開

while(1); //在中斷函數(shù)中實(shí)現(xiàn)方波輸出

}

如何用C語言編程使單片機(jī)產(chǎn)生方波信號?

普通51的話需要模擬PWM,如果是加強(qiáng)版51有內(nèi)置PWM模塊,

PIC和AVR以及430還有STM也有集成PWM的型號!

如果是單純輸出方波的話就簡單了。

程序如下:

//功能,按下P1_0的開關(guān)降低頻率,按P1_1為升高頻率

#includeAT89X52.H ?//引用AT89X52的庫文件

#define?uchar?unsigned?char ?//替換簡稱

#define?uint??unsigned?int ?//替換簡稱

uchar?sm; //定義臨時變量

void?delay_ms(uint?ms) //延時子函數(shù),一個循環(huán)12uS

{

while(--ms);

}

void?T0_IRQ(void)?interrupt?TF0_VECTOR ?//定時器0中斷函數(shù)

{

TH0=sm; ?//將變量賦予定時器0的高位

P2_0=!P2_0; ?//翻轉(zhuǎn)IO

}

?//寄存器初始化子函數(shù)

void?mcu_init()

{

ET0=1; //開定時器0中斷

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

TMOD=0x01;? //設(shè)置為16位定時器0

TH0=0xFF; //填充定時器高位

TR0=1; //開定時器0

sm=0xFF; //變量初始化

}

void?main() //主函數(shù)

{

mcu_init(); //調(diào)用初始化函數(shù)

while(1) //主循環(huán)

{

if((!P1_0)||(!P1_1))?? //檢測是否有按鍵按下

{

delay_ms(8333); //延時去抖

if(!P1_0) //如果是P1_0按鍵按下

{

while(!P1_0); //等待按鍵放手

if(sm) //檢測變量不為0

{

? --sm; //自減1

P2_1=1; //取消邊界LED

}

else?P2_1=0; //到達(dá)邊界點(diǎn)亮LED

}

else?if(!P1_1) //否則如果P1_1按鍵按下

{

while(!P1_1); //等待按鍵放手

if(sm0xFF) //檢測變量小于0xFF

{

?? ++sm; ? //自加1

P2_1=1;

}

else?P2_1=0;

}

}

}

}

如何用c語言編寫一段方波

最好還是不要用延時函數(shù)

比較準(zhǔn)確的方法是利用定時器

以c51為例:

/*********定時器方波************/

/*********16位定時器************/

/************機(jī)器周期1us********/

/*********占空比50%*************/

/*********方波周期1s*************/

int a; // 定義全局整形變量

void int() interrupt 1

{

設(shè)置定時器初值為500;

a++;

if(a == 1000)

{

"輸出取反"

}

}

用C語言中的數(shù)組編寫出正弦波、方波和三角波,寫一種就可以了

本程序加了一個LCD1602,,,,你自己選擇使用哈

#includereg52.h //包含頭文件

#includeintrins.h

#define uchar unsigned char //宏定義

#define uint unsigned int

uchar i , j ,n,z; //定義全局變量

sbit RS=P2^0; //定義端口

sbit RW=P2^1;

sbit E =P2^2;

sbit k=P2^7;

sbit k1=P2^6;

uchar code str0[]={"Sine Wave "}; //定義LCD1602顯示字符數(shù)組

uchar code str1[]={"Triangle Wave"};

uchar code str2[]={"Square Wave "};

uchar code table[3][40]= //定義顯示波形的二維數(shù)組

{

0x80,0x94,0xa7,0xb9,0xca,0xd9,0xe7,0xf1,0xf8,0xfd,

0xff,0xfd,0xf8,0xf1,0xe7,0xd9,0xca,0xb9,0xa7,0x94,

0x80,0x6c,0x55,0x46,0x35,0x25,0x18,0x0e,0x06,0x02,

0x00,0x02,0x06,0x0e,0x18,0x25,0x35,0x46,0x55,0x6c,

0x80,0x8c,0x99,0xa6,0xb3,0xc0,0xcc,0xd9,0xe6,0xf2,

0xff,0xf2,0xe6,0xd9,0xcc,0xc0,0xb3,0xa6,0x99,0x8c,

0x80,0x73,0x66,0x5a,0x4d,0x40,0x33,0x26,0x1a,0x0d,

0x00,0x0d,0x1a,0x26,0x33,0x40,0x4d,0x5a,0x66,0x73,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

};

void delay(uint z) //延時程序

{

for(z;z0;z--)

{

}

}

void Write_command(uchar cmd) //LCD1602寫入命令程序

{

RS=0; //選擇指令寄存器

RW=0; //寫操作

E =1; //使能端

P1=cmd;

delay(1);

E =0;

delay(10); //延時 使LCD1602處于不忙狀態(tài)

}

void Write_data(uchar cmd) //LCD1602寫入數(shù)據(jù)命令

{

RS=1; //選擇數(shù)據(jù)寄存器

RW=0; //寫操作

E =1; //時能端

P1=cmd;

delay(1);

E=0;

delay(10); //延時 使LCD1602處于不忙狀態(tài)

}

void Lcd_init() //LCD1602初始化程序

{

Write_command(0x38); //設(shè)置16*2顯示 5*7點(diǎn)陣 8位數(shù)據(jù)接口

Write_command(0x0c); //LCD1602開顯示 ,不顯示光標(biāo)

Write_command(0x06); //讀或?qū)懸蛔址笾羔樇右?,顯示不移動

Write_command(0x80+0x00); //數(shù)據(jù)指針地址設(shè)置

}

void Display() //LCD1602顯示英文程序

{

Lcd_init();

if (i==0)

{

for (n=0;n13;n++)

{

Write_data(str0[n]);

}

}

else if(i==1)

{

for(n=0;n13;n++)

{

Write_data(str1[n]);

}

}

else

{

for(n=0;n13;n++)

{

Write_data(str2[n]);

}

}

}

void main() //主函數(shù)

{

Display();

while(1)

{

for(j=0;j40;j++)

{

P0=table[i][j];

}

if(k==0) //開關(guān)程序

{

delay(1);

if(k==0);

{

if(k==0)

{

i++;

if (i==3) i=0;

Display();

}

}

while(k==0);

}

}

}

怎樣用C語言編寫一個方波函數(shù)?

附上代碼,講解在后面:

public class Program

{

static void Main(string[] args)

{

ListPoint range = new ListPoint(5 * 5);

for (int i = 0; i 5; i++)

{

for (int j = 0; j 5; j++)

{

range.Add(new Point { X = j, Y = i });

}

}

//移動方向的順序

MoveDirection[] md = new[]

網(wǎng)站標(biāo)題:c語言中表示方波的函數(shù) 什么是波形函數(shù)
當(dāng)前URL:http://jinyejixie.com/article4/hpcjie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、建站公司關(guān)鍵詞優(yōu)化、移動網(wǎng)站建設(shè)品牌網(wǎng)站建設(shè)、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計(jì)
浪卡子县| 江达县| 江都市| 文昌市| 寿光市| 浦北县| 榆中县| 碌曲县| 莎车县| 东乡族自治县| 丰顺县| 合作市| 衡阳县| 平邑县| 丰顺县| 双辽市| 皮山县| 怀集县| 广灵县| 南澳县| 太原市| 通渭县| 远安县| 黄骅市| 万安县| 渭源县| 盘山县| 云安县| 股票| 阿尔山市| 惠来县| 常德市| 旬阳县| 彭阳县| 收藏| 安吉县| 霍林郭勒市| 陆丰市| 德格县| 迁安市| 岳普湖县|