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

合集下载

一种基于MCS-51单片机的数字可调脉冲发生器的设计实现

一种基于MCS-51单片机的数字可调脉冲发生器的设计实现

2系统需求分析与总体设计
以及显示灯 。 本文所设计的系统主要 是利用单片机控制脉冲发生器 分有限 , 输 出电流值 的大小也十分 有效 , 因而一般 采用连接运 算放 产生脉冲 , 利用可调 式的数字 电位器 的控制实现对脉冲的幅值 、 频 大 电路的形式, 来对 脉冲信号进行放大 。 本系统 所选 择的运算 放大 率 以及宽度的控制。 本 文利用5 1 单片机 以及A D C 模数转换器来实现 器为L M2 9 0 4 通过计算能够在满足输 出电压幅值 的情况下不失真 。 产生数字 脉冲信 号, 并 由L E D液晶显示。 3 . 3 A/ D转 换 模 块 选 型
设计 开发
I数 目啦 术
I与 应 用
种基于 MC S 一 5 1 单片机 的数字可调脉冲发生器的设计实现

高 敏
( 江苏商贸职业学院 江苏南通 2 2 6 0 1 1 )
摘要 : 脉 冲发生 器在 自 动 化控制领域 有着非 常广泛 的应用, 而传 统的脉冲发 生器操 作复杂且 造价较 高, 并且精确 度不能 够保证, 本 ̄ 1 7 J , MC S 一 5 1 单 片机 为基础 设计 出了一种 可调 式的数 字脉 冲发 生器, 对幅值 、 频 率和输 出宽度进行 调整且输 出精度 高, 不需要人 工调节 自动化程度 较 高。 可 以应 用在 很 多 实用到 脉冲发 生 器的场合 , 并且造 价较 为低 廉 。 为可调 式脉 冲发 生器的设计 与应 用提供 可具体 实践 的技术 解决 方案 。 关键 词: 可调式数 字脉 冲发 生器 MC S 一 5 1 A D C 0 8 0 9 L E D 显 示器 中图分 类号: T N 7 8 2 文献标识 码: A 文章编 号: 1 0 0 7 — 9 4 1 6 ( 2 0 1 6 ) 0 8 — 0 2 0 4 — 0 1

基于51单片机的波形发生器的设计

基于51单片机的波形发生器的设计

基于51单片机的波形发生器的设计引言:波形发生器是一种可以生成特定频率、特定波形的电子设备。

它广泛应用于科研、教学和产业生产等领域,可以用于信号发生、信号测试、信号仿真等各种任务。

本文将介绍一个基于51单片机的波形发生器的设计方案。

一、系统硬件设计1.系统框架该波形发生器系统采用51单片机作为主控芯片,主要包括三个部分:信号生成模块、显示模块和控制模块。

其中,信号生成模块负责产生各种特定频率、特定波形的信号;显示模块用于展示信号参数等相关信息;控制模块负责接收用户输入并对波形发生器进行控制。

2.硬件连接信号生成模块与主控芯片之间通过I/O接口相连,用于传输数据和控制信号。

显示模块通过串口与主控芯片相连,用于显示相关信息。

控制模块通过按键、旋钮等输入设备与主控芯片相连,用于接收用户输入。

二、系统软件设计1.系统初始化在系统初始化阶段,主控芯片需要完成引脚、定时器、串口等相关资源的初始化工作。

同时,还需要设置一些全局变量和参数的初始值。

2.信号生成模块信号生成模块通过定时器产生特定频率的时钟信号,并根据用户输入的参数生成相应的信号波形。

主控芯片利用定时器中断函数进行波形生成,并将生成的信号数据存放在缓冲区中。

3.显示模块显示模块负责将信号波形显示在液晶屏上,并显示相关参数,如频率、幅度等。

主控芯片将信号数据从缓冲区中读取,并通过串口发送给显示模块进行显示。

4.控制模块控制模块负责接收用户输入的控制指令,并通过按键、旋钮等输入设备完成用户交互。

主控芯片通过中断函数实时读取用户输入并进行相应的控制操作。

三、系统功能设计1.频率设置功能用户可以通过控制模块设置波形发生器的频率,可以选择固定频率或者可调频率。

利用定时器时钟频率与定时器中断的时间间隔来控制波形的频率。

2.波形选择功能用户可以通过控制模块选择不同的波形类型,如正弦波、方波、三角波、脉冲波等。

主控芯片根据用户指令设置波形参数,并生成相应的波形信号。

方波发生器设计(课程设计报告)

方波发生器设计(课程设计报告)

课程设计(论文)说明书题目:方波发生器的设计院(系):专业:电子信息工程学生姓名:学号:指导教师:职称:20 年月日摘要本次课程设计以AT89S51单片机为核心器件,外围采用按键作为控制以及LCD1602作为显示器所设计的方波发生器。

该方波发生器能实现0-1kHz频率范围、占空比可调的方波输出。

其核心技术为单片机并行端口的应用、单片机定时器中断应用和数字分离的ASCII码液晶显示技术。

采用8个独立的按键组成控制模块,操作方便,按键控制模式可以通过程序进行设定;显示模块则由液晶屏1602构成,能显示出实时输出方波的频率及占空比,直观明了。

设计过程中遇到的问题是输出方波的频率、占空比与液晶显示数据存在误差,通过不断调试程序,合理编写中断服务程序来修正误差提高精确度,达到设计要求。

该方波发生器具有线路简单、结构紧凑、价格低廉、性能优越等优点。

