|
- ////////////////////////////////////////
- //在PICC編譯器主,調(diào)試通過,PIC16F877A的PWM信號輸出
- #include<pic.h>
- #define uchar unsigned char
- #define uint unsigned int
- __CONFIG(0x1832);
- void delay()
- {
- uint k;
- for(k=0;k<5000;k++);
- }
- void main()
- {
- uchar k;
- T2CON=0X04; //開定時器2
- CCPR1L=0X0F; //PWM匹配初值
- CCP1CON=0X3C; //設置CCP1 模塊為PWM 工作方式,且其工作循環(huán)
- PR2=0XFF; //設置PWM 的工作周期
- TRISC=0XFB; //設置CCP1 引腳為輸出方式
- while(1)
- {
- k++;
- CCPR1L=k;
- delay();
- if(k>253)k=1;
- }
- }
-
- ////////////////////////////////////////////////////////////////////////////////////////////
- 下面的是AVR單片機ATMEGA16的PWM信號輸出程序GCC編譯通過
- #include <avr/io.h>
- #define uchar unsigned char
- #define uint unsigned int
- void delay(uint ms)
- {
- uint i,j;
- for(i=0;i<ms;i++)
- {
- for(j=0;j<1000;j++);
- }
- }
- void main()
- {
- uint i;
- DDRD|=0Xf0;
- PORTD=0x0f;
- TCCR1A=0X63;
- TCCR1B=0X13;
-
- OCR1A=124;
- OCR1B=31;
-
- while(1)
- {
-
- i++;
- OCR1B=i;
- delay(20);
- if(i>123)i=1;
- }
- }
復制代碼
|
|