文档库 最新最全的文档下载
当前位置:文档库 › 单片机产生周期为2ms的方波信号

单片机产生周期为2ms的方波信号

单片机产生周期为2ms的方波信号
单片机产生周期为2ms的方波信号

单片机产生周期为2ms的方波信号

用查询方式产生周期为2ms的方波信号,单片机晶振为12MHz,从P1.0输出。

程序如下:

ORG 0000H ;复位入口

LJMP MAIN ;主程序入口

MAIN: MOV R0,#4 ;初始化

MOV R1,#123

SETB P1.0

DELAY1:DJNZ R1,DELAY1 ;1ms延时程序(因为DJNZ指令位2机器周期指令)MOV R1,#123

DJNZ R0,DELAY1

MOV R0,#4

CPL P1.0

LJMP DELAY1

仿真电路图如下:

波形如图:

单片机方波发生器

单片机方波发生器 组成:单片机最小系统+显示屏+矩阵键盘 1. 数字输入键盘(0-9和小数点)-------11个按键 输入 2. 调整参数光标移动键(上下)----------2个按键 上下移动到需要调整的参数上 3. 参数确认键-------------------------------------1个按键 参数生效 4. 参数取消键-------------------------------------1个按键 参数更改(可无) 5. 脉冲触发输出键-------------------------------1个按键 脉冲输出 6. 信号发生器性能: 显示屏可调的参数有(同时显示三行,价格尽量低一些): 输出脉冲个数:xxxx 1-9999次(可商议) 输出脉冲宽度:xxxx.x us,步进0.05us . 最大值尽可能大 多脉冲间隔时间: xxxx.x us,步进0.05us (可以放宽到 0.1us ) 当输出单脉冲时候,间隔时间依然有效(按下触发等待时间1-5S ) 串口通讯:可以通过串口发送特定命令来输入上述信息和触发动作---本功能另外付50元,本次有没有都可以。没有付150元+硬件。 原材参考(淘宝有卖,接包方自购,买家承担100%费用):单片机最小系+显示屏(尽量不用1602) +16键矩阵键盘 期望输出波形图如下: 围0.05us---max 步进0.05us 围0.05us---max ,步 进0.05us

验收标准: 1. 接包方视频展示功能正确 2. 需求方收到实物,实际验证功能/输出正确 其他要求: 接包方自行购买所需硬件(最小系统+显示屏+按键键盘),软件内代码需做必要注释(尤其功能/参数调整部分),最终把全部功能硬件+软件源代码/执行文件一起寄送给需求方(硬件/邮费需求方支付)。 纯粹自己玩和学习,非毕业设计/成品(任意信号源成品已经很成熟且价格足够低),所 以只需要功能实现即可,对硬件没有要求。 单片机选型尽量低端的,毕竟需要另外买。

产生方波程序

ORG 0000H LJMP MAIN ORG 0003H LJMP KG MAIN: SETB EA ; SETB EX0 ; SETB IT0 ; CLR ET0 ; CLR TR0 ; MOV TMOD ,#00H MOV TH0 ,#0FCH MOV TL0 ,#1CH LOOP: JBC TF0, LOOP1 ;查询方式 AJMP LOOP; LOOP1:CPL P1.0 MOV TH0 ,#0FBH MOV TL0 ,#0AH LOOP3: JBC TF0, LOOP2 ; 查询方式 AJMP LOOP3 LOOP2: CPL P1.0 MOV TH0 ,#0FCH MOV TL0 ,#1CH AJMP LOOP; KG : CPL TR0; RETI END ORG 0000H LJMP MAIN ORG 0003H LJMP KG ORG 000BH LJMP PIOT0 ORG 001BH LJMP PIOT1 MAIN: SETB EA ; SETB EX0 ; SETB ET0 SETB ET1 SETB IT0 SETB IT1

CLR TR0 CLR TR1 MOV TMOD ,#00H MOV TH0 ,#0FCH MOV TL0 ,#1CH HERE :SJMP HERE PIOT0:CPL P1.0 MOV TH1 ,#0FBH; MOV TL1 ,#0AH; RETI PIOT1:CPL P1.0; MOV TH0 ,#0FCH MOV TL0 ,#1CH RETI KG : CPL TR0 CPL TR1 END ORG 0000H LJMP MAIN ORG 0003H LJMP KG ORG 000BH LJMP PIOT0 MAIN: SETB EA ; SETB EX0 ; SETB ET0 CLR ET1 SETB IT0 CLR TR0 CLR TR1 MOV TMOD ,#00H MOV TH0 ,#0FCH MOV TL0 ,#1CH HERE:JBC TF1,LOOP SJMP HERE PIOT0:CPL P1.0 MOV TH1 ,#0FBH; MOV TL1 ,#0AH; CLR TR0 SETB TR1 RETI