关键词:方波发生器;AT89S51单片机;键盘;LCD1602AbstractThe course design AT89S51 microcontroller as the core device, the external use of buttons as a control and LCD1602 displays are designed as a square wave generator. The square wave generator to achieve 0-1kHz frequency range, adjustable duty cycle square wave output. The core technology for the application of single chip parallel port, SCM applications and digital timer interrupt ASCII code separate liquid crystal display technology. 8-independent component control module buttons, easy to operate key control mode can be set through the program; display module constituted by the LCD1602, can show real-time output frequency and duty cycle square wave, intuitive and clear. Problems encountered in the design process is the output square wave frequency, duty cycle and LCD display data errors exist, through continuous commissioning process, a reasonable write interrupt service routine to correct the error to improve accuracy, to meet the design requirements. The square wave generator has a simple circuit, compact, low cost, superior performance advantages.Keywords: Square wave generator;AT89S51 microcontroller;keyboard;liquid crystal 1602目录引言 (4)1 概述 (4)1.1 设计内容 (4)1.2 设计的基本要求 (4)2 方波了生器设计方案 (4)2.1 方案介绍 (4)2.2 方波发生器的原理与功能 (5)3 系统的硬件设计 (5)3.1 单片机最小系统 (5)3.2 最小键盘接口电路 (6)3.3 液晶显示电路 (6)4 系统的软件设计 (7)4.1 主程序 (7)4.2 显示子程序 (7)4.3 键盘扫描程序 (7)4.3.1 频率调节 (7)4.3.2占空比调节 (7)4.4 定时中断服务程序 (7)5 调试与性能分析 (8)5.1 硬件调试 (8)5.2 软件调试 (8)5.3性能及误差分析 (8)6结论 (8)谢辞 (10)参考文献 (11)附录 (12)引言本次课程设计的目的是通过在“单片机原理及应用”课堂上学习的知识,以及查阅资料,培养一种自学的能力完成课程设计。

基于51单片机的波形发生器设计报告

基于51单片机的波形发生器设计报告

基于51单片机的波形发生器设计报告波形发生器是一种电子设备,用于产生各种不同类型和频率的电信号波形。

基于51单片机的波形发生器设计是一种常用的工程设计。

下面是一个关于基于51单片机的波形发生器设计的报告,详细介绍了设计的原理、步骤、电路、程序和性能。

一、设计原理:二、设计步骤:1.确定波形发生器的输出频率范围和分辨率要求。

2.选择适当的定时器/计数器模块来实现频率的计时和控制。

3.设计电路,包括定时器/计数器模块、晶振、滤波电路和输出接口等。

4.编写程序,配置定时器/计数器模块的工作模式、计数值和中断服务程序。

5.调试和测试电路和程序,确保波形发生器正常工作并满足设计要求。

三、电路设计:1.定时器/计数器模块:选择一个合适的定时器/计数器模块,如51单片机的定时器/计数器T0或T1、根据设计要求,设置工作模式、计数器模式和计数值。

2.晶振:选择适当的晶振频率,一般为11.0592MHz,将晶振连接到单片机的晶振引脚。

3.滤波电路:根据需要,设计一个滤波电路来滤除不需要的高频噪声和杂散信号。

4.输出接口:设计一个输出接口电路来连接单片机和外部电路,使用电平转换电路将单片机的低电平(0V)输出转换为所需的电平电压。

四、程序设计:1.配置定时器/计数器模块的工作模式和计数值,设置中断服务程序。

2.在中断服务程序中,根据设计要求生成矩形波信号,并将信号输出到输出端口。

3.在主程序中,初始化单片机和定时器/计数器模块,使波形发生器开始工作。

4.在主循环中,可以设置按键输入来改变输出频率,通过调整计数值来实现不同的频率输出。

五、性能评估:1.输出频率范围:根据设计要求,测试波形发生器的最低和最高输出频率是否在设计范围内。

2.分辨率:对于指定频率范围,测试波形发生器的输出频率的分辨率,即最小可调节的频率。

3.稳定性:测试波形发生器的输出信号的稳定性和准确度,是否有漂移和偏差。

4.噪声:测试波形发生器的输出信号是否有杂散噪声和幅度波动。

基于51单片机的多功能信号发生器毕业设计报告

基于51单片机的多功能信号发生器毕业设计报告

基于51单片机的多功能信号发生器毕业设计报告-河南理工大学河南理工大学《微机原理与单片机接口技术》课程设计报告多功能信号发生器设计2013年 1月 10 日摘要本次设计是一个多功能信号发生器,可以产生、方波、锯齿波和三角波。

函数信号发生器的设计方法有多种,利用单片机设计的函数信号发生器具有编程灵活,功能更以扩充等实际的优点。

设计原理图如下图所示,其中单片机通过软件对键盘输入的频率数值进行处理,处理结果送与D/A转换部分实现数/模转换,输出的电流再经过电流/电压转换环节,进而形成模拟电压波形,最后经过过载--保护电路输出。

同时在数码管内显示该频率数值。

波形的切换可以通过按键直接实现。

在编程语言上,我们选择自身比较熟悉的C语言,这样在后期波形的调试及与硬件衔接方面更容易发挥出自身优势。

根据设计的要求,对各种波形的频率和幅度进行程序的编写,并将所写程序装入单片机的程序存储器中。

在程序运行中,当接收到来自外界的命令,需要输出某种波形时再调用相应的中断服务子程序和波形发生程序,经电路的数/模转换器和运算放大器处理后,从信号发生器的输出端口输出。

经过设计及后期长时间的调试,设计的所有功能均已实现:(1)具有产生方波、锯齿波、三角波三种周期性波形的功能。

(2)输出波形的频率范围为100Hz,1kHz;频率步进间隔?100Hz。

(3)输出波形幅度范围0,5V,可按步进0.1V(峰-峰值)调整。

(4)具有显示输出波形的类型、周期和幅度的功能。

