The program for generating square wave, sawtooth wave and triangle wave by single chip microcomputer

Publisher:MysticGlowLatest update time:2018-01-08 Source: eefocusKeywords:MCU Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere

 The program for generating square wave, sawtooth wave and triangle wave by single chip microcomputer

#include 

#define uchar unsigned char 
#define uint unsigned int 

unsigned char x=0,m=0,y=128; 

sbit WR_DA=P2^1; 
sbit CS_DA=P2^0;//DA and microcontroller interface 
sbit S0=P3^0; //Waveform selection, each press will produce a different waveform 
sbit S1=P3^1; // Frequency reduction 
sbit S2=P3^2; //Frequency addition 
sbit S3=P3^3; //Adjust the duty cycle of the square wave 

uchar code SinTab[256]={0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5 

,0xc7,0xca,0x CC ,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4,0xf5 

,0xf6,0xf7,0xf8,0xf9,0x fa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd 

,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda 

,0xd8,0xd 6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99 

,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51 

,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16 

,0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00 

,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02 ,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15 

,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43,0x45,0x48,0x4c,0x4e 

,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66 ,0x69,0x6c,0x6f,0x72,0x76,0x79,0x7c,0x80 }; 

void delayms(uint t) 

    uint i; 
    while(t--) 
    { 
       for (i=0;i<125;i++);//For 11.0592M clock, the delay is about 1ms 
    } 


void delay(uint t) 

    uint i; 
    for (i=t;i>0;i--); 



void time0_init() 

    TMOD|=0x01; //Timer setting 16 bits 
    TH0=-50000/256; 
    TL0=-50000%256;//Initialization value 
    ET0=1; 
    TR0=1; 
    EA=1; 


void time0_int(void) interrupt 1 
{  
    TR0=0;//Turn off timer 
    TH0=-50000/256; 
    TL0=-50000%256;//Reload initial value 

if(S0==0) 

     delayms(10);//Key debounce 
     if(S0==0) m++; 
   while(!S0);//Hand release detection 


if(S1==0) 

     delayms(10); 
     if(S1==0) x=x+1; 
   while(!S1);//hand release detection 


if(S2==0) 

     delayms(10); 
     if(S2==0) x=x-1; 
   while(!S2);//hand release detection 


if(S3==0) 

     delayms(10); 
     if(S3==0) y=y+5; 
   while(!S3);//松手检测 


if(y>254) y=0; 
if(m>5) m=0; 
if(x>50) x=0; 
TR0=1;//启动定时器 


void fangbo()    //方波 
{  
   uchar i,j; 
   j=255-y; 
   CS_DA=0; 
   WR_DA=0; 
for(i=y;i>0;i--) 

    P0=0; 
    delay(x); 


while(j--) 

    P0=255; 
    delay(x); 
}    


void juchi()    //锯齿波 

    uchar i; 
    CS_DA=0; 
    WR_DA=0; 
for(i=255;i>0;i--) 
{    
     P0=i; 
     delay(x); 



void sanjiao()      //三角波 

uchar i; 
    CS_DA=0; 
    WR_DA=0; 
for(i=0;i<255;i++) 

     P0=i; 
     delay(x); 

while(i--) 

    P0=i; 
    delay(x); 



void tixing()         //梯形波 

uchar i=255,j,k; 
CS_DA=0; 
WR_DA=0; 
while(i--) 

   P0=i; 
   delay(x); 


for(j=0;j<100;j++) 

   P0=0; 
   delay(x); 


for(k=0;k<255;k++) 

   P0=k; 
   delay(x); 



void sin()      //正弦波 
{  
uchar a;  
CS_DA=0; 
WR_DA=0; 
for(a=0;a<255;a++) 

   P0=SinTab[a]; 
   delay(x); 



main() 

time0_init(); 
while(1) 

   switch(m) 
   { 
     case 0: 
     fangbo();    //方波 
     break; 
     case 1: 
     juchi();    //锯齿波 
     break; 
     case 2: 
     sanjiao();   //三角波 
     break; 
     case 3: 
     sin();    //正弦波 
     break; 
     case 4: 
     tixing();    //梯形波 
     break; 
     default: fangbo(); 
   } 


Keywords:MCU Reference address:The program for generating square wave, sawtooth wave and triangle wave by single chip microcomputer

Previous article:74HC595 digital tube program
Next article:Slave program of point-to-point communication between two single-chip microcomputers

Recommended ReadingLatest update time:2024-11-23 04:51

4×4 keyboard C51 MCU program source code sharing
/*MCU:AT89S52*/ #include  #include  #define uchar unsigned char int key; int of; void Key_Scan(void); /************Main program*************/ void main(void) {  void Key_Scan(void); void delay(int); while(1) {    Key_Scan();     delay(2000); } } /********Matrix key search key value 4*4 procedure******/ void Key_Scan(v
[Microcontroller]
4×4 keyboard C51 MCU program source code sharing
Design of Indoor Environmental Parameters Automatic Control System Based on Single Chip Microcomputer
This design is a research and design of an environmental parameter control system developed on a single-chip microcomputer, which mainly controls various environmental conditions in the greenhouse and measures data in real time. In the environmental parameter control, the hardware circuit of 51 single-chip microcomput
[Microcontroller]
Design of Indoor Environmental Parameters Automatic Control System Based on Single Chip Microcomputer
Instructions with direct address as destination operand (5) - MCS51 MCU assembly
Instructions with direct addresses as destination operands (5) The function of this group of instructions is to send the contents specified by the source operand to the on-chip RAM selected by the direct address data. There are four addressing modes: direct, immediate, register and register indirect: MOV data,data;
[Microcontroller]
Realization of short distance wireless communication based on 51 single chip microcomputer
1 Introduction Short-distance wireless transmission has the advantages of strong anti-interference performance, high reliability, good security, less geographical restrictions, and flexible installation. It has broad application prospects in many fields. Low power consumption and miniaturization are the actual
[Microcontroller]
Realization of short distance wireless communication based on 51 single chip microcomputer
Design of a multi-loop microcontroller consisting of a single-chip microcomputer and peripheral serial devices
    1 Introduction     Formation charging and discharging is one of the key processes in the battery production process, and its control level is directly related to the quality of the product. The process requires that the formation charger can charge and discharge the battery multiple times according to conditions s
[Microcontroller]
Design of a multi-loop microcontroller consisting of a single-chip microcomputer and peripheral serial devices
MCU simple clock
1. Brief Introduction Through Proteus simulation circuit, use 7-segment digital tube to display the current time in real time. Project file: Link: https://pan.baidu.com/s/1CkKAF8h2dzn-bMoqgL-mhQ Password: i3a2 2. Effect 3. Engineering Structure 1. Keil Project 2. Simulation circuit diagram 4. Source Files
[Microcontroller]
MCU simple clock
Application of analog comparator inside microcontroller
Generally speaking, microcontrollers with internal A/D converters are relatively expensive, and generally only have 8 to 10-bit resolution, which is obviously not suitable for occasions requiring high resolution; and ordinary microcontrollers do not have A/D converters at all. With the development of modern electron
[Microcontroller]
Application of analog comparator inside microcontroller
Design of serial communication between MSP430 microcontroller and PC based on VB6.0
1 Introduction With the continuous development of computer technology, computer applications have gradually formed two major branches in its development process. One is general-purpose computers, represented by PCs, which focus on high-speed numerical calculations and data processing, but have weak real-time measurem
[Power Management]
Design of serial communication between MSP430 microcontroller and PC based on VB6.0
Latest Microcontroller Articles
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号