STM32单片机定时器调试之方波输出

STM32单片机定时器调试之方波输出 今天试着让STM32的定时器输出50%占空比信号,按 照例程写了一下方波初始化函数,例程用的是STM32自 带库函数,由于嫌麻烦,我又自己写了一个简单的,采 用定时器1进行输出。结果一上来,没反应,修改了很 多参数,还是没反应,然后将开发板例程写进芯片后, 有反应,仔细越多数据手册,没有问题,纠结一上午, 中午吃饭。吃完饭后,下午又开始试验,还是别人程序 有反映,自己程序,没反应。再看了看,开发板程序使 用的是TIM3,而我使用的是TIM1,于是又把我的程序将TIM1换成TIM3,点击调试运行,有反应。不会是高级 定时器只能干高级的任务吧,像输出方波这么简单的低 级任务他不惜的干?郁闷了半天。后来通过在网上查找,这个程序 以下为源代码,CC1进行比较输出,模式为翻转电平. 程序运行后,CC中断可以进去,PA.11的指示灯能闪, 但PA.08的指示一直为低电平,请教一下程序哪里错了??? void TIM1_CC_Init(void) { NVIC_InitTypeDef NVIC_InitStructure; GPIO_InitTypeDef GPIO_InitStructure;

/* 使能定时器 TIM1_CC 中断 */ NVIC_InitStructure.NVIC_IRQChannel = TIM1_CC_IRQChannel; NVIC_InitStructure.NVIC_IRQChannelPreemptionPrior ity = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); /* 配置 PA.11 为推挽输出 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIOA->;BSRR = GPIO_Pin_11; // 将PA.08配置为高电平 /* 配置 PA.08 为复用推挽输出 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); /* 预分频自动重载寄存器 */

课程设计—基于单片机的方波信号发生器汇总

微型计算机技术专业方向课程设计 任务书 题目名称:基于单片机的方波信号发生器 专业自动化班级122 姓名学号 学校: 指导教师: 2014年12月9日

课程设计任务书 课程名称:微型计算机技术 设计题目:基于单片机的方波信号发生器系 统硬件要求: 从P1.0口输出方波,分四个档:按下S1时输出1HZ,按下S2时输出10HZ,按下S3时输出1KHZ,按下S4时输出10KHZ的方波,要求误差少于1%, 软件设计: 1)主程序设计 2)各功能子程序设计 其他要求: 1、每位同学独立完成本设计。 2、依据题目要求,提出系统设计方案。 3、设计系统电路原理图。 1、调试系统硬件电路、功能程序。 2、编制课程设计报告书并装订成册,报告书内容(按顺序) (1)报告书封面 (2)课程设计任务书 (3)系统设计方案的提出、分析 (4)系统中典型电路的分析 (5)系统软件结构框图 (6)系统电路原理图 (7)源程序 (8)课设字数不少于2000字 成绩 评语

摘要 本实验是基于AT89C51单片机单片机所设计的,可以实现四种频率不同的方波信号的发生。本实验方波输出在89C51的P1.0口,分为四档,按下S1时输出1HZ,按下S2时输出10HZ,按下S3时输出1KHZ,按下S4时输出10KHZ的方波。 关键词:51单片机;方波;四档

目录 第一章前言 (5) 第二章系统总体设计 2.1系统介绍 (5) 2.2 硬件简介 (5) 2.3 软件简介 (5) 2.4 系统结构框图 (5) 第三章硬件电路 3.1硬件设计思想 (6) 3.2开关信号采集 (6) 3.3复位电路及晶振电路 (8) 3.4方波输出 (8) 第四章软件系统 4.1软件系统概述 (8) 4.2各部分程序 (10) 第五章总结 (15) 附录 (16)

基于MCS-51单片机的可调频率方波发生器课程设计报告[1]

单片机课程设计报告 设计题目:频率可调方波发生器 专业班级:生物医学工程09班 组长:李建华 组员:梁国锋,赖水兵,郭万劲,李建华2010 年 06 月 16日