关键词:单片机,函数发生器,共阴极数码管目录第一章绪论...................................................................... .. (3)1.1选题背景及其意义 ..................................................................... (3)1.2单片机概述 ..................................................................... . (3)1.3信号发生器的分类 ..................................................................... . (4)1.4 研究内容...................................................................... (4)--第二章方案的设计与选择 (4)2.1 方案的比较 ..................................................................... (4)2.2 设计原理...................................................................... (4)2.3 设计思想...................................................................... (5)2.4 设计功能...................................................................... ...................................................... 5 第三章硬件设计 ..................................................................... . (5)3.1 硬件原理框图 ..................................................................... .. (6)3.2 主控电路...................................................................... (6)3.3 数/模转换电路...................................................................... (7)3.4 按键接口电路 ..................................................................... .. (7)3.5 时钟电路...................................................................... ...................................................... 7 第四章ADC0832内部结构及配置 .. (7)4.1D/A转换器DAC0832 ................................................................ ........................................... 8 第五章实验结果 ..................................................................... . (9)5.1实验输出波形 ..................................................................... ................................................ 9 第六章设计总结 ..................................................................... (9)参考文献 ..................................................................... (10)附录 ..................................................................... .. (10)1元件清单...................................................................... .. (10)2源程序...................................................................... (11)第一章绪论1.1选题背景及其意义信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。

单片机课程设计 频率发生器.doc

单片机课程设计 频率发生器.doc

微型计算机技术专业方向设计任务书题目名称:基于MCS-51单片机的频率计的设计专业自动化班级姓名学号学校:指导教师:课程设计任务书课程名称:微型计算机技术设计题目:基于MCS-51单片机的频率计的设计系统硬件要求:1、最小系统设计:AT89C51单片机为本设计的控制器,包括外扩ROM,RAM各32KB (其大小由设计者自己设计),系统时钟电路、复位电路等构成的最小系统;2、频率计使用定时器的计数方式,记录频率的个数并显示;显示部分为LED动态显示设计;并有键盘设计;3、接口电路的设计:设计者扩展一个并行接口〔8155或8255〕,键盘设计由设计者根据需要设计键盘的数量,显示采用LED显示,显示电路也根据显示的内容设计;4、有开机显示状态(如显示88....);软件设计:1)主程序设计(包括初始化芯片,定时器,中断以及SP指针等);2)各功能子程序设计,键盘子程序、\显示子程序设计,定时,中断程序等;其他要求:1、每位同学独立完成本设计。

2、依据题目要求,提出系统设计方案。

3、设计系统电路原理图。

1、调试系统硬件电路、功能程序。

2、编制课程设计报告书并装订成册,报告书内容(按顺序)(1)报告书封面(2)课程设计任务书(3)系统设计方案的提出、分析(4)系统中典型电路的分析(5)系统软件结构框图(6)系统电路原理图(7)源程序(8)课设字数不少于2000字成绩评语目录第一章引言 (4)第二章方案论证 (5)2.1 采波选择方案 (5)2.2 扩展I/O口芯片选择 (5)2.3 理论分析与计算 (5)第三章系统硬件设计 (5)3.1 频率发生器的设计原理 (5)3.2 整体结构设计 (5)3.3 频率发生器的主机电路设计 (6)3.4 系统整体原理图 (11)第四章系统软件设计 (11)4.1 测频软件实现原理 (11)4.2程序清单 (11)总结 (12)参考文献 (12)附录 (13)附录一:电路原理图 (13)附录二:软件流程图 (13)附录三:程序设计 (14)第1章引言随着电子信息产业的发展,信号作为其最基础的元素,其频率的测量在科技研究和实际应用中的作用日益重要,而且需要测频的范围也越来越宽。

基于51单片机的信号发生器设计报告

基于51单片机的信号发生器设计报告

基于51单片机的信号发生器设计报告二零一四年十二月十一日摘要根据题目要求以及结合实际情况,本文采用一种以AT89C51单片机为核心所构成的波形发生器,可产生方波、三角波、正弦波、锯齿波等多种波形,波形的频率可用程序改变,并可根据需要选择单极性输出或双极性输出,具有线路简单、结构紧凑、性能优越等特点。

本设计经过测试,性能和各项指标基本满足题目要求。

关键词:信号发生器 DAC0832芯片 LM358运放 89C51芯片目录摘要...................................................................... 目录...................................................................... 第一章绪论.................................................................1.1单片机概述...........................................................1.2信号发生器的概述和分类..............................................1.3问题重述及要求....................................................... 第二章方案的设计与选择...................................................2.1方案的比较...........................................................2.2设计原理 .............................................................2.3设计思想 .............................................................2.4实际功能 ............................................................. 第三章硬件设计............................................................3.1硬件原理框图.........................................................3.2主控电路 .............................................................3.3数、模转换电路.......................................................3.4按键接口电路.........................................................3.5时钟电路 .............................................................3.6显示电路 ............................................................. 第四章软件设计............................................................4.1程序流程图........................................................... 参考文献.................................................................... 附录1 电路原理图 .......................................................... 附录2 源程序............................................................... 附录3 器件清单......................................................第一章 绪论1.1 单片机概述单片机(Single chip microcomputer )是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU 、随机存储器RAM 、只读存储器ROM 、多种I/O 口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。

基于51单片机的方波频率计

基于51单片机的方波频率计

基于51单片机的简易方波频率计1.测频原理:在单位时间内对被测信号进行计数。

2.可扩展性:(1)放大整形模块:放大电路是对待测信号的放大,降低对待测信号幅度的要求。

整形电路是对一些不是方波的待测信号转化成方波信号,便于测量。

添加了放大整形模块后可测更多波形对象。

(2)分频模块:考虑单片机外部计数,使用12 MHz时钟时,最大计数速率为500 kHz(理论值,实测为490kHz左右),因此需要外部分频。

分频电路用于扩展单片机频率测量范围,并实现单片机频率测量使用统一信号,可使单片机测频更易于实现,而且也降低了系统的测频误差。

(3)电源模块:为整个系统提供合适又稳定的电源,主要为单片机、信号调理电路以及分频电路提供电源,电压要求稳定、噪声小及性价高的电源。

(4)其他:显示部分程序可自行设计,达到通过按键开关功能,按键自行选档(显示单位)功能等。

