//用51单片机做信号发生器,同时输出四种频率的方波。
//要求:晶振为12MHz,用T0做定时器,在P1的低四位输出四种频率的方波:
// P1.3 = 1.25kHz、P1.2 = 2.5kHz、P1.1 = 5kHz、P1.0 = 10kHz
//另外,上述四个频率要求用一个四选一数据选择器,再选出其中的一个输出出去。
//P1.6、P1.7的输出用来控制四选一数据选择器的选择位,它们由P3.0按键控制。
//悬赏分:10 - 解决时间:2009-12-5 10:45
//===================================================
//最佳答案:
//本题目早在一年前就回答完毕,现在增加了PROTEUS仿真图片发上博客。
//题目要求在相邻四条接口线输出的四种频率,恰有二倍的关系,这就可以利用一个定时中断来完成。
//题目还要求使用一个数据选择器,通过按键选择一个频率来输出。
//利用PROTEUS仿真的截图如下所示。
//图中在输出端接上了一个频率计和一个扬声器,进行频率检测。
//当按下按键时,输出频率可以轮番转换。
//图中把四种频率的检测结果都截图显示,可以看出,输出的频率十分理想。
//PC的扬声器也能听到声音,10kHz的频率,比较刺耳。
//以下程序已经仿真成功。
//---------------------------------------------------
#include
#define uchar unsigned char
#define TL_0SET (256 - 50) //定时时间选为50us
//输出的方波周期将为100us, 10kHz
sbit P3_2 = P3^2; //用于按键
sbit P1_0 = P1^0; //四个频率输出
sbit P1_1 = P1^1; //
sbit P1_2 = P1^2; //
sbit P1_3 = P1^3; //
sbit P1_6 = P1^6; //两个选择控制输出
sbit P1_7 = P1^7; //
bdata uchar x = 0;
sbit p16 = x^0;
sbit p17 = x^1;
uchar i, j;
//---------------------------------------------------
void e0int() interrupt 0 //外部中断0作开关,控制四选一数据选择器
{
while(P3_2 == 0) {;} //等待按键释放
x++;
if(x == 4) x = 0; //改变当前输出的选择
P1_7 = p16;
P1_6 = p17;
}
//---------------------------------------------------
void time0() interrupt 1 //T0的中断服务程序
{ //T0工作在方式2,自动装入初始值
i++;
j = i % 16; //取i的低四位
j += x << 6; //组合上数据选择器的控制信号
P1 = j; //输出四种频率的方波以及控制信号
}
//---------------------------------------------------
void main()
{
TMOD = 0x02; //T0定时方式2
TH0 = TL_0SET; //自装入式的定时初始值
TR0 = 1; //启动T0
ET0 = 1;
IT0 = 1; //外部中断0由下降沿触发
EX0 = 1; //外部中断0允许
EA = 1;
while(1) {;}
}
//---------------------------------------------------
关键字:51单片机 信号发生器 实例编程
引用地址:
51单片机做信号发生器实例编程
推荐阅读最新更新时间:2024-03-16 13:33
51单片机的4X4矩阵键盘的C语言程序
#include AT89X52.H /////////////////////////////////////////数码管常量///////////////////////////////////////////////////////// unsigned char code table ={0x00,0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80,0x90}; //LED段码 unsigned char code position ={1,2,4,8}; //LED选位码 /////////////////////////////////////////
[单片机]
51单片机数码管详解
一.数码管基础知识 LED数码管是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。LED数码管常用的段数一般为7段,有的另加一个小数点 。LED数码管根据LED的接法不同,分为共阳和共阴两类 。 1.共阳极数码管 指八段数码管的八段发光二极管的阳极(正极)都连在一起,而阴极对应的各段可分别控制,如图a所示。 2.共阴极数码管 指八段数码管的八段发光二极管的阴极(负极)都连在一起,而阳极对应的各段分别控制,如图b所示。 二.静态数码管(以共阳极为例) 1.原理分析 LED 发光二极管的正极共同接在VCC上,这里以单片机P1口为例,当P1口对应引脚为0(即低电平)时数码
[单片机]
LabWindows/CVI 在虚拟信号发生器设计中的应用
引言 20 世纪80 年代中后期,国外提出了 虚拟仪器 、 虚拟系统 的概念,随着微电子技术、计算机技术的飞速发展及其在测量与仪器上的应用,测试领域的新理论、新方法以及仪器结构不断出现,突破了传统仪器的概念,继而开创了仪器仪表的新时代 虚拟仪器。虚拟仪器技术最核心的思想就是利用计算机的硬/软件资源,使本来需要硬件实现的技术软件化(虚拟化),以便最大限度的降低系统成本,增强系统的功能和灵活性。 虚拟仪器技术的实质是利用最新的计算机技术来实现和扩展传统仪器的功能。其基本构成包括计算机、虚拟仪器软件、硬件接口模块等。在这里,硬件仅是为了解决信号的输入输出,软件才是整个系统的关键。当基本硬件确定了以后,就可以通过不同的软件实现
[测试测量]
以AT89C51单片机为核心的发光二极管阵列控制系统设计
现代社会的不断发展,也促进了高科技技术的不断发展,给人们的日常生活带来了更多的便利。而经常在晚会等娱乐节目场合出现发热发光二极管也给人们带来了新的体验。 本文通过研究和设计一个利用事先编好程序来控制16 个LED ,并配合左右手的摇晃来显示字符和简易图形的电子装置(简称为“摇摇棒”),来传递有趣的信息。此装置利用 对发光二极管进行控制。用滚珠开关检测当前摇动状态,单片机控制16 个发光二极管进行不同频率的亮灭刷新,则只要摇动就可以可显示输出文字及图案等信息,从而达到在该视觉平面上传达信息的作用。 1 硬件系统的组成 本设计的简单有趣的LED 摇摇棒,它是基于单片机控制的电子装置。具有按键进行画面切换和消除重影等功能,能使
[单片机]
基于51单片机GSM模块的家庭火灾报警系统设计
一.硬件方案 本设计利用被动式热释电型红外传感器检测人体辐射的红外线,当检测到红外信号变化时,将其转化为微弱的电信号,经过信号处理电路对电信号进行滤波、放大、比较、输出高电平作为告警信息送给MCU,MCU判断是否报警,如果满足报警条件,就会发出控制信号,通过串行通信接口RS232,控制GSM短信模块给用户发短信息,实现防盗报警。 主要由DS18B20温度传感器+MQ-2烟雾传感器+HC-SR501人体红外模块+SIM800C GSM模块+LCD1602显示屏组成;如图: 二.设计功能 (1)可检测环境温度、烟雾浓雾和人体信号并通过显示屏显示。 (2)可通过按键设置报警值,当检测值超过报警值时进行报警。 (3)报警可通过LE
[单片机]
51单片机多机通信过程
51单片机具有多机通信的功能,可实现一台主机于多台从机的通信。 多机通信充分利用了单片机内部的多机通信控制位SM2。当从机SM2=1时,从机只接收主机发出的 地址帧(第九位为1),对数据帧(第九位为0)不予理睬;而当SM2=0时,可接收主机发送过来的所有信息。 多机通信的过程如下: (1)所有从机SM2均置1,处于只接收地址帧状态。 (2)主机先发送一个地址帧,其中前8位数据表示地址,第9位为1表示该帧为地址帧。 (3)所有从机接收到地址帧后,进行中断处理,把接收到的地址与自身地址相比较。地址相符时将SM2清成0,脱离多机状态,地址不相符的从机不作任何处理,即保持SM2=1。 (4)
[单片机]
基于51单片机的数字钟程序
//功能:4位 数码管 可以显示 时分,月日,年份;万年历,整点报时,定时自动(或手动)关闭显示器,空闲模式工作省电 //硬件:2051 单片机 ,P1.6到P1.0分别是 A到G,P1.7=DP,P3.5=D4,P3.4=D3,P3.1=D2,P3.0=D1,P3.7控制直流蜂鸣器(整点报时)。 //.2=0(改时间),P3.3=0(改状态),6M Hz 晶振 。 //使用说明:默认时间为 2010年1月1日,0点0分,状态1显示时分 //按P3.2为0,状态++,状态功能分别为 1:显示时间 2:显示月日 3:显示年 4:修改分钟 5:修改时钟 6:修改年 7:修改月 8:修改日 ; //用DP来表示状态,DP每秒闪烁1次
[单片机]
用51单片机控制RTL8019AS实现以太网通讯
互联网络硬件、软件的迅猛发展,使得网络用户呈指数增长,在使用 计算机 进行网络互联的同时,各种家电设备、仪器仪表以及工业生产中的数据采集与控制设备在逐步地走向网络化,以便共享网络中庞大的信息资源。在电子设备日趋网络化的背景下,利用廉价的51单片机来控制RTL8019AS实现以太网通讯具有十分重要的意义。 1 以太网(Ethernet)协议 一个标准的以太网物理传输帧由七部分组成(如表1所示,单位:字节)。 表1 以太网的物理传输帧结构表 PR SD DA SA TYPE DATA FCS 同步位 分隔位 目的地址 源地址 类型字段 数据段 帧校验序列 7 1 6 6 2
[应用]