导读:目前正在解读《AT89S52语言常用程序——基于单片机的信号发生器例程》的相关信息,《AT89S52语言常用程序——基于单片机的信号发生器例程》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《AT89S52语言常用程序——基于单片机的信号发生器例程》的详细说明。
简介:这里给大家分享一个AT89S52语言常用程序——基于单片机的信号发生器例程

#include<reg51.h>#include <absacc.h>#define uchar unsigned char#define uint unsigned intvoid delays(void);uchar kbscan(void);sbit A0=P2^1;sbit A1=P2^2;uchar key;void delays(void){uchar i;for(i=300;i>0;i--);}//  kbscan(void) 键扫描函数uchar kbscan(void)  {uchar sccode,recode;P1=0xf0;/*发全"0"行扫描码,列线输入*/if((P1&0xf0)!=0xf0)/*若有键按下*/{delays();    /*延时去抖动*/if((P1&0xf0)!=0xf0){sccode=0xfe;/*逐行扫描初值*/while((sccode&0x10)!=0){P1=sccode;/*输出行扫描码*/if((P1&0xf0)!=0xf0)    /*本行有键按下*/{recode=(P1&0xf0)|0x0f;return((~sccode)+(~recode)); /*返回特征字节码*/}else sccode=(sccode<<1)|0x01;/*行扫描码左移一位*/}}}return(0);/*无键按下,返回值为0*/}void main(void){uchar key;while(1){ key=kbscan();/*键扫描函数*/delays();/*键消抖的延时函数*/if (key==0x7e)// 正弦波{A0=0;A1=1;}if (key==0xbe)// 矩形波{A0=0;A1=0;}if (key==0xbe)// 三角波{A0=1;A1=0;}}} 

提醒:《AT89S52语言常用程序——基于单片机的信号发生器例程》最后刷新时间 2024-03-14 01:02:27,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《AT89S52语言常用程序——基于单片机的信号发生器例程》该内容的真实性请自行鉴别。