3.软件系统:(1)编写环境:keil (u4)(2)烧写程序:STC-ISP (v6.85H)-- STC89C52RC/LE52RC(型号选择)(3)软件代码:---------------------------------------------------------------------------------------------------------------------------------#include<reg52.h>#define uint unsigned int#define uchar unsigned charsbit wr=P3^6; //数码管段选sbit lcdrs=P2^5; //数据/命令选择端sbit lcdrw=P2^6; //读写选择端sbit lcden=P2^7; //使能信号Euchar code table[]="KHz";uchar a[5];uint n=0;uint t=0;unsigned long f;void delay(uint z) //延时函数{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void write_com(uchar com) //1602液晶操作写指令函数{lcdrs=0;lcdrw=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;}void write_data(uchar date) //1602液晶操作写数据函数{lcdrs=1;lcdrw=0;P0=date;delay(5);lcden=1;delay(5);lcden=0;}void init() //液晶显示初始化函数{wr=0; //关数码管段选lcden=0;write_com(0x38); //选择16×2屏幕显示write_com(0x0c); //开显示总开关光标不显示write_com(0x06); //光标右移屏幕所有文字不整体右移 write_com(0x01); //清屏write_com(0x80+0x01); //指针选择01位置}void display() //显示函数{uint i;init(); //调用初始化函数a[4]=f/10%10; //获取需要显示的各位数字a[3]=f/100%10;a[2]=f/1000%10;a[1]=f/10000%10;a[0]=f/100000;for(i=0;i<5;i++){write_data(a[i]+'0'); //写入各位数字if(i==2)write_data('.'); //写入小数点'.'}for(i=0;i<3;i++)write_data(table[i]); //逐位写入显示单位KHz}void main() //主函数{TMOD=0x51; //设置工作方式为T0计时,T1计数 TR0=0;TR1=0;TH0=(65536-50000)/256; //T0计时为溢出一次50msTL0=(65536-50000)%256;TH1=0; //T1从零开始计数TL1=0;EA=1; //开总中断ET0=1; //开T0中断ET1=1; //开T1中断TR0=1; //启动T0、T1TR1=1;write_com(0x01); //清屏while(1);}void T_0() interrupt 1 //T0计时中断服务程序{TH0=(65536-50000)/256; //计时初值重装TL0=(65536-50000)%256;t++; //计出50ms次数增长if(t==20) //计时50×20=1000(ms)=1(s){TR1=0; //关闭T0、T1TR0=0;f=n*65536+TH1*256+TL1; //算计此时频率fdisplay(); //调用显示函数t=0; //50ms次数置0n=0; //方波发生负跳变次数置0TH0=(65536-50000)/256; //T0、T1初值重装TL0=(65536-50000)%256;TH1=0;TL1=0;TR0=1; //再次启动T0、T1 以达实时更新效果TR1=1;}}void T_1() interrupt 3 //T1计数中断服务程序{TH1=0;TL1=0;n++; //计数溢出次数增长}---------------------------------------------------------------------------------------------------------------------------------4.系统实测:(1)实测环境:a.芯片:AT89C52b.方波信号输入:函数发生器选择CH1(信道1)Square(方波),CH1接口分别连接51开发板地端(GND)、AT89C51之14脚(T0外部输入端)。

基于MCS-51单片机的频率可调的方波发生器设计--2ahu

基于MCS-51单片机的频率可调的方波发生器设计--2ahu

基于MC51单片机的频率可调的方波信号发生器用单片机产生频率可调的方波信号。

输出方波的频率范围为1Hz-200Hz,频率误差比小于0.5%。

要求用“增加”、“减小”2 个按钮改变方波给定频率,按钮每按下一次,给定频率改变的步进步长为1Hz,当按钮持续按下的时间超过2 秒后,给定频率以10 次/秒的速度连续增加(减少),输出方波的频率要求在数码管上显示。

用输出方波控制一个发光二极管的显示,用示波器观察方波波形。

开机默认输出频率为5Hz。

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单片机波形发生器课程设计

基于51单片机波形发生器课程设计

任务名称:基于51单片机波形发生器课程设计项目背景和目标波形发生器是电子学中常用的实验设备之一,用于产生不同形状和频率的电信号。

在本课程设计中,我们将使用51单片机设计和实现一个基本的波形发生器。

该波形发生器将具备以下功能: 1. 发生正弦波、方波和三角波等不同形状的波形。

2. 支持用户输入频率和幅度参数。

3. 以可视化的方式显示波形输出。

硬件需求在实现波形发生器的过程中,我们需要以下硬件设备: 1. 51单片机开发板:用于运行波形发生器的程序,控制波形的生成和输出。

2. 信号发生器电路:用于将数字信号转换为模拟信号输出。

3. 示波器:用于验证波形输出的准确性和稳定性。

软件设计软件设计方案1.编写主程序:利用51单片机的C语言开发环境编写主程序,实现波形的生成和输出。

2.设计波形生成模块:根据用户输入的频率和幅度参数,生成对应形状的波形。

3.设置输出端口:将波形数据通过51单片机的输出端口发送给信号发生器电路。

4.配置信号发生器电路:将51单片机生成的数字信号转换为模拟信号输出。

5.连接示波器:将信号发生器的输出连接到示波器,验证波形输出的准确性和稳定性。