摘要 本实验是基于PHILIPS AT89C51 单片机所设计的,可以实现键位与数字动态显示的一种频率可调方波发生器。通过键盘键入(10HZ-9999HZ)随机频率,使用七段数码管显示,每一个数码管对应一个键位。单片机对各个键位进行扫描,确定键位的输入,然后数码管显示输入的数值,方波发生器输出以数码管显示的数值为频率的方波。 关键词:单片机七段数码管键盘电路频率可调方波发生器

一、目的和功能 1.1 目的: 设计一种频率范围限定且可调的方波发生器,志在产生特定频率的方波。 1.2功能: 假设键盘是4*4的键盘,当键盘输入范围在10hz-9999hz的数字,单片机控制数码管显示该数值,并把该数值当做方波发生器的输入频率,单片机控制该方波发生器以该数值作为频率显示方波,从而得到我们想要频率的方波。 二、硬件设计 2.1 硬件设计思想 键盘的数字和键位关系固定,通过键盘输入产生频率,通过LED数码管显示出来,每一个数码管对应一个键位。基本设备是基于PHILIPS AT89C51单片机,外围设备采用的是4个七段数码管,PHILIPS A T89C51单片机,1个OSCILLOSCOPE 方波发生器,16个Button,若干电阻,电源电池。 2.2 部分硬件方案论述 2.2.1 七段数码管扫描显示方式的方案比较 方案一:静态显示方式:静态显示方式是指当显示器显示某一字符时,七段数码管的每段发光二极管的位选始终被选中。在这种显示方式下,每一个LED数码管显示器都需要一个8位的输出口进行控制。静态显示主要的优点是显示稳定,在发光二极管导通电流一定的情况下显示器的亮度大,系统运行过程中,在需要更新显示内容时,CPU才去执行显示更新子程序,这样既节约了CPU的时间,又提高了CPU的工作效率。其不足之处是占用硬件资源较多,每个LED数码管需要独占8条输出线。随着显示器位数的增加,需要的I/O口线也将增加。

单片机输出方波及显示宽度

桂林电子科技大学单片机最小应用系统 设 计 报 告 指导老师:吴兆华 学生:冯焕焕 学号:1000150301

前言 近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新.在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善. 单片机是指在一个芯片上集成了中央处理器、存储器和各种I/O接口的微型计算机,它主要面向控制性应用领域,因此又称为嵌入式微控制器。单片机诞生30多年以来,其品种、功能和应用技术都得到飞速的发展,单片机的应用已深入国民经济和日常生活的各个领域。 本次课程设计目的主要是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。 本课程设计实在学完单片机原理及课程之后综合利用所学单片机只是完成一个单片机应用系统设计并在实验室实现。该课程设计的主要任务是通过解决一、两个实际问题,巩固和加深“单片机原理和应用”课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法,提高电子电路的设计和实验能力,加深对单片机软硬知识的理解,获的初步的应用经验,为以后从事生产和科研工作打下一定的基础。 摘要

单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。单片机是20世纪中期发展起来的一种面向控制的大规模集成电路模块,具有功能强、体积小、可靠性高、价格低廉等特点,在工业控制、数据采集、智能仪表、机电一体化、家用电器等领域得到了广泛的应用,极大的提高了这些领域的技术水平和自动化程度。单片机应用的意义绝不仅限于它的广阔范围以及带来的经济效益,更重要的意义在于,单片机的应用正从根本上改变着传统的控制系统的设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分控制功能,现在使用单片机通过软件就能实现了。随着单片机应用的推广普及,单片机控制技术将不断发展,日益完善。本文是设计频率/脉冲宽度的测量与显示的硬件电路与程序的编制。它可以测量脉冲信号的脉冲宽度,频率等参数。利用定时器的门控信号GATE进行控制可以实现脉冲宽度的测量。利用定时器T0定时T1计数来测量由P3.5口输入的脉冲信号的频率。在单片机应用系统中,为了便于对LED显示器进行管理,需要建立一个显示缓冲区。显示时采用动态扫描的方式将将各位数的BCD码依序输入到LED中,并连续扫描2秒钟。通过采用STC89C52RC 单片机为中心器件来设计脉冲宽度测量器,并运用MCS—51/52单片机计数功能,选择好工作模式,对脉宽进行计数。在现有的单片机仿真机系统上掌握相关软硬件设计与调试知识,并在计算机上编写汇编程序调试运行。 关键词: 门控信号GATE;脉冲宽度;扩展测量范围;脉冲频率 ABSTRACT

