P1口各口输出频率不同的PWM信号,且P1.1口的PWM波周期是P1.0口的两倍,P1.2口PWM周期是P1.1的两倍,以此类推
单片机源程序如下:
/*-----------------------------------------------
名称:定时器0
修改:无
内容:通过定时产生不同频率方波
------------------------------------------------*/
#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
/*------------------------------------------------
定时器初始化子程序
------------------------------------------------*/
void Init_Timer0(void)
{
TMOD |= 0x01; //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响
//TH0=0x00; //给定初值,这里使用定时器最大值从0开始计数一直到65535溢出
//TL0=0x00;
EA=1; //总中断打开
ET0=1; //定时器中断打开
TR0=1; //定时器开关打开
}
/*------------------------------------------------
主程序
------------------------------------------------*/
main()
{
Init_Timer0();
while(1);
}
/*------------------------------------------------
定时器中断子程序
------------------------------------------------*/
void Timer0_isr(void) interrupt 1 using 1
{
static unsigned char i;
//重新赋值 12M晶振计算,指令周期1uS,500x2=1mS方波
TH0=(65536-500)/256;
TL0=(65536-500)*256;
i++;
P1=i; //P1口8路输出不同频率,相当于一个分频器,高频用示波
//器测量,低频可以直接用led观测
//P1.0输出1ms方波,P1.1输出2ms,p1.2输出4ms,以此类推
}
关键字:51单片机 pwm调制 分频信号 倍频
引用地址:
51单片机pwm调制 产生多路分频信号 倍频
推荐阅读最新更新时间:2024-11-08 16:54
以89C51单片机为核心控制器件的液体点滴速度监控系统设计
1. 引言 液体点滴速度控制系统对于大型医院来说是一套能够提高效率和服务质量的控制设备,特别是远程监控功能能使护士站对于病人的点滴状况进行实时监视,并可根据病人状态调节点滴速度。目前市场上点滴控制系统不少,本文的设计点在于低成本,仅使用最廉价89C51单片机以及普通的元件实现整套系统。 2. 系统设计要求 2.1. 从站设计要求 A.在滴斗处检测点滴速度,并使用数显装置动态显示点滴速度(滴/分)。 B.通过改变点滴瓶高度控制点滴速度,点滴速度可用键盘设定并显示,设定范围为20—150(滴/分),控制误差范围为设定值+/-10%+/-1 滴。 C.系统调整时间《=3 分钟。 D.当点滴瓶里的液面低于警戒值时,能发出报警信号
[单片机]
51单片机+8*8点阵实现的贪食蛇源代码
电路图和单片机仿真文件下载: http://www.51hei.com/bbs/dpj-20604-1.html 下面是源代码: #include reg51.h #define uchar unsigned char #define SNAKE 20 //最大长度 #define TIME 50 //显示延时时间 #define SPEED 71 //速度控制 //#define keyenable 1 sbit keyenable=P3^6; //方向使能 /*sbit keyx=P0^1; //左右 sbit keyy=P0^2; //上下 */ //s
[单片机]
采用多51单片机的液位监控仪设计
采用单片机设计液位监控仪是很通用的做法。如果要测量的液位有很多路(16路以上),每路要求能滚动显示1年内每班、每日、每月的输入输出总量(1日3班),正常或意外停电数据不丢失,人机交互能力要强(要设置适当数量的按键及采用LCD显示),并且每路液位要求对应2路控制输出信号(液罐液体输入控制和输出控制),配置微型打印机端口,设置声音报警,所有这些无疑需要很多的I/O端口来支持,单凭一个单片机是办不到的,需要扩展I/O端口。在此设计中,笔者认为采用专用I/O扩展芯片有较多的弊端,权衡利弊,选择了用单片机来代替专用I/O接口芯片的方法。 1 专用 I/O芯片与单片机用作I/O芯片的对比 ①专用I/O接口芯片的I/O口数量不
[单片机]
51单片机(五)—— GPIO点亮一个LED
一、LED控制介绍 发光二极管是半导体二极管的一种,可以把电能转化成光能,常简写为LED。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电特性。当给发光二极管加上正向电压时就会发光,光的强弱与工作电流成正比。一般情况下,LED的正向工作电流在10mA左右,如果电流过大就会烧坏LED,因此使用时必须串联限流电阻以控制通过二极管的电流。 普通发光二极管的正向饱和压降为1.6V~2.1V。发光二极管的特点是:工作电压很低(有的仅一点几伏);工作电流很小(有的仅零点几毫安即可发光);抗冲击和抗震性能好,可靠性高,寿命长;通过调制通过的电流强弱可以方便地调制发光的强弱。由于有这些特点,发光二极管在一些光电控制设备中用作光源,
[单片机]
C51单片机编程技巧:LCD1602编程经验分享
简介:先说明一下,我下面要说的LCD1602的芯片驱动是HD44780,如果你们的LCD1602驱动芯片不是HD44780,那么下面的内容是不适用的。 这次我来分享一下我的LCD1602的编程经验: 先说明一下,我下面要说的LCD1602的芯片驱动是HD44780,如果你们的LCD1602驱动芯片不是HD44780,那么下面的内容是不适用的。 我对LCD1602的整体理解 这里说一下我对LCD1602的整体理解哈,LCD1602是一个可以显示两行字符的LCD显示器,每一行可以都写入40个字符,但是每行都只有前16个字符可以显示,每行后面的24个字符无法立即显示,只说不容易明白,下面看一下示意图: 另外LCD1602
[单片机]
倍频电路的预置可逆分频器设计
1. 前言 锁相环是倍频电路的主要实现方式,直接决定倍频的成败。传统的锁相环各个部件都是由模拟电路实现的,随着数字技术的发展,全数字锁相环逐步发展起来,全数字锁相环的环路部件全部数字化,通常由数字鉴相器、数字环路滤波器、压控振荡器以及分频器组成,全数字锁相环中的分频器要求模可预置且可根据实际需要进行可逆分频 。由于现有的电路均不能满足上述要求,本文首先采用simuink 和FPGA 开发了应用于倍频电路的变模可逆分频器。 2. 变模可逆分频器的工作原理 变模分频器的基本原理是设置一个符合函数,在分频过程中,触发器的输出与预置模比较,当触发器的输出与预置模一致时,则给出符合信号,强迫计数器进入所希望的状态,即初始状态,随
[模拟电子]
mcs-51单片机CPU的内部结构及工作原理
单片机内部有一个8位的CPU,同时知道了CPU内部包含了运算器,控制器及若干寄存器。51单片机CPU的内部结构及工作原理。 从图中我们可以看到,在虚线框内的就是CPU的内部结构了,8位的MCS-51单片机的CPU内部有数术逻辑单元ALU(Arithmetic Logic Unit)、累加器A(8位)、寄存器B(8位)、程序状态字PSW(8位)、程序计数器PC(有时也称为 指令 指针,即IP,16位)、地址寄存器AR(16位)、数据寄存器DR(8位)、指令寄存器IR(8位)、指令译码器ID、控制器等部件组成。 图片1 1、运算器(ALU)的主要功能 A)算术和逻辑运算,可对半字节(一个字节是8位,半个字节就是4位)和
[单片机]
51单片机教程:单片机数据传送类指令
单片机的累加器A与片外RAM之间的数据传递类指令 MOVX A,@Ri MOVX @Ri,A MOVX A,@DPTR MOVX @DPTR,A 说明: 1)在51系列单片机中,与外部存储器RAM打交道的只能是A累加器。所有需要传送入外部RAM的数据必需要通过A送去,而所有要读入的外部RAM中的数据也必需通过A读入。在此我们能看出内外部RAM的区别了,内部RAM间能直接进行数据的传递,而外部则不行,比如,要将外部RAM中某一单元(设为0100H单元的数据)送入另一个单元(设为0200H单元),也必须先将0100H单元中的内容读入A,然后再传送到0200H单元中去。 要读或写外部的RAM,当然也必须要知道RAM的地址,
[单片机]