主程序设计以下是主程序的设计思路:#include <reg51.h>// 定义波形类型的枚举enum WaveType {Sine,Square,Triangle};// 定义全局变量enum WaveType waveType; // 波形类型int frequency; // 波形频率int amplitude; // 波形幅度// 定义函数原型void generateWave();void setOutputPort();void configureSignalGenerator();void connectOscilloscope();void main() {// 获取用户输入的波形参数// TODO: 实现获取用户输入的函数// 波形类型可以通过按键切换,频率和幅度可以通过调节旋钮获取// 生成波形generateWave();// 设置输出端口setOutputPort();// 配置信号发生器电路configureSignalGenerator();// 连接示波器connectOscilloscope();while (1) {// 循环执行波形生成和输出generateWave();setOutputPort();}}// 生成波形函数void generateWave() {switch (waveType) {case Sine:// 生成正弦波形的代码break;case Square:// 生成方波形的代码break;case Triangle:// 生成三角波形的代码break;}}// 设置输出端口函数void setOutputPort() {// 设置51单片机的输出端口的代码}// 配置信号发生器电路函数void configureSignalGenerator() {// 配置信号发生器电路的代码}// 连接示波器函数void connectOscilloscope() {// 连接示波器的代码}波形生成模块设计波形生成模块根据用户输入的频率和幅度参数生成对应形状的波形。

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

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

河池科技大学单片机课程设计题目____________________ 姓名____________________ 学院____________________ 专业____________________ 学号____________________ 指导教师____________________ 成绩____________________二〇一二年五月二十二日制湖南科技大学本科生课程设计(论文)摘要本课程设计设计的是一种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定时器/计数器以及串行通讯接口等。

一种基于MCS—51单片机的数字可调脉冲发生器的设计实现

一种基于MCS—51单片机的数字可调脉冲发生器的设计实现

一种基于MCS—51单片机的数字可调脉冲发生器的设计实现作者:高敏来源:《数字技术与应用》2016年第08期摘要:脉冲发生器在自动化控制领域有着非常广泛的应用,而传统的脉冲发生器操作复杂且造价较高,并且精确度不能够保证,本文以MCS-51单片机为基础设计出了一种可调式的数字脉冲发生器,对幅值、频率和输出宽度进行调整且输出精度高,不需要人工调节自动化程度较高。

可以应用在很多实用到脉冲发生器的场合,并且造价较为低廉。

为可调式脉冲发生器的设计与应用提供可具体实践的技术解决方案。

关键词:可调式数字脉冲发生器 MCS-51 ADC0809 LED显示器中图分类号:TN782 文献标识码:A 文章编号:1007-9416(2016)08-0204-011 引言可调式的脉冲发生器在各个领域中的自动化仪器控制过程中具有十分广泛的应用,比如在速度控制过程中经常用的步进电机的控制,步进电机可以利用脉冲调制技术来为自身提供适量的脉冲,从而实现对于控制角度与速度的控制。

一般情况脉冲信号发生器都是通过定时器来进行控制的,利用电位器对幅值和频率进行调整。

但是电位器的对频率和幅值调控不是很精确,而利用单片机对数字可调的脉冲发生器进行控制能够获得较好的效果。

本文结合数字电位器,来代替以往精度不高的机械式的电位器,利用51单片机进行控制,进而可以试点数字脉冲器的幅度、频率和宽度是可调的。

2 系统需求分析与总体设计本文利用51单片机来实现数字可调式脉冲器的设计与实现,系统的设计主要包括系统的硬件设计以及软件设计两个部分,硬件部分包括单片机、脉冲发生器、AD转换器、LED显示模块;软件部分主要是单片机对外围各个模块电路的控制实现脉冲信号的产生、转换以及显示灯。

本文所设计的系统主要是利用单片机控制脉冲发生器产生脉冲,利用可调式的数字电位器的控制实现对脉冲的幅值、频率以及宽度的控制。

本文利用51单片机以及ADC模数转换器来实现产生数字脉冲信号,并由LED液晶显示。

基于51单片机波形发生器课程设计

基于51单片机波形发生器课程设计

基于51单片机波形发生器课程设计1. 引言波形发生器是电子技术领域中常用的仪器设备,用于产生各种不同形状的电信号波形。

在电子电路实验和测试中,波形发生器能够提供不同频率、幅度和相位的信号,用于测试和验证电路的性能。

本篇文章将介绍一个基于51单片机的波形发生器设计。

通过使用51单片机,我们可以实现一个简单但功能强大的波形发生器,并通过编程控制实现不同类型的波形输出。

2. 硬件设计2.1 51单片机51单片机是一种常见的8位微控制器,具有低功耗、高性能和广泛应用等特点。

在本设计中,我们选择使用51单片机作为主控芯片。

2.2 数模转换芯片为了将数字信号转换为模拟信号输出,我们需要使用一个数模转换芯片。

在本设计中,我们选择使用DAC0800芯片作为数模转换器。

2.3 操作面板为了方便用户操作和设置参数,我们设计了一个操作面板。

该面板包括按键、旋钮和显示屏等组件,用户可以通过操作面板来控制波形发生器的参数和功能。

2.4 输出接口为了将模拟信号输出到外部设备,我们设计了一个输出接口。

该接口可以连接到示波器或其他测试仪器,以便观察和测量输出信号。

3. 软件设计3.1 程序框架波形发生器的软件设计主要包括初始化设置、参数调整和波形生成等功能。

我们可以使用C语言编程,在51单片机上实现这些功能。

以下是程序框架的伪代码:void main(){初始化设置();while(1){获取用户输入();参数调整();波形生成();}}3.2 初始化设置在初始化设置阶段,我们需要对51单片机和数模转换芯片进行初始化配置。

这包括设置时钟频率、IO口方向、数模转换精度等。

以下是初始化设置的伪代码:void 初始化设置(){设置时钟频率();配置IO口方向();配置数模转换精度();}3.3 参数调整在参数调整阶段,用户可以通过操作面板来调整波形发生器的参数。

这包括选择波形类型、设定频率和幅度等。