单片机产生脉冲波

晶振12M任意占空比方波输出 信号发生器又称波形发生器,是一种常用的信号源,被广泛地应用于无线电通信、自动测量和自动控制等系统中。传统的信号发生器绝大部分是由模拟电路构成,借助电阻电容,电感电容、谐振腔、同轴线作为振荡回路产生正弦或其它函数波形。频率的变动由机械驱动可变元件完成,当这种模拟信号发生器用于低频信号输出往往需要的RC值很大,这样不但参数准确度难以保证,而且体积和功耗都很大,而由数字电路构成的低频信号发生器,虽然其低频性能好但体积较大,价格较贵。 在今天,随着大规模集成电路和信号发生器技术的发展,许多新型信号发生器应运而生。用信号发生器并配置适当接口芯片产生程控正弦信号,则可替代传统的正弦信号发生器,从而有利于测试系统的集成化、程控化和智能仪表的多功能化。而信号发生器的最大特点是面向控制,由于它集成度高、运算速度快、体积小、运行可靠、价格低,因此在数据采集、智能化仪器等技术中得到广泛的应用,从而使得信号发生器的应用成为工程技术多学科知识汇集的一个专门研究领域,其应用产生了极高的经济效益和社会效益。 如果是占空比任意,现在考虑12M晶振,所以机器周期Tcy为1 μs。 定时器工作方式1最长定时为65536×1×10-6=65.536ms 如果要输出周期为1s的任意占空比的方波。那可以把1s分为100份,每份中断一次。然后在中断里面计数(比如全局变量num)加一。加到100之后,表示一个周期结束。这样就可以控制每一份的电平的高低了。如果,占空比为30%,那么也就是num小于等于100×30%=30的时候,输出高电平,其余输出低电平就可以了。如果占空比为a(百分号的形式),那么也就是num小于等于100×a的时候输出高电平,其余输出低电平就可以了。 现在考虑定时器的初值如何设定,由于定时器需要在1s/100也就是10ms的时候进入一次中断进行判断。如果采用方式1,那么因为(216 ?X) ? 1 ? 10?6 = 10 ? 10?3, 所以定时器的初值为X=65536 – 1000. #include //头文件 sbit output=P1^1; //输出端 unsigned char num=1; //辅助计时 unsigned int a = 0.3;占空比a可以任意设定 void Init(void) //初始化函数 { //对于定时器一般初始化需要六步 TMOD=0x01; TH0=(65536-1000)/256; //(65536-1000)为定时器初值,定时10ms TL0=(65536-1000)%256; EA=1; ET0=1; TR0=1; } main() { Init(); while(1) { if(num<=100*a)output=1; //使占空比为a

单片机产生各种波形及其程序图

源程序如下: #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与单片机的接口 sbit S0=P3^0; //波形选择,每次按下将产生不同的波形 sbit S1=P3^1; //频率减 sbit S2=P3^2; //频率加 sbit S3=P3^3; //调节方波的占空比 uchar code SinTab[256]={0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa 5,0xa8,0xab,0xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5 ,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe 9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4,0xf5 ,0xf6,0xf7,0xf8,0xf9,0xfa,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,0x e9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda ,0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb 1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99 ,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0 x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51 ,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29,0 x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16 ,0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0 x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00

用8051单片机定时器产生乐谱的各种频率方波

电子科技大学微机单片机接口 设 计 报 告 指导老师: 学生: 学号:

电子科技大学机电工程学院2009年5月

单片机最小应用系统设计报告 一、设计题目 (1) 二、设计目的 (1) 三、系统硬件图 (2) 3.1 电路设计原理图 (2) 3.2 电路设计PCB图 (4) 四、程序流程图 (6) 五、系统说明与分析 (9) 5.1设计思路及设计过程 (9) 5.2系统结构及各部分说明 (9) 5.3系统连线说明 (16) 5.4系统参数分析 (17) 六、源程序 (17) 七、总结 (25) 八、参考文献 (26)

一、设计题目 用8051单片机定时器产生乐谱的各种频率方波,要求信号经过放大后由喇叭发出声音。可选取某段音乐令单片机连续播放。 二、设计目的 1、通过单片机最小系统的设计,了解常用单片机应用系统开发手段和过程,进一步熟悉和掌握单片机的结构和工作原理,并能初步掌握一般单片机控制系统的编程和应用,从而进一步加深对单片机理论知识的理解。 2、掌握单片机内部功能模块的应用:如定时器、计数器、中断系统、I/O口等。 3、熟悉基本硬件电路的设计与制作。 4、掌握以单片机核心的电路设计的基本方法和技术,了解单片机的基本外围电路的设计和矩阵按键电路及数码管驱动电路的设计。 5、学习UVISION对单片机的编程和调试方法。 6、学习PROTEL软件的使用,掌PROTEL的基本用法,懂得绘制简单得原理图及其PCB的绘制。 7、通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。

三、系统硬件图 3.1 电路设计原理图 整个设计主要包括单片机基本的晶振电路,按键复位电路。具体的电路图如下图所示: 对于不同的电路模块进行了分别画图: 下图是最小系统模块。

单片机产生可调方波(c语言)

用单片机产生频率可调的方波信号。输出方波的频率范围为1Hz-200Hz,频率误差比小于0.5%。要求用“增加”、“减小”2个按钮改变方波给定频率,按钮每按下一次,给定频率改变的步进步长为1Hz,当按钮持续按下的时间超过2秒后,给定频率以10 次/秒的速度连续增加(减少),输出方波的频率要求在数码管上显示。用输出方波控制一个发光二极管的显示,用示波器观察方波波形。开机默认输出频率为5Hz。 3.5.1模块1:系统设计 (1)分析任务要求,写出系统整体设计思路 任务分析:方波信号的产生实质上就是在定时器溢出中断次数达到规定次数时,将输出I/O管脚的状态取反。由于频率范围最高为200Hz,即每个周期为5ms(占空比1:1,即高电平2.5ms,低电平2.5 ms),因此,定时器可以工作在8位自动装载的工作模式。 涉及以下几个方面的问题:按键的扫描、功能键的处理、计时功能以及数码管动态扫描显示等。问题的难点在按键连续按下超过2S的计时问题,如何实现计时功能。 系统的整体思路:主程序在初始化变量和寄存器之后,扫描按键,根据按键的情况执行相应的功能,然后在数码显示频率的值,显示完成后再回到按键扫描,如此反复执行。中断程序负责方波的产生、按键连续按下超过2S后频率值以10Hz/s递增(递减)。 (2)选择单片机型号和所需外围器件型号,设计单片机硬件电路原理图 采用MCS51系列单片机At89S51作为主控制器,外围电路器件包括数码管驱动、独立式键盘、方波脉冲输出以及发光二极管的显示等。 数码管驱动采用2个四联共阴极数码管显示,由于单片机驱动能力有限,采用74HC244作为数码管的驱动。在74HC244的7段码输出线上串联100欧姆电阻起限流作用。 独立式按键使用上提拉电路与电源连接,在没有键按下时,输出高电平。发光二极管串联500欧姆电阻再接到电源上,当输入为低电平时,发光二极管导通发光。

51单片机和dac0832输出方波、矩形波和正弦波由液晶1602显示的c语言程序

显示频率,幅度可调,可产生四种波形,正弦波,方波,锯齿波,三角波,希望你能喜欢,给你发了一张效果图,喜欢的话别忘了采纳我的回答啊 #include<> #define uchar unsigned char #define uint unsigned int #define DAdata P0 //DA数据端口 sbit DA_S1= P2^0; // 控制DAC0832的8位输入寄存器,仅当都为0时,可以输出数据(处于直通状态),否则,输出将被锁存 sbit DA_S2= P2^1; // 控制DAC0832的8位DAC寄存器,仅当都为0时,可以输出数据(处于直通状态),否则,输出将被锁存 sbit key= P3^2; uchar wavecount; //'抽点'计数 uchar THtemp,TLtemp;//传递频率的中间变量 uchar judge=1; //在方波输出函数中用于简单判别作用 uchar waveform; //当其为0、1、2时,分别代表三种波 uchar code freq_unit[3]={10,50,200}; //三种波的频率单位 uchar idata wavefreq[3]={1,1,1}; //给每种波定义一个数组单元,用于存放单位频率的个数 uchar code lcd_hang1[]={"Sine Wave " "Triangle Wave " "Square Wave " "Select Wave: " "press key! "}; uchar idata lcd_hang2[16]={"f= Hz "}; uchar code waveTH[]={ 0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xec,0xf6,0xf9,0xfb,0xfc,0xfc,0xfd,0xfd,0xfd,0xfe}; uchar code waveTL[]={ 0x06,0x8a,0x10,0x4e,0x78,0x93,0xa8,0xb3,0xbe,0xc6, //正弦波频率调整中间值 0xac,0xde,0x48,0x7a,0x99,0xaf,0xbb,0xc8,0xd0,0xde, //三角波频率调整中间值 0x88,0x50,0x90,0x32,0x34,0xbe,0x4a,0xa3,0xe5,0x2c}; /******************************************************************** *****************************/ uchar code triangle_tab[]={ //每隔数字8,采取一次 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,0x40,0x48,0x50,0x58,0x60,0x68 ,0x70,0x78, 0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8,0xc0,0xc8,0xd0,0xd8,0xe0,0xe8, 0xf0,0xf8,0xff, 0xf8,0xf0,0xe8,0xe0,0xd8,0xd0,0xc8,0xc0,0xb8,0xb0,0xa8,0xa0,0x98,0x90,0 x88,0x80, 0x78,0x70,0x68,0x60,0x58,0x50,0x48,0x40,0x38,0x30,0x28,0x20,0x18,0x10 ,0x08,0x00};