以下是参数调整的伪代码:void 参数调整(){获取用户输入();if(用户选择了波形类型){设置波形类型();}if(用户设定了频率){设置频率();}if(用户设定了幅度){设置幅度();}3.4 波形生成在波形生成阶段,根据用户设定的参数,我们可以通过数模转换芯片来生成相应的波形信号。

基于单片机的方波信号发生器设计

基于单片机的方波信号发生器设计

基于单片机的方波信号发生器设计方波信号发生器是一种常见的电子设备,用于产生固定频率和幅度的方波信号。

在本文中,我们将基于单片机设计一个方波信号发生器。

本文主要包括以下几个方面的内容:单片机的选择、电路设计、程序编写和功能测试。

一、单片机的选择在选择单片机时,需要考虑信号发生器的要求和性能。

主要考虑的因素包括:处理能力、IO口数量、定时器/计数器数量、ADC/DAC接口等。

处理能力是评估单片机性能的关键指标之一、较高的处理能力可以提供更高的信号发生频率和精确度。

本设计选择了一款8051系列的单片机,具有较高的处理能力,可以满足信号发生器的要求。

二、电路设计方波信号发生器的电路主要包括时钟电路、控制电路、输出电路和电源电路。

时钟电路:由晶体振荡器、电容和电阻组成。

晶体振荡器产生稳定的时钟信号。

控制电路:由单片机和键盘组成。

单片机接收键盘输入的频率和幅度信息,并控制输出信号的频率和幅度。

输出电路:由输出端口、电阻和耦合电容组成。

输出电路将单片机产生的方波信号放大并输出。

电源电路:提供电源给单片机、晶体振荡器和其他有源电子器件。

三、程序编写程序设计主要包括初始化配置、频率设置、幅度设置和输出控制。

1.初始化配置:包括配置IO口、定时器/计数器和ADC/DAC接口等。

2.频率设置:通过键盘输入设置输出频率。

单片机读取键盘输入,判断频率设置的有效性,然后配置定时器/计数器工作在相应频率下。

3.幅度设置:通过键盘输入设置输出幅度。

单片机读取键盘输入,判断幅度设置的有效性,然后调整输出电路的放大倍数。

4.输出控制:根据程序执行到的状态,控制输出电路的开关。

四、功能测试功能测试分为频率测试和幅度测试。

1.频率测试:根据键盘输入设置频率,通过示波器测量输出信号的频率,并与输入频率进行比较。

如果测量频率和输入频率相符合,则测试通过。

2.幅度测试:根据键盘输入设置幅度,通过示波器测量输出信号的幅度,并与输入幅度进行比较。

基于51单片机的波形发生器设计报告

基于51单片机的波形发生器设计报告

目录摘要 (2)一、题目要求及分析 (3)二、总体系统方案设计 (4)2.1总体设计思路 (4)2.2总体框图 (5)2.3信号发生部分 (5)2.4显示部分 (6)2.5按键部分 (6)三、硬件电路 (6)3.1功能与基本原理 (7)3.2资源分配 (8)3.2显示接口电路 (8)3.3波形转换(D/A)电路 (9)3.4红外电路 (10)3.5复位电路 (11)3.6外部时钟电路 (11)3.7 LCD显示部分电路 (12)3.8电源部分 (12)3.9独立按键部分 (13)3.10串口通信模块 (13)四、软件设计 (14)4.1程序流程图 (15)4.2 LCD显示流程图 (15)五、系统仿真 (16)5.1仿真电路图 (16)5.2输出波形图 (16)六、硬件和软件测试 (17)6.1硬件调试 (17)6.2软件调试 (18)七、设计心得 (18)八、参考文献 (20)九、附件 (21)摘要:本系统采用单片机C8051为控制核心,输出数字量,然后由DAC0832把数字量转换成模拟量;但是输出的是电流,需要用运放(OP07),把电流转换成电压量。

显示利用的是LCD1602的液晶,显示其波形,幅值。

按键应用的是独立按键,用来波形的切换,幅值,频率的调解。

其运算核心,我们通过MATLAB对正弦波,三角板,正弦波进行采样,得到一组组数据,然后同过数组存储;利用中断对数组进行扫描。

其频率的调解就是调节其中断间隔的时间,幅值就是调节其数字的大小(同时乘以某个小于1的数)。

为了波形的合成,我们采用的点的个数都是20个。

AT-89C51 DAC0832 独立按键OP07一、题目要求及分析设计任务:设计制作一个波形发生器,该波形发生器能产生正弦波、方波、三角波和由用户编辑的特定形状波形。

示意图如下:图1 设计要求图设计要求:1.具有产生正弦波、方波、三角波三种周期性波形的功能;2.用键盘输入编辑生成上述三种波形(同周期)的线性组合波形,以及由基波及其谐波(5次以下)线性组合的波形。

一种基于MCS_51单片机的数字可调脉冲发生器的设计实现_虞立工

一种基于MCS_51单片机的数字可调脉冲发生器的设计实现_虞立工

虞立工(杭州华日电冰箱股份有限公司 杭州 310019)摘要:介绍了以MCS-51单片机为主控器,以MCP4561数字电位器为核心实现可调数字式脉 冲发生电路的设计。

该系统电路简单、可靠,脉冲信号频率、脉宽和幅值可调,输出波形平稳。

关键词:MCS-51单片机; 脉冲发生器; 数字电位器Abstract :In this paper, it introduces the design of a controllable digital pulse generator circuit which is based on MCS-51 single chip microcomputer as the main controller and MCP4561 digital potentiometer as the core. The result shows that it is of simplicity and reliability, and pulse frequency, pulse width and signal amplitude can be adjusted and the output waveform is smooth.Key words:MCS-51 single chip microcomputer; pulse generator; digital potentiometer引言脉冲信号发生器在工业应用、生物医学、家用电器控制等领域中,有着广泛的应用。

在控制步进电机运行 过程中,脉冲发生器可以发出脉冲信号,按照步进电机的结构特点,顺序分配脉冲,实现控制角位移、旋转速度、旋转方向。

大部分的脉冲信号发生器是利用定时电路产生脉冲,而频率和幅值都是用电位器进行调节。

而机械接触式的电位器可靠性和精度不高,而用单片机在软件方面实现数字可调又会耗费很多编程人员的很多时间和精力。

本文介绍采用Microchip 公司的MCP4561数字电位器,来代替机械接触式的电位器,用MCS-51单片机控制,实现输出脉冲信号的脉宽、频率和幅值可调。

基于51单片机的波形发生器设计

基于51单片机的波形发生器设计

基于51单片机的波形发生器设计本次课程设计旨在设计一个波形发生器,能够产生单极性、幅度可调、周期可调的方波、锯齿波、三角波和正弦波信号。

设计采用AT89C51单片机为核心,通过与8279芯片、38译码器和锁存器的配合,实现对键盘状态的检测和LED显示的控制。

通过D/A转换器、运算放大器和示波器,实现对波形的输出,并在8位LED显示器上显示波形类型的代号、幅值和频率。

键盘为4*8键盘,通过键盘摁键实现对波形种类、幅值和频率等的调节。

为了实现上述功能,我们需要选择合适的硬件。

首先,我们选择AT89C51单片机作为核心芯片。

AT89C51具有4k字节Flash闪速存储器、128字节内部RAM、32个I/O口线、两个16位定时/计数器、一个5向量两级中断结构、一个全双工串行通信口、片内振荡器及时钟电路等标准功能。

同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。

空闲方式停止CPU的工作,但允许RAM、定时/计数器、串行通信口及中断系统继续工作。

掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。

因此,AT89C51芯片具有优良的性能,符合题目的要求。

除了AT89C51单片机外,我们还需要选择其他硬件设备。

通过与8279芯片、38译码器和锁存器的配合,实现对键盘状态的检测和LED显示的控制。

D/A转换器、运算放大器和示波器用于实现波形的输出。

8位LED显示器用于显示波形类型的代号、幅值和频率。

键盘为4*8键盘,通过键盘摁键实现对波形种类、幅值和频率等的调节。

三.软件设计本次课程设计需要编写相应的软件程序,以实现波形发生器的各项功能。

软件设计主要涉及到以下几个方面:1.键盘扫描程序设计键盘扫描程序需要实现对键盘状态的检测,以获取用户输入的波形种类、幅值和频率等参数。

我们采用轮询的方式进行键盘扫描,即不断地检测键盘状态,直到用户输入了有效的参数为止。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机课程设计报告设计题目:频率可调方波发生器专业班级:生物医学工程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口线也将增加。

方案二:动态显示方式:动态显示方式是指一位一位地轮流点亮每位显示器(称为扫描),即每个数码管的位选被轮流选中,多个数码管公用一组段选,段选数据仅对位选选中的数码管有效。

对于每一位显示器来说,每隔一段时间点亮一次。

显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。

通过调整电流和时间参数,可以既保证亮度,又保证显示。

若显示器的位数不大于8位,则显示器的公共端只需一个8位I/O口进行动态扫描(称为扫描口),控制每位显示器所显示的字形也需一个8位口(称为段码输出)。

动态显示器的优点是节省硬件资源,成本较低。

但在控制系统运行过程中,要保证显示器正常显示,CPU必需每隔一段时间执行一次显示子程序,占用CPU大量时间,降低了CPU的工作效率,同时显示亮度较静态显示器低。

由于PHILIPS AT89C51单片机本身提供的I/O口有限,因此我们选择方案二——动态扫描方式。

扫描方式中在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的约1ms,但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。

节约了电能,节省了I/O口。

2.2.2 键盘连接方式方案比较方案一:独立式键盘一个具有4个按键的独立式键盘,每一个按键的一端都接地,另一端接mega16的I/O 口。

独立式键盘每一按键都需要一根I/O线,占用mega16的硬件资源较多。

因此独立式键盘只适合按键较少的场合。

键盘是一组按键或开关的集合,键盘接口向计算机提供被按键的代码。

特点:使用方便、结构复杂、成本高。

方案二:矩阵式键盘我们采用4×4矩阵式键盘,键盘的行线X0~X3通过电阻接+5V,当键盘没有键闭合时,所有的行线和列线断开,行线X0~X3均呈高电平。

当键盘上某一键闭合时,该键所对应的行线与列线短路,此时该行线的电平将由被短路的列线电平所决定。

如果将行线接至单片机的输入端口,列线接至单片机的输出端口,则在单片机的控制下使列线Y0为低电平,其余三根列线Y1、Y2、Y3均为高电平,然后单片机读输入口状态(即键盘行线状态),若X0、X1、X2、X3均为高电平,则Y0这一列上没有键闭合,如果读出的行线状态不全为高电平,则为低电平的行线和Y0相交的键处于闭合状态。

如果Y0这一列没有键闭合,紧接着使列线Y1为低电平,其余列线为高电平,用同样的方法检查Y1这一列有无键闭合,如此类推。

这种逐行逐列地检查键盘状态的过程称为对键盘的扫描。

CPU对键盘的扫描可以采取程序控制的随机方式,CPU空闲时才扫描键盘;也可以采取定时控制方式,每隔一段时间,CPU对键盘扫描一次;还可以采用中断方式,当键盘上有键闭合时,向CPU请求中断,CPU响应键盘发出的中断请求,对键盘进行扫描,以识别哪一个键处于闭合状态,并对键输入信息作相应处理。

因为如果采用独立式键盘PHILIPS A T89C51的I/O口对于方案一来说将是远远不够用的,为了节省I/O口,使我们的设计能够顺利进行,我们选用方案二——矩阵连接式键盘。

为了能够较为简单的编程,和节省CPU的资源,我们采用定时扫描,每隔一段时间,CPU对键盘扫描一次,并将键值读入。

2.3 硬件电路图三、软件3.1 软件设计基本思想:●键盘的不间断扫描。

●4个八段数码管的动态显示。

●方波发生器方波的输出3.2 程序框图3.3 程序功能初始化后单片机产生初值,将初值以动态扫描的方式显示于八段数码管,同时还对键盘进行实时扫描,在扫描后,单片机读取键值,并将键值通过数码管模块显示出来,方波发生器输出该频率的方波。

四、总结4.1 已达到的成果:硬件电路图和键盘及显示的程序。

4.2 未完成的部分:软件关于实行初值计算部分以及仿真。

4.3设计感悟:这一次课程设计遇到了很多问题。

硬件基本上是没有问题的,每个人都会做;但是程序是我们的弱点,还有就是分工合作,很多时候都是有分歧,还好最后还有水兵帮忙,使得我们的程序进一步完善。

做完这个程序只是我们学做程序的开始吧,今后会继续加强我们在做程序上的功力。

附录一程序代码DISBUF EQU 30HSEGBUF EQU 34HLEDSP EQU 37HHDHZ BIT 20H.1ORG 0000HLJMP MAINORG 001BHLJMP TIMER1ORG 000BHLJMP TIMER0ORG 0030HMAIN: MOV SP,#5FHLCALL SCAN ;跳转到键盘控制电路子程序LCALL FT0TH ;利用频率求初值程序MOV T2CON,#04HMOV TH2,S1MOV TL2,S0MOV RCAP2H,S1MOV RCAP2L,S0SETB ET2SETB EAANL TMOD,#0F0HORL TMOD,#10HMOV TH0,#8AHMOV TL0,#0D0HSETB ET1SETB TR1SETB EAFT0TH: MOV R0,#DIVBUF1 ;|除数赋值10进制转换为16进制MOV R1,#DIVBUF2MOV A,R0ADD A,#3 ;|53HMOV R0,AMOV @R1,#0INC R1MOV A,@R0MOV @R1,ADEC R0 ;| 52HMOV A,@R0MOV B,#10MUL ABCLR CADDC A,@R1MOV @R1,ADEC R0 ;| 51HMOV A,@R0MOV B,#100MUL ABADDC A,@R1MOV @R1,ADEC R1MOV A,@R1ADDC A,BMOV @R1,ADEC R0 ;| 50HINC R1MOV A,@R0MOV B,#10MUL ABMOV B,#100MUL ABADDC A,@R1MOV @R1,ADEC R1MOV A,@R1ADDC A,BMOV @R1,A ;|CHOICE: MOV R0,#DIVAMOV @R0,#00H ;|被除数为5*10^5 = 0007A120H INC R0MOV @R0,#07HINC R0MOV @R0, #0A1HINC R0MOV @R0, #20HDIV3216:MOV 40H,#0 ;|除法运算MOV 41H,#0MOV R7,#32;键盘部分SCAN:JNB KEYVALED,$CLR KEYVALEDLCALL KEYSCANMOV A,KEYNAME TIMER1:PUSH PSWPUSH AWSETB RS1CLR RS0MOV TH1,#8AHMOV TL1,#0D0HMOV P3,#0FHMOV A,P3ANL A,#0FHCJNE A,#0FH,NEXT21SETB CJMP NEXT22NEXT21:CLR CNEXT22:MOV A,KEYSTURLC AMOV KEYSTU,AANL A,#07HCJNE A,#2,NEXT23ANL KEYSTU,#00HJMP EXIT2NEXT23:CJNE A,#4,NEXT24SETB KEYVALEDJMP EXIT2NEXT24:CJNE A,#5,EXIT2 ORL KEYSTU,#07HEXIT2:POP ACCPOP PWERETIKEYSCAN:MOV R7,#4MOV R5,#0MOV R6,#11110111B OP1:MOV A,R6RL AMOV R6,AMOV P3,AMOV A,P3ANL A,#0FHRL A,#0FHJNZ NEXT31INC R5DJNZ R7,LOOP1SJMP EXIT3NEXT31:JNE Acc.0,NEXT32MOV R4,#0SJMP NEXT35NEXT32:JNB Acc.1,NEXT33MOV R4,#1SJMP NEXT35NEXT33:JNB Acc.2,NEXT34MOV R4,#2SJMP NEXT35NEXT 34:MOV R4,#3NEXT35:MOV A,R4RL ARL AADD A,R5MOV DPTP,#KEYTABMOVC A,@A+DPTPMOV KEYNAME,AEXIT3:RETDISPLAY:MOV LEDSP,#00HLCALL BIN T0BCDLCALL BCD T0SEGLJMP LOOPTIME R0:PUSH PSWPUSH AccSETB RS0CLR RS1MOV TH0,#0E4AMOV TL0,#0A8HMOV A.CEDSPANL A,#04HCJNE A,#0,NEXT11MOV P2,#00001D00BADD A#SEGBUFMOV R0,AMOV P0,AMOV P0,@R0CJMP EXIT1NEXT11:CJNE A,#2,NEXT12MOV P2,#00000100BADD A,#SEGBUFMOV R0,AMOV P0,@R0LKMP EXIT1NEXT12:CJNE A,#1,NEXT13MOV P2,#00000010BADD A,#SEGBUFMOV R0,AMOV P0,@R0LJMP EXIT1NEXT13:MOV P2,300000001BAD A,#SEGBUFMOV R0,AMOV P0,@R0EXIT1:INC LEDSPMOV A,LEDSPANL A,#01ACJNE A,#04A,BELOW BELOW:JC RETUNMOV LEDSP,#00H RETURN:POP AccPOP PSWRETIBIN T0BCD:MOV R0,3DISBUF+3MOV A,KEYNAMEMOV B,#10DIV ABMOV @R0,BDEC R0MOV B,#10DIV ABMOV @R0,BDEC R0MOV B,#10DIV ABMOV @R0,BDEC R0MOV @R0,ARET方波输出部分:TIMER1:MOV DPTR,#KEYNAMEMOVC @A+DPTR,DPTRRETIEND附录二组员工作分配李建华:主要写程序和报告以及仿真检查结果赖水兵:电路图的描绘,程序的撰写梁国锋:程序的撰写郭万劲:电路图的描绘参考文献1、潘永雄高等学校信息工程类专业规划教材(新编单片机原理与应用)。

相关文档
最新文档