用单片机进行方波发生器的设计

湖南文理学院课程设计报告 课程名称:单片机课程设计报告 院部:电信学院 专业班级:自动化05101班 学生姓名:刘明彪 指导教师:杨民生 完成时间:2008年06月17日 报告成绩:____________________________ __ 评阅意见: 评阅教师日期

目录 一、概述 ------------------------------------------------------------------ 3 1.1、设计内容 ------------------------------------------------------ 3 1.2、设计的基本要求 ------------------------------------------------ 3 二、方波发生器设计方案 ---------------------------------------------------- 4 2.1、方案介绍 ------------------------------------------------------ 4 2.2、方波发生器的原理与功能 ---------------------------------------- 4 三、系统的硬件设计 -------------------------------------------------------- 6 3.1、单片机最小系统 ------------------------------------------------ 6 3.2、小键盘接口电路 ------------------------------------------------ 7 3.3、LED显示电路--------------------------------------------------- 7 四、系统的软件设计 -------------------------------------------------------- 8 4.1、主程序 -------------------------------------------------------- 8 4.2、系统初始化子程序 ---------------------------------------------- 9 4.3、显示子程序 ---------------------------------------------------- 9 4.4、键盘扫描程序 ------------------------------------------------- 10 4.5、定时器中断子程序 --------------------------------------------- 11 五、调试与性能分析 ------------------------------------------------------- 12 5.1硬件调试------------------------------------------------------- 12 5.2软件调试------------------------------------------------------- 12 六、设计体会 ------------------------------------------------------------- 13 参考文献 ----------------------------------------------------------------- 14 附录A:基于单片机方波发生器的原理图-------------------------------------- 15 附录B:基于单片机方波发生器的程序清单------------------------------------ 16

单片机产生方波、锯齿波、三角波程序

单片机产生方波、锯齿波、三角波程序 #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与单片机的接口 sbit S0=P3^0; //波形选择,每次按下将产生不同的波形 sbit S1=P3^1; //频率减 sbit S2=P3^2; //频率加 sbit S3=P3^3; //调节方波的占空比 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,0xcc,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xe c,0xee,0xef,0xf1,0xf2,0xf4,0xf5 ,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x ff,0xff,0xff,0xfe,0xfd ,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0x e5,0xe3,0xe1,0xde,0xdd,0xda ,0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xae,0x ab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99 ,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x 63,0x60,0x5d,0x5a,0x57,0x55,0x51 ,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29,0x27,0x25,0x 22,0x20,0x1e,0x1c,0x1a,0x18,0x16 ,0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x 01,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02 ,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0 x0b,0x0d,0x0e,0x10,0x11,0x13,0x15

单片机方波脉冲计数控制 设计说明书

桂林电子科技大学微机综合设计 设 计 报 告 指导老师:吴兆华 学生:fdb 学号:1000150310

目录 一、设计题目 (2) 二、设计内容与要求 (2) 三、设计目的和意义 (2) 四、设计任务分析 (2) 五、系统硬件电路 (3) 5.1 电路原理图绘制 (7) 5.1.1 电路图绘制要点 (7) 5.1.2 硬件电路制作 (8) 5.2 硬件电路说明 (8) 5.2.1 单片机基本知识 (8) 5.2.2 AT89S51单片机介绍 (11) 5.2.3最小系统控制部分 (14) 5.2.4 数码管显示电路部分 (17) 六、软件设计 (20) 6.1程序流程图 (20) 6.2程序源代码 (22) 八、调试过程 (27) 8.1 硬件调试 (27) 8.1.1 静态调试 (27) 8.1.2 动态调试 (27) 8.2 软件调试 (29) 8.3 调试收获与改进意见 (29) 九、设计总结 (30) 十、参考文献 (31)

一、设计题目 用8031单片机控制可测方波1~100Hz,并显示每分钟计数的脉冲。 二、设计内容与要求 设计方波脉冲控制显示系统,用51单片机控制输出方波输出,频率范围为1~100Hz,并用数码管显示每分钟计数的脉冲数和当前频率,用两个按键分别控制频率的增减,同时用一个复位键,可以快速回到起始状态。 三、设计目的和意义 1、通过方波脉冲控制系统的设计,将单片机原理课上所学的知识融会贯通、加深理解。培养独立设计、制作和调试单片机应用系统的能力,熟悉单片机应用系统的软硬件调试方法和系统的设计开发过程,为今后的工作实践活动夯实基础。 2、通过方波脉冲计数控制系统的设计,掌握51系列单片机的内部定时/计数器的功能和使用方法;掌握单片机外部中断的应用和程序的编程方法;掌握数码管的使用和编程方法。通过设计方案分析、选择和设计,设计并搭制硬件电路,编写控制程序等一系列工作,掌握单片机应用的基本方法,更重要的是学会一种科学的解决问题的逻辑思维,和完成任务的方法。 3、培养一个解决困难问题的积极心态,为今后在工作上奠定坚实的基础。 四、设计任务分析 设计题目要求用单片机控制可测方波脉冲1~100Hz,并显示每分钟计数的脉冲数。由要求可知道,任务包括方波的产生和方波脉冲数的显示两个部分。方波由单片机内部定时器来产生,通过改变其定时初值来改变方波的频率,在硬件电路中可利用按键来控制频率的增减。方波的波形利用示波器来观察。 由此,可有几个方案来实现题目的要求。 方案一:51单片机最小系统,外接上一个数码管显示电路用以显示每分钟的脉冲数。数码管的断码选择端直接与单片机的P0口连接,位码选择端与P2口连接。利用改变定时初值的方式来改变方波频率。这个方案的优点是硬件电路简单,节省元器件,程序编写容易。但是缺点也明显,只用一个数码管,无法显示当前的脉冲频率,而且无法用硬件实现频率的+1,-1的变化。虽然实现了题目的基本功能,但是功能简单有限,也就达不到课程设计的目的了。以下是方案一的电路图:

51单片机方波发生器(LCD显示)

#include #define uint unsigned int #ifndef LCD_CHAR_1602_2005_4_9 #define LCD_CHAR_1602_2005_4_9 #include sbit pwm=P1^0; sbit LcdRs = P2^0; sbit LcdRw = P2^1; sbit LcdEn = P2^2; sfr DBPort = 0x80; //P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口 //内部等待函数************************************************************************** unsigned char LCD_Wait(void) { LcdRs=0; LcdRw=1; _nop_(); LcdEn=1; _nop_(); //while(DBPort&0x80);//在用Proteus仿真时,注意用屏蔽此语句,在调用GotoXY()时,会进入死循环, //可能在写该控制字时,该模块没有返回写入完备命令,即DBPort&0x80==0x80 //实际硬件时打开此语句 LcdEn=0; return DBPort; } //向LCD写入命令或数据************************************************************ #define LCD_COMMAND 0 // Command #define LCD_DATA 1 // Data #define LCD_CLEAR_SCREEN 0x01 // 清屏 #define LCD_HOMING 0x02 // 光标返回原点 void LCD_Write(bit style, unsigned char input) { LcdEn=0; LcdRs=style; LcdRw=0; _nop_(); DBPort=input; _nop_();//注意顺序 LcdEn=1; _nop_();//注意顺序 LcdEn=0; _nop_();

基于单片机控制的频率可调的方波信号发生器

基于单片机控制的频率可调的方波信号发生器 用单片机产生频率可调的方波信号。输出方波的频率范围为1Hz-200Hz,频率误差比小于0.5%。要求用“增加”、“减小”2个按钮改变方波给定频率,按钮每按下一次,给定频率改变的步进步长为1Hz,当按钮持续按下的时间超过2秒后,给定频率以10次/秒的速度连续增加(减少),输出方波的频率要求在数码管上显示。用输出方波控制一个发光二极管的显示,用示波器观察方波波形。开机默认输出频率为5Hz。 3.5.1模块1:系统设计 (1)分析任务要求,写出系统整体设计思路 任务分析:方波信号的产生实质上就是在定时器溢出中断次数达到规定次数时,将输出I/O管脚的状态取反。由于频率范围最高为200Hz,即每个周期为5ms(占空比1:1,即高电平2.5ms,低电平2.5 ms),因此,定时器可以工作在8位自动装载的工作模式。 涉及以下几个方面的问题:按键的扫描、功能键的处理、计时功能以及数码管动态扫描显示等。问题的难点在按键连续按下超过2S的计时问题,如何实现计时功能。 系统的整体思路:主程序在初始化变量和寄存器之后,扫描按键,根据按键的情况执行相应的功能,然后在数码显示频率的值,显示完成后再回到按键扫描,如此反复执行。

中断程序负责方波的产生、按键连续按下超过2S后频率值以10Hz/s递增(递减)。 (2)选择单片机型号和所需外围器件型号,设计单片机硬件电路原理图 采用MCS51系列单片机At89S51作为主控制器,外围电路器件包括数码管驱动、独立式键盘、方波脉冲输出以及发光二极管的显示等。 数码管驱动采用2个四联共阴极数码管显示,由于单片机驱动能力有限,采用74HC244作为数码管的驱动。在74HC244的7段码输出线上串联100欧姆电阻起限流作用。 独立式按键使用上提拉电路与电源连接,在没有键按下时,输出高电平。发光二极管串联500欧姆电阻再接到电源上,当输入为低电平时,发光二极管导通发光。

基于单片机方波发生器课程设计报告

河池科技大学 单片机课程设计 题目____________________ 姓名____________________ 学院____________________ 专业____________________ 学号____________________ 指导教师____________________ 成绩____________________ 二〇一二年五月二十二日制

湖南科技大学本科生课程设计(论文) 摘要 本课程设计设计的是一种AT89C51单片机构成的波形发生器,可产生方波、三角波、正弦波、锯齿波等多种波形,波形的周期可用程序改变,并可根据需要选择单极性输出或双极性输出,具有线路简单、结构紧凑、性能优越等特点。文章给出了源代码,通过仿真测试,其性能指标达到了设计要求。 关键词:单片机;DAC;信号发生器

目录 第一章系统功能要求: (2) 1.1、设计内容 (2) 1.2设计原理 (2) 第二章方波发生器设计方案论证 (3) 2.1 方案的设计与选择 (3) 第三章系统的硬件电路的设计 (4) 3.1系统硬件原理 (4) 3.2芯片端口资源分配表 (4) 第四章软件设计 (5) 4.1 主程序 (5) 4.2系统初始化子程序 (5) 4.3键盘中断子程序 (5) 4.4 定时器中断子程序 (6) 第五章、系统调试 (7) 第六章、结果分析 (9) 参考文献 (10) 附件1 (11) 附录2 基于单片机方波发生器的器件清单 (16)

第一章系统功能要求: 用单片机产生频率可调的方波信号。输出方波的频率范围为1Hz-200Hz,频率误差比小于0.5%。要求用4 个按钮改变方波给定频率,按钮每按下一次,给定频率改变一次。用示波器观察方波波形。 1.1、设计内容 本课程设计是设计一个方波发生器,用4个按钮控制方波的频率以及占空比。 1.2设计原理 AT89C51单片机具有组成微型计算机的各部分部件:CPU、RAM、I/O定时器/计数器以及串行通讯接口等。只要将AT89C51的ROM,接口电路,再配置键盘及其接口,显示器及其接口,数模转换及波形输出,指示灯及其接口等四部分,即可构成所需波形发生器。其信号发生器构成原理框图如图1所示。 图1 –方波信号发生器设计原理框图 在信号发生器中,只用到片内中断请求,即是在AT89C51输出一个波形采样点信号后,接着启动定时器,在定时器未产生中断之前,AT89C51等待,直到定时器计时结束,产生中断请求,AT89C51响应中断,接着输出下一个信号波形,如此循环。当有按键按下时,产生外部中断请求信号,CPU暂停当前工作,处理中断请求,重新装入定时初值,开始定时。

相关文档
相关文档 最新文档