单片机课程设计正弦波发生器论文

单片机课程设计正弦波发生器论文
单片机课程设计正弦波发生器论文

北华航天工业学院

课程设计报告(论文)

设计名称:单片机技术课程设计

设计地点:单片机实验室(教7209)

班级:B09221

姓名:

学号:

指导教师:

完成时间:2012 年 4 月18 日

北华航天工业学院电子工程系

课程设计任务书

指导教师:教研室主任:

年月日

一、概述

1、设计目的

①了解单片机系统中实现D/A(数字、模拟)转换的原理及方法

②详细了解D/A转换芯片0832的性能及编程方法

③了解单片机系统中扩展D/A转换的基本原理,了解单片机如何尽

行数据采集

④掌握DAC0832,AT89C51输入/输出接口电路设计方法

⑤掌握DAC0832转换实现的程序设计方法

⑥掌握W A VE 软件的操作,掌握单片机程序设计的流程

2、设计要求

①正弦波频率范围:1HZ~100HZ,100HZ~1000HZ

②频率步进值:1HZ~100HZ档步进是10HZ,100HZ~1000HZ档

步进是100HZ

③输出电压:1~5V幅值可调(1V步进)

④具有显示输出波形频率和幅度的功能

⑤显示位数:6位

⑥键盘设置频率值

二、方案设计与论证(设计思路、题目分析、解决方法)

1.编程语言的选择

进行单片机开发,既可以用C语言,也可以用汇编语言。在本设计中选择合适的语言进行设计很重要。

汇编语言是一种用文字助记符来表示机器指令的符号语言。其主要优点是占用资源少,执行效率高。但是不同的CPU,其汇编语言可能有所差异,所以不易移植。C语言是一种结构化的高级语言。其优点是可读性好,移植容易,是一种普遍使用的计算机语言,缺点是占用资源较多,没有汇编语言执行效率高。

对于目前普遍使用RISC架构的8位单片机来说,其内部ROM、RAM、STACK等资源有限,如果使用C语言编写,一条C语言编译后就会变成很多机器码,很容易出现ROM空间不够、堆栈溢出等问题。而汇编语言,一条指令就对应一条机器码,每一步的执行动作都很清楚,并且程序大小和堆栈条用情况都容易控制,调试起来也比较方便。

就正弦波发生器设计而言,对程序指令执行的精度、时间要求比较严格,因此本次设计采用汇编语言进行编程较为合理。

2.如何利用单片机进行控制输出-5V~+5V电压

-5V~+5V为模拟量输出,单片机本身并不具备此功能,单片机只能进行数字量输出,因此需要用到DAC(数模转换)芯片

DAC0832简要介绍

DAC转换器是一种将数字量转换成模拟量的器件,其特点是接受、保持和转换的是数字信息,不存在温度和事件的漂移问题,因此电路的抗干扰性能较好。DAC0832是8位分辨率的D/A转换集成芯片,它具有价格低廉、接口简单及转换控制容易等特点。它由8位输入锁存器、8位DAC寄存器、8位DIA转换电路及转换控制电路组成,能和CPU数据总线直接连接,属中速转换器,大约在1uS内将一个数字量转换成模拟量输出。

DAC0832的结构

D0~D7: 8位数据输入线,TTL电平,有效时间应大于90nS(否则锁存器的数据会出错);

ILE:数据锁存允许控制信号输入线,高电平有效;

CS:片选信号输入线(选通数据锁存器),低电平有效;

WR1:数据锁存器写选通输入线,负脉冲(卖宽应大于500nS)有效。由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电

平时,数据锁存器状态随输入数据线变换,LE1的负跳变时

将输入数据锁存;

XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大

于500nS)有效;

WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于500nS)有效。

由WR1、XFER的逻辑组合产生LE2,当LE2为高电平时,

DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时

将数据锁存器的内容打入DAC寄存器并开始D/A转换。IOUT1:电流输出端1,其值随DAC寄存器的内容线性变化;IOUT2:电流输出段2,其值与IOUT1值之和为一常数;

Rfb:反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程度;Vcc:电源输入端,Vcc的范围为+5V~+5V;

VREF:基准电压输入线,VREF的范围为-10V~+10V;

AGND:模拟信号地;

DGND:数字信号地;

0832的引脚图和内部结构图如图1、图2所示

图1 DAC0832引脚图

图2 DAC0832内部结构图

DAC0832的三种工作方式

1、直通方式

直通方式是使DAC0832内部的两个寄存器(输入寄存器和DAC寄存器)处于不锁存状态,数据一旦到达输入端DI7~DI0,就直接送入D/A 转换器,被转换成模拟量。当ILE为高电平,CS和WR1、WR2和XFER 端都接数字帝,这时锁存信号LE1、LE2均为高电平,输入寄存器和DAC 寄存器均处于不锁存状态,即直通方式。

2、单缓冲方式

单缓冲方式就是使两个寄存器中的一个处于缓冲方式,另一个处于锁存方式,数据只同故宫一级缓冲器送入D/A转换器。通的做法是将CS 和XFER均姐弟,使DAC寄存器处于直通凡事,而把ILE接高电平,接端口地址译码信号。WR1接CPU系统总显线的IOW信号,是输入寄存器处于锁存方式。但换种方式只需执行一次写操作即可完成D/A转换。一般不需要多个模拟量同时输出,可采用单缓冲方式。

3、双缓冲方式

双缓冲方式就是使两个寄存器均处于锁存方式,数据要经过两级锁存(即两级缓冲)后再送入D/A转换器,就是说,要执行两次写操作才能完成一次D/A转换。只要将ILE接高电平,WR1和WR2接CPU的IOW,CS和XFER分别接两个不同的I/O地址译码信号即可。

在本设计中,令0832工作在单缓冲方式,其片选端接138译码器单元的CS1,其地址为0x9000H。

DAC0832的输出方式

DAC0832为电流型输出,若需要电压输出可使用运算放大器构成单极性输出和双极性,图3 中a、b分别为0832的单极性输出和双极性输出的电路连接方式。若采用单极性输出,则只能产生0V~5V电压,不能得到既有正脉波又有负脉波的正弦波。因此本设计采用DAC0832的双极性输出,其输出电压为-5~+5V;当DI0~DI7为0000000B时输出-5V,为10000000B时输出0V,为11111111B是输出+5V。这样可以产生既有正脉波又有服脉波的正弦波。

图3 DAC0832的单极性输出和双极性输出

3.如何产生正弦波

(a ) (b )

图4 正弦波的分解

用单片机控制DAC0832来产生正弦波有个问题,就是数模转换总是有其分辨率的,输出的电压并不是连续变化的。例如:8位DAC 输出为-5V~+5V ,那么分辨率就是:()()V V V 039.02/558=--+,所以产生的正弦波会有一定的误差。

如何利用单片机控制DAC0832产生正弦波呢?我们可以先把一个正弦波按横轴等间距分别为若干个点(如图 4分为51个点)。把每个点电压幅值所对应的8位二进制数值做成表,放在CPU 的ROM 中。例如:图4中左起第一个点幅值是0V ,对应的送给DAC0832的8位二进制数为80H ,所以表的第一元素为80H

制成下表:(下表中数据以十进制表示)

TAB1: DB 128, 144, 160, 175, 190, 203, 216, 227, 236,

244, 250, 254, 255, 255, 254, 250, 244, 236, 227, 216, 203, 190, 175, 160, 144, 128, 112, 96, 81, 66, 53, 40, 29, 20, 12, 6, 2, 0, 0, 2, 6, 12, 20, 29, 40, 53, 66, 81, 96, 112, 128

先取表中第一个元素送给0832,0832输出第一个电压0V ,再取第二个数送给0832输出下一个电压,依次类推,取到表的最后一个元素时,从头开始取表的第一个元素。循环往复,就输出了一个连续的正弦波形。

只产生一个正弦波是不够的,我们还要求其频率和幅值可调。可以看一下哪些因素会影响输出波形的频率和幅值

频率的影响因素

由图4可知,该正弦波的频率 ()t T f ??==50/1/1(t ?为所取的两个点之间的间隔),所以只要改变t ?就可以改变输出波形的频率。

我采用的方案是:用一个定时器,每隔t ?产生一次中断,在中断服务程序里控制DAC0832输出。如果想要改变t ?只要改变定时器的时间就行了。也就改变了输出波形的频率。

采用这个方案需要验证两个问题:

① 本设计要求输出频率在1HZ~1000HZ 可调,所以定时器的定时时间需要达到()min max 50/1~50/1f f S ,即定时器的定时时间要在

()002.0~00002.0S 之间可调,并且其分辨率满足要求。经验证51

单片机的定时器0工作在方式1时,其性能满足要求,故采用定时器的方案可行。

② t ?不可能无限小,假设单片机晶振为6MHZ ,那么定时器的分辨率为2μS 即0.000002S 。单片机执行指令是需要时间的,当定时器溢出产生中断时,需要执行一系列指令,包括对断点地址进行压栈、给PC 赋值等操作,都是需要占用时间的,这一部分占用

的时间是不可避免的。除此之外,进入中断服务子程序中,顺序

执行里面的程序,在执行MOVX DPTR,A 给DAC0832送数据让

其输出电压之前会有一些必须的程序,包括赋初值给定时器的

TH0和TL0,查表程序等。综合上面几个因素,这时定时器的定

时时间并不是理论上计算出的时间,而大于这个时间,这样输出

波形的频率就会有误差。为了减小误差,第一,尽量减少定时中

断服务程序中的指令,以减少其占用的时间;第二:给TH0,TL0

幅值时,减去延时的时间,以抵消掉指令占用的时间。

幅值的影响因素

从前面介绍的DAC0832的原理可知,只要改变DAC0832数字量输入就可以改变其输出模拟量的幅度。由于产生波形的幅度是在存储于单片机内部ROM的表中,按顺序取出的。因此我们需要从新建立一个表,这样定时中断服务程序中,该表所查的表,就改变了输出波形的幅度。本设计要求幅值1V~5V可调,因此需要建立5个表。

建立5个表的时候如果一个元素一个元素的算,未免太麻烦。可以用MATLAB分别算出5个表,然后粘贴到程序中,稍作修改就可以使用(图5为输出幅值为±4V时表的计算方法算法)。

算法:pi

/

=

2:0

*

50

a*

pi

2:

a

U

round

((sin(U

-

=

+

)

+

b-

128

128

5(*)5/

))

(

)

128

(*)1

5/

*

(U为需要得的到的幅值,此时b数组就是对应的表)

图5 表的计算方法(输出幅值为 4V时)

综合上面改变频率和幅值的方法,就可以得到符合本设计的设计要求的波形。

3.频率与幅值的设置

方案:利用单脉冲发生器,当需要设置幅值和频率时,产生中断,暂停正在工作的定时器,停止波形输出,进入外部中断0中

断服务程序,通过按键,对波形进行设置。

按键0:频率/幅值切换;

按键1:频率/幅值增加;

按键2:退出外部中断,开启定时器,输出波形

4.键盘与显示

利用W A VE6000 实验环境中的显示程序和键盘扫描电路及程序。改程序提供了三个子程序:TestKey;GetKey;DispLedBuf。

三、硬件设计

1.硬件电路

本设计由单片机、D/A转换电路、键盘及显示电路几个组成部分,各部分采用的电路形式及主要器件确定如下:

(1)单片机部分

选用89C51单片机作为主机,同时要设计89C51单片机的晶振电路和复位电路,具体电路略。

(2)D/A转换电路部分

直接利用单片机实验箱上的D/A转换电路正弦波信号的输出。电路如图6所示。

图6 DAC0832连接电路

(3)按键与显示部分

直接利用单片机试验箱上的按键与显示电路。如图7、图8所示

图7显示器电路连接图

图8键盘电路连接图

四、程序设计

1.程序流程图

主程序流程图:

图9主程序流程图定时器0中断服务程序流程图:

图10定时器0中断服务程序流程图

外部中断0 中断服务程序 流程图:

图11外部中断0中断服务程序流程图

2.程序模块功能

主程序:进行一系列初始化后,主程序最后停在SJMP $等待。

定时器0中断服务程序:每隔一定时间按次序查表,把相应数值送

给DAC0832进行数模转换,实现正弦波输出。

外部中断0中断服务程序:配合按键扫描程序和数码管显示程序,对正弦波参数进行设置。

3.硬件资源分配表

四、运行结果分析

1.软硬件调试(出现的问题、如何解决。。。)

搭建PROTEUS仿真电路,进行软件模拟仿真(图12)

图12 PROTEUS仿真电路

此电路和实际电路有差异,主要用于前期的软件仿真,基本的波形发生,测试MATLAB软件计算出的数值运行后是否满足设计要求。

此外,我还用此电路测试了取不同点数时,波形差异。分别测试了30点、50点、70点以及100点,点数越多越接近正弦,点数越少失真越严重。但是点数过多,所能达到的频率最低值越大,不能满足本设计中频率达到1000HZ的要求。经试验,取50点可以达到最好的效果,是频率达到要求,波形又不失真严重。

前期仿真完成后,进行上机调试。

起初,加上键盘显示程序时,键盘和显示程序时钟程序始终不正常。经老师指点,改变思路,在进行频率和幅度设置时,关掉波形发生功能。顺利完成调试。

2.运行结果

系统上电,产生50HZ,-5V~+5V正弦波。按单脉冲发生键,进入设置程序,按键盘0键决定调节频率还是幅值;按1键进行调节;按2键

完成设置,开始输出波形。(图13、图14、图15、图16分别为几种不同频率和幅值的输出波形)

图13 正弦波(100HZ,-5V~+5V)

51单片机课程设计

课程设计说明书
课程设计名称






学生姓名
指导教师
单片机原理及应用课程设计 电子信息工程 140405 20141329 李延琦 胡黄水
2016 年 12 月 26 日

课程设计任务书
课程设计 题目
酒精测试仪
起止日期
2016 年 12 月 26 日— 2017 年 1 月 6 日
设计地点
计算机科学与工程学 院单片机实验室 3409
设计任务及日程安排: 设计任务:分两部分: (一)、设计实现类:进行软、硬件设计,并上机编程、联线、调试、 实现; 1.电子钟的设计 2.交通灯的设计 3.温度计的设计 4.点阵显示 5.电机调速 6.电子音乐发声(自己选曲) 7.键盘液晶显示系统 (二)、应用系统设计类:不须上机,查资料完成软、硬件设计画图。 查资料选定题目。 说明:第 1--7 题任选其二即可。(二)里题目自拟。 日程安排: 本次设计共二周时间,日程安排如下: 第 1 天:查阅资料,确定题目。 第 2--4 天:进实验室做实验,连接硬件并编写程序作相关的模块实验。 第 5--7 天:编写程序,并调试通过。观察及总结硬件实验现象和结果。 第 8--9 天:整理资料,撰写课程设计报告,准备答辩。 第 10 天:上交课程设计报告,答辩。 设计报告要求:
1. 设计报告里有两个内容,自选题目内容+附录(实验内容),每 位同学独立完成。 2. 自选题目不须上机实现,要求能正确完成硬件电路和软件程序 设计。内容包括: 1) 设计题目、任务与要求 2)硬件框图与电路图 3) 软件及流程图 (a)主要模块流程图 (b)源程序清单与注释 4) 总结 5) 参考资料 6)附录 实验上机调试内容
注:此任务书由指导教师在课程设计前填写,发给学生做为本门课程设计 的依据。

三点式正弦波振荡器(高频电子线路实验报告)

三点式正弦波振荡器 一、实验目的 1、 掌握三点式正弦波振荡器电路的基本原理,起振条件,振荡电路设计及电路参数计 算。 2、 通过实验掌握晶体管静态工作点、反馈系数大小、负载变化对起振和振荡幅度的影 响。 3、 研究外界条件(温度、电源电压、负载变化)对振荡器频率稳定度的影响。 二、实验内容 1、 熟悉振荡器模块各元件及其作用。 2、 进行LC 振荡器波段工作研究。 3、 研究LC 振荡器中静态工作点、反馈系数以及负载对振荡器的影响。 4、 测试LC 振荡器的频率稳定度。 三、实验仪器 1、模块 3 1块 2、频率计模块 1块 3、双踪示波器 1台 4、万用表 1块 四、基本原理 实验原理图见下页图1。 将开关S 1的1拨下2拨上, S2全部断开,由晶体管N1和C 3、C 10、C 11、C4、CC1、L1构成电容反馈三点式振荡器的改进型振荡器——西勒振荡器,电容CCI 可用来改变振荡频率。 ) 14(121 0CC C L f += π 振荡器的频率约为4.5MHz (计算振荡频率可调范围) 振荡电路反馈系数 F= 32.0470 220220 3311≈+=+C C C 振荡器输出通过耦合电容C 5(10P )加到由N2组成的射极跟随器的输入端,因C 5容量很小,再加上射随器的输入阻抗很高,可以减小负载对振荡器的影响。射随器输出信号经

N3调谐放大,再经变压器耦合从P1输出。 图1 正弦波振荡器(4.5MHz ) 五、实验步骤 1、根据图1在实验板上找到振荡器各零件的位置并熟悉各元件的作用。 2、研究振荡器静态工作点对振荡幅度的影响。 (1)将开关S1拨为“01”,S2拨为“00”,构成LC 振荡器。 (2)改变上偏置电位器W1,记下N1发射极电流I eo (=11 R V e ,R11=1K)(将万用表红 表笔接TP2,黑表笔接地测量V e ),并用示波测量对应点TP4的振荡幅度V P-P ,填于表1中,分析输出振荡电压和振荡管静态工作点的关系,测量值记于表2中。 3、测量振荡器输出频率范围 将频率计接于P1处,改变CC1,用示波器从TP8观察波形及输出频率的变化情况,记录最高频率和最低频率填于表3中。 六、实验结果 1、步骤2振荡幅度V P-P 见表1.

简易信号发生器单片机课程设计报告

课程设计(论文)任务书 电气学院电力系统及其自动化专业12(1 )班 一、课程设计(论文)题目:简易信号发生器设计 二、课程设计(论文)工作自 2015年1 月12 日起至2015 年 1月16 日止。 三、课程设计(论文) 地点:电气学院机房 10-303 四、课程设计(论文)内容要求: 1.课程设计的目的 (1)综合运用单片机原理及应用相关课程的理论知识和实际应用知识,进行单片机应用系统电路及程序设计,从而使这些知识得到进一步的巩固,加深和发展;(2)熟悉和掌握单片机控制系统的设计方法,汇编语言程序设计及proteus 软件的使用; (3)通过查阅图书资料、以及书写课程设计报告可提高综合应用设计能力,培养独立分析问题和解决问题的能力。 2.课程设计的内容及任务 (1)可产生频率可调的正弦波(64个点)、方波、锯齿波或三角波。 (2)显示出仿真波形。 (3)通过按键选择输出波形的种类。 (4)在此基础上使输出波形的幅值可控。

3.课程设计说明书编写要求 (1)设计说明书用A4纸统一规格,论述清晰,字迹端正,应用资料应说明出处。(2)说明书内容应包括(装订次序):题目、目录、正文、设计总结、参考文献等。应阐述整个设计内容,要重点突出,图文并茂,文字通畅。 (3)报告内容应包括方案分析;方案对比;整体设计论述;硬件设计(电路接线,元器件说明,硬件资源分配);软件设计(软件流程,编程思想,程序注释,) 调试结果;收获与体会;附录(设计代码放在附录部分,必须加上合理的注释)(4) 学生签名: 2015年1月16 日 课程设计(论文)评审意见 (1)总体方案的选择是否正确;正确()、较正确()、基本正确()(2)程序仿真能满足基本要求;满足()、较满足()、基本满足()(3)设计功能是否完善;完善()、较完善()、基本完善()(4)元器件选择是否合理;合理()、较合理()、基本合理()(5)动手实践能力;强()、较强()、一般()(6)学习态度;好()、良好()、一般()(7)基础知识掌握程度;好()、良好()、一般()(8)回答问题是否正确;正确()、较正确()、基本正确()、不正确() (9)程序代码是否具有创新性;全部()、部分()、无() (10)书写整洁、条理清楚、格式规范;规范()、较规范()、一般()总评成绩优()、良()、中()、及格()、不及格() 评阅人:

C语言实验报告《函数》

C语言实验报告《函数》 C语言实验报告《函数》 学号: __________ 姓名: __________ 班级: __________ 日期: __________ 指导教师: __________ 成绩: __________ 实验四函数 一、实验目的 1、掌握函数定义、调用和声明的方法 2、掌握实参和形参之间的传递方式 3、函数的嵌套调用 二、实验内容 1、写一个函数,将两个字符串连接。(习题 8. 6) 2、编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出上述的结果。(习题 8.9)

3、请将实验三中的实验内容三改正后,再改写成函数形式(排序部分)。物理实验报告·化学实验报告·生物实验报告·实验报告格式·实验报告模板 三、实验步骤与过程 四、程序调试记录 一、实验目的 1.观察植物细胞有丝分裂的过程,识别有丝分裂的不同时期。 初步掌握制作洋葱根尖有丝分裂装片的技能。 3.初步掌握绘制生物图的方法。 二、实验原理在植物体中,有丝分裂常见于根尖、茎尖等分生区细胞,高等植物细胞有丝分裂的过程,分为分裂间期和分裂期的前期、中期、后期、末期。可以用高倍显微镜观察植物细胞的有丝分裂的过程,根据各个时期细胞内染色体(或染色质)的变化情况,识别该细胞处于有丝分裂的哪个时期,细胞核内的染色体容易被碱性染料着色。 三、材料用具洋葱根尖、显微镜、载玻片、盖玻片、滴管、镊子、培养皿、铅笔、质量分数为15%的盐酸、体积分数为95%的酒精、质量分数为0.01gml的龙胆紫(或紫药水) 四、实验过程(见书P39) 1.洋葱根尖的培养(提前3—4天) 2.解离: 5min 3.漂洗: 10min 4.染色: 5min

单片机课程设计——基于51单片机的温度监控系统设计

单片机课程设计报告 题目:温度监控系统设计 学院:能源与动力工程学院 专业:测控技术与仪器专业 班级: 2班 成员:魏振杰 二〇一五年十二月

一、引言 温度是工业控制中主要的被控参数之一,特别是在冶金、化工、建材、食品、机械、石油等工业中,具有举足重轻的作用。对于不同场所、不同工艺、所需温度高低范围不同、精度不同,则采用的测温元件、测方法以及对温度的控制方法也将不同;产品工艺不同、控制温度的精度不同、时效不同,则对数据采集的精度和采用的控制算法也不同,因而,对温度的测控方法多种多样。 随着电子技术和微型计算机的迅速发展,微机测量和控制技术也得到了迅速的发展和广泛的应用。利用微机对温度进行测控的技术,也便随之而生,并得到日益发展和完善,越来越显示出其优越性。 作为获取信息的手段——传感器技术得到了显著的进步,其应用领域较广泛。传感器技术已成为衡量一个国家科学技术发展水平的重要标志之一。因此,了解并掌握各类传感器的基本结构、工作原理及特性是非常重要的。 为了提高对传感器的认识和了解,尤其是对温度传感器的深入研究以及其用法与用途,基于实用、广泛和典型的原则而设计了本系统。本系统利用传感器与单片机相结合,应用性比较强,本系统可以作为仓库温度监控系统,如果稍微改装可以做热水器温度调节系统、实验室温度监控系统,以及构成智能电饭煲等等。课题主要任务是完成环境温度监测,利用单片机实现温度监测并通过报警信号提示温度异常。本设计具有操作方便,控制灵活等优点。 本设计系统包括单片机,温度采集模块,显示模块,按键控制模块,报警和指示模块五个部分。文中对每个部分功能、实现过程作了详细介绍。整个系统的核心是进行温度监控,完成了课题所有要求。 二、实验目的和要求 2.1学习DS18B20温度传感芯片的结构和工作原理。 2.2掌握LED数码管显示的原理及编程方法。 2.3掌握独立式键盘的原理及使用方法。 2.4掌握51系列单片机数据采集及处理的方法。 三、方案设计

信号发生器设计(附仿真)

南昌大学实验报告 学生姓名:学号:专业班级: 实验类型:□验证□综合□设计□创新实验日期:实验成绩: 信号发生器设计 一、设计任务 设计一信号发生器,能产生方波、三角波和正弦波并进行仿真。 二、设计要求 基本性能指标:(1)频率范围100Hz~1kHz;(2)输出电压:方波U p-p≤24V,三角波U p-p =6V,正弦波U p-p>1V。 扩展性能指标:频率范围分段设置10Hz~100Hz, 100Hz~1kHz,1kHz~10kHz;波形特性方波t r<30u s(1kHz,最大输出时),三角波r△<2%,正弦波r~<5%。 三、设计方案 信号发生器设计方案有多种,图1是先产生方波、三角波,再将三角波转换为正弦波的组成框图。 图1 信号发生器组成框图 主要原理是:由迟滞比较器和积分器构成方波——三角波产生电路,三角波在经过差分放大器变换为正弦波。方波——三角波产生基本电路和差分放大器电路分别如图2和图4所示。 图2所示,是由滞回比较器和积分器首尾相接形成的正反馈闭环系统,则比较器A1输出的方波经积分器A2积分可得到三角波,三角波又触发比较器自动翻转形成方波,这样即可构成三角波、方波发生器。其工作原理如图3所示。

图2 方波和三角波产生电路 图3 比较器传输特性和波形 利用差分放大器的特点和传输特性,可以将频率较低的三角波变换为正弦波。其基本工作原理如图5所示。为了使输出波形更接近正弦波,设计时需注意:差分放大器的传输特性曲线越对称、线性区越窄越好;三角波的幅值V 应接近晶体管的截止电压值。 m 图4 三角波→正弦波变换电路

图5 三角波→正弦波变换关系 在图4中,RP 1调节三角波的幅度,RP 2 调整电路的对称性,并联电阻R E2 用来减小差 分放大器的线性区。C 1、C 2 、C 3 为隔直电容,C 4 为滤波电容,以滤除谐波分量,改善输出 波形。 波形发生器的性能指标: ①输出波形种类:基本波形为正弦波、方波和三角波。 ②频率范围:输出信号的频率范围一般分为若干波段,根据需要,可设置n个波段范围。 ③输出电压:一般指输出波形的峰-峰值U p-p。 ④波形特性:表征正弦波和三角波特性的参数是非线性失真系数r~和r△;表征方波特性的参数是上升时间t r。 四、电路仿真与分析

单片机课程设计报告书模板

. .. . .. .. 西南科技大学 2011级微机原理与接口技术 课程设计报告 课题名称微机原理与接口技术 姓名 学号 院、系、部制造科学与工程学院 专业 指导教师 2014年月日

目录 一、绪言 (1) 二、系统设计 (1) 2.1系统整体流程图 (1) 2.2日历时钟的控制方案论证 (1) 2.3单片机的选择方案论证 (2) 2.4键盘选择方案论证 (2) 2.5显示模块的选择方案论证 (2) 2.6模块的选择方案论证 (2) 三、硬件电路设计 (2) 3.1日历时钟的控制电路图 (2) 3.2行列式键盘的设计 (3) 3.3数码管显示电路的设计 (3) 3.4蜂鸣器驱动电路的设计 (4)

3.5主要元器件选择 (4) 四、程序流程图 (5) 五、c语言程序设计 (5) 六、日历时钟的控制器仿真 (19) 6.1K e i l调试 (19) 6.2P r o t e u s调试 (19) 七、结束语 (20) 八、参考文献 (21) 1、绪言 近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月异更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。电子时钟是现代社会中的主要计时工具之一,广泛应用于手机,电脑,汽车等社会生活需要的各个方面,及对时间有要求的场合。本设计采用AT89C51单片机作为主要核心部件,附以上电复位电路,时钟电路及按键调时电路组成。数字钟已成为人们日常生活中:必不可少的必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。

c语言实验报告

C语言实验报告 说明 1,所有程序均用VC6.0编译运行,文件名命名为姓名+日期,因为实验存在补做,所以并不是按照日期先后排列的。 2,为了使截图清晰,手动将运行窗口由“黑底白字”改为了“白底黑字”。 实验2 数据类型、运算符和表达式 一、实验目的: (1)掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量、以及对它们赋值的方法。 (2)学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(――)运算符的使用。 (3)掌握C语言的输入和输出函数的使用 (4)进一步熟悉C程序的编辑、编译、连接和运行的过程。 三、程序调试与问题解决: (1)输人并运行下面的程序 #include void main() { char c1,c2; c1='a'; c2='b'; printf("%c %c\n",c1,c2); } ○1运行此程序。 ○2在上面printf语句的下面再增加一个printf语句。

printf("%d %d\n",c1,c2); 再运行,并分析结果。 输出结果如图,编译成功,无错误。 ○3将第3行改为 int c1,c2; 再运行,并分析结果。 ○4再将第4、5行改为 c1=a; c2=b; 再运行,并分析结果。 a,b没有定义,编译报错。 ○5再将第4、5行改为 c1=‘’a‘’; c2=‘’b‘’; 再运行,并分析结果。 ○6再将第4、5行改为 c1=300; c2=400; 再运行,并分析结果。 以字符型输出时,输出的将是300,400对应的字符。 (2)输人并运行教材第3章习题3. 6给出的程序 #include main () { char c1='a',c2='b',c3='c',c4='\101',c5='\116';

单片机课程设计题目..(DOC)

单片机课程设计题目 1 基于单片机的数字电压表设计 2 基于单片机的智能电压表设计(温度检测器) 3 基于单片机的智能船模设计 4 基于单片机的电梯控制模型设计 5 基于单片机的水位控制系统设计(STC89—51型) 6 基于单片机的多路数据采集系统设计 7 基于单片机的8路抢答器设计 9 基于单片机的数字温度计设计 10 基于单片机的智能小车设计 11 基于单片机的数字温度计设计 12 基于单片机的遥控器设计 13 基于单片机的串行通信发射机设计 14 基于单片机的简易智能电动车设计 15 基于单片机的太阳能热水器控制器设计 16 基于单片机的太阳能热水器控制器设计 17 MCS-51单片机温度控制系统的设计 18 直流电动机的转速检测与脉宽调速 19 基于单片机的智能机器人的设计 20 基于单片机的简易无线竞赛系统的设计 21 基于单片机的车辆闯红灯监控系统设计(89C51) 22 基于单片机控制的井下瓦斯监控系统设计 23 基于单片机的煤气泄漏检测报警装置设计 24 基于单片机的井式渗碳炉控制系统设计 25 基于单片机的蔬菜大棚温湿度智能控制系统设计 26 基于单片机的电子钟设计 27 基于单片机的电力线载波节电群控设计 28 基于单片机的液位控制器设计

29 基于单片机的串行通信发射机设计 30 基于单片机的智能八路抢答器设计 32 基于单片机的水位监控器设计(STC12C2052AD) 32 基于单片机的点阵电子显示屏设计 33 基于单片机的智能温度控制系统设计 34 基于单片机的智能时钟控制器设计 35 基于单片机的智能温控系统设计 36 基于单片机的智能寻迹避障小车设计 37 基于单片机的家用太阳能热水器控制器设计 38 基于单片机的新型抢答计分器设计 39 基于单片机的热敏电阻测温系统设计 40 基于单片机的林火监测系统-飞艇姿态控制系统设计 41 基于单片机的人性化时钟控制器设计 42 基于单片机的智能型电话远程遥控器设计 43 基于单片机的远程通讯控制器设计 45 基于单片机的智能水位控制器设计 46 基于单片机的水位控制系统设计 47 基于单片机的智能电动小车设计 48 基于单片机的数码电子时钟设计 49 -基于单片机的数控直流电源设计 50 基于单片机的交通灯控制器设计 51 基于单片机的数字温度计设计(STC89C51) 52 基于单片机的智能小车设计 53 基于单片机的温度控制器设计 54 基于单片机的串行通信发射机设计(版本3) 55 基于单片机的温度控制系统设计(版本1) 56 基于单片机的交通灯控制系统设计 D58-基于单片机的电子万年历设计 D59-基于单片机的水位控制器设计 D60-基于单片机的水位控制系统设计(版本2)

游戏C语言实验报告

嘉应学院计算机学院 实验报告 课程名称: C程序设计 开课学期: 2015—2016学年第1学期 班级:计算机1505 指导老师:陈广明 设计题目:游戏2048 学生姓名(学号):第3组:钟瞻宇

目录 一、实验目的和要求 .................................................................................................................................................... 二、实验环境、内容和方法 ........................................................................................................................................ 三、程序设计 ................................................................................................................................................................ 四、源代码 .................................................................................................................................................................... 五、调试与运行结果.................................................................................................................................................... 六、总结........................................................................................................................................................................

单片机课程设计题目

1.电子秒表设计:设计一个4位LED数码显示“秒表”,显示时间为00.00~99.99秒,每0.01 秒自动加一。另设计一个“开始”按键和一个“复位”按键。(2人) 2.简易4位(0—9999)计算器(+、-、*、/、四种运算)设计:设计一个能实现0-9整数 加法运算的计算器,利用LCD显示。键盘包括0-9及“+、-、*、/”和“=”及“清除” 16个按键。(除法应保留足够的的小数,满足共4位的显示)要有错误显示Err。(2人) 3.频率数显表:设计一个能实现对脉冲频率测量显示的电路。输入频率范围(0-10k),显 示为xxx.xx,用两个指示灯指示显示数字的单位,Hz和KHz两档,根据输入频率自动切换显示档。(脉冲信号是由外部信号发生器提供)(2人) 4.信号灯控制系统:南北线有红黄绿三只信号灯,东西线有红黄绿三只信号灯。 要求:(闪烁3次,每次亮灭时间各1s)时序要求如下(原始状态) 设计一个递增键和一个递减键,用于调节功能键选定的方向的绿灯时间,时间范围(10s-50s),每次以0.5S为增量。(2人) 5.简易电子时钟:用4位LED数码管分别显示小时数分钟和秒数,两个按键,一个为功能 键,用于切换显示界面(两个显示界面,一个是小时分钟,一个是秒数)长按此键3S 进入当前界面的参数修改界面。另一个按键用于参数修改(参数递增或递减),长按此键3s退参数修改,时间要求用单片机自带的定时器得到。(2人) 6.智能电子钟(LCD显示):以A T89C51单片机为核心,制作一个LCD显示的智能电子 钟:(1) 计时:秒、分、时、天、周、月、年。(2) 闰年自动判别。(3) 五路定时输出,可任意关断(最大可到16路)。(4) 时间、月、日交替显示。(5) 自定任意时刻自动开/关屏。(6) 计时精度:误差≤1秒/月(具有微调设置)。(7) 键盘采用动态扫描方式查询。所有的查询、设置功能均由功能键K1、K2完成。采用时钟芯片DS1302进行制作 7.多路报警器设计。用AT89C51单片机设计报警系统,用16个开关模拟报警点,当有 开关闭合时,用P1.0产生方波信号驱动蜂鸣器作为报警信号,同时用2位数码管显示报警点(即是第几个开关)。(2人) 8.简易数字电压表设计。利用单片机AT89S51与AD设计一个数字电压表,能够测量0- 36V之间的直流电压值,用LCE显示(根据测量精度,自定显示的位数)。(2人) 9.波形发生器。三种信号:正弦波、方波、三角波。利用DA转换器设计一波形发生器,

信号发生器设计---实验报告

信号发生器设计 一、设计任务 设计一信号发生器,能产生方波、三角波和正弦波并进行仿真。 二、设计要求 基本性能指标:(1)频率范围100Hz~1kHz;(2)输出电压:方波U p-p≤24V,三角波U =6V,正弦波U p-p>1V。 p-p 扩展性能指标:频率范围分段设置10Hz~100Hz, 100Hz~1kHz,1kHz~10kHz;波形特性方波t r<30u s(1kHz,最大输出时)用仪器测量上升时间,三角波r△<2%,正弦波r <5%。(计算参数) ~ 三、设计方案 信号发生器设计方案有多种,图1是先产生方波、三角波,再将三角波转换为正弦波的组成框图。 图1 信号发生器组成框图 主要原理是:由迟滞比较器和积分器构成方波——三角波产生电路,三角波在经过差分放大器变换为正弦波。方波——三角波产生基本电路和差分放大器电路分别如图2和图4所示。 图2所示,是由滞回比较器和积分器首尾相接形成的正反馈闭环系统,则比较器A1输出的方波经积分器A2积分可得到三角波,三角波又触发比较器自动翻转形成方波,这样即可构成三角波、方波发生器。其工作原理如图3所示。

图2 方波和三角波产生电路 图3 比较器传输特性和波形 利用差分放大器的特点和传输特性,可以将频率较低的三角波变换为正弦波。(差模传输特性)其基本工作原理如图5所示。为了使输出波形更接近正弦波,设计时需注 应接近晶体意:差分放大器的传输特性曲线越对称、线性区越窄越好;三角波的幅值V m 管的截止电压值。 图4 三角波→正弦波变换电路

图5 三角波→正弦波变换关系 在图4中,RP 1调节三角波的幅度,RP 2调整电路的对称性,并联电阻R E2用来减小差分放大器的线性区。C 1、C 2、C 3为隔直电容,C 4为滤波电容,以滤除谐波分量,改善输出波形。取Ic2上面的电流(看输出) 波形发生器的性能指标: ①输出波形种类:基本波形为正弦波、方波和三角波。 ②频率范围:输出信号的频率范围一般分为若干波段,根据需要,可设置n 个波段范围。(n>3) ③输出电压:一般指输出波形的峰-峰值U p-p 。 ④波形特性:表征正弦波和三角波特性的参数是非线性失真系数r ~和r △;表征方波特性的参数是上升时间t r 。 四、电路仿真与分析 实验仿真电路图如图

51单片机电子时钟课程设计报告报告

目录 第一部分设计任务和要求 1.1单片机课程设计内 容 (2) 1.2单片机课程设计要求………………………………………………… 2 1.3系统运行流程………………………………………………………… 2 第二部分设计方案 2.1 总体设计方案说明 (2) 2.2 系统方框图 (3) 2.3 系统流程图 (3) 第三部分主要器材及基本简介 3.1 主要器材 (4) 3.2 主要器材简介 (4) 第四部分系统硬件设计 4.1 最小系统 (6) 4.2 LCD显示电路 (6) 4.3 键盘输入电路 (7) 4.4 蜂鸣器和LED灯电路 (7)

第五部分仿真电路图与仿真结果 (8) 第六部分课程设计总结 (8) 第七部分参考文献 (9) 附录A 实物图 附录B 系统源程序 第一部分设计任务和要求 1.1 单片机课程设计内容 利用STC89C51单片机和LCD1602电子显示屏实现电子时钟,可由按键进行调时和12/24小时切换。 1.2 单片机课程设计要求 1.能实现年、月、日、星期、时、分、秒的显示; 2.能实现调时功能; 3.能实现12/24小时制切换; 4.能实现8:00—22:00整点报时功能。 1.3 系统运行流程 程序首先进行初始化,在主程序的循环程序中首先调用数据处理程序,然后调用显示程序,在判断是否有按键按下。若有按键按下则转到相应的功能程序执行,没有按键按下则调用时间程序。若没到则循环执行。计时中断服务程序完成秒的计时及向分钟、小时的进位和星期、年、月、日的进位。调时闪烁中断服务程序

用于被调单元的闪烁显示。调时程序用于调整分钟、小时、星期、日、月、年,主要由主函数组成通过对相关子程序的调用,如图所示。实现了对时间的设置和修改、LCD显示数值等主要功能。相关的调整是靠对功能键的判断来实现的。第二部分设计方案 2.1 总体设计方案说明 1.程序设计及调试 根据单片机课程设计内容和要求,完成Protues仿真电路的设计和用Keil软件编写程序,并进行仿真模拟调试。 2.硬件焊接及调试 根据仿真电路图完成电路板的焊接,并进行软、硬件的调试,只到达到预期目的。3.后期处理 对设计过程进行总结,完成设计报告。 2.2 单片机系统方框图

C语言实验报告参考答案原

C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include<> main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.编写程序: (1) a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 (2)a=160,b=46,c=18,d=170, 编写求(a+b)/(b-c)*(c-d)的程序。 答案: (1) #include<> main() {

int a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } (2) #include<> main() { int a,b,c,d; float x; a=160; b=46; c=18;

d=170; x=(a+b)/(b-c)*(c-d); printf("(a+b)/(b-c)*(c-d)=%f\n",x); } 3. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b 时,将0赋给c。(提示:用条件运算符) 答案: #include<> main() { int a,b,c; a=0; b=-10; c= (a>b) b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 2、(1) 编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7

单片机课程设计题目11级1

题目1 电子时钟(LCD显示) 设计要求 以AT89C51单片机为核心的时钟,在LCD显示器上显示当前的时间: ●使用字符型LCD显示器显示当前时间。 ●显示格式为“时时:分分:秒秒”。 ●用4个功能键操作来设置当前时间,4个功能键接在P1.0~P1.3引 脚上。 功能键K1~K4功能如下。 ●K1—进入设置现在的时间。 ●K2—设置小时。 ●K3—设置分钟。 ●K4—确认完成设置。 程序执行后工作指示灯LED闪动,表示程序开始执行,LCD显示“00:00:00”,然后开始计时。 题目2 基于数字温度传感器的数字温度计 设计要求 利用数字温度传感器DS18B20与单片机结合来测量温度。利用数字温度传感器DS18B20测量温度信号,计算后在LED数码管上显示相应的温度值。其温度测量范围为?55℃~125℃,精确到0.5℃。所测量的温度采用数字显示,控制器使用单片机AT89C51,测温传感器使用DS18B20,用3位共阳极LED数码管以串口传送数据,实现温度显示。 题目3 十字路口交通灯控制 设计要求 设计一个十字路口交通灯控制器。用单片机控制LED模拟交通灯。东西

向通行时间为80s,南北向通行时间为60s,缓冲时间为3s。 本项目为典型的LED显示和中断定时电路。利用定时器T0产生每10ms 一次的中断,每100次中断为1s。对两个方向分别显示红、绿、黄灯,并显示相应的剩余时间。值得注意的是,A方向红灯时间=B方向绿灯时间+黄灯缓冲时间。 题目4 节日彩灯控制器的设计 设计要求 以单片机为核心,设计一个LED显示的节日彩灯控制器,P1.2~P1.5引脚上接有4个按键,4个按键的各自的功能如下: ●P1.2—开始键,按此键则灯开始流动(由上而下)。 ●P1.3—停止键,按此键则停止流动,所有灯为暗。 ●P1.4—上,按此键则灯由上向下流动。 ●P1.5—下,按此键则灯由下向上流动。 本题目本质上是由按键控制功能的流水灯,LED工作的方式通过键盘的扫描实现。其中的LED采取共阳极接法,通过依次向连接LED的I/O口送出低电平,即可实现所要求的功能。 题目5 数字音乐盒的设计 设计要求 以单片机为核心,设计一个数字音乐盒: 利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲(最少3首乐曲,每首不少于30s)。采用LCD显示信息。开机时有英文欢迎提示字符,播放时显示歌曲序号(或名称)。可通过功能键选择乐曲、暂停、播放。 题目6 单片机控制步进电机 设计要求

信号发生器实验报告(波形发生器实验报告)

信号发生器 一、实验目的 1、掌握集成运算放大器的使用方法,加深对集成运算放大器工作原理的理解。 2、掌握用运算放大器构成波形发生器的设计方法。 3、掌握波形发生器电路调试和制作方法 。 二、设计任务 设计并制作一个波形发生电路,可以同时输出正弦、方波、三角波三路波形信号。 三、具体要求 (1)可以同时输出正弦、方波、三角波三路波形信号,波形人眼观察无失真。 (2)利用一个按钮,可以切换输出波形信号。。 (3)频率为1-2KHz 连续可调,波形幅度不作要求。 (4)可以自行设计并采用除集成运放外的其他设计方案 (5)正弦波发生器要求频率连续可调,方波输出要有限幅环节,积分电路要保证电路不出现积分饱和失真。 四、设计思路 基本功能:首先采用RC 桥式正弦波振荡器产生正弦波,然后通过整形电路(比较器)将正弦波变换成方波,通过幅值控制和功率放大电路后由积分电路将方波变成三角波,最后通过切换开关可以同时输出三种信号。 五、具体电路设计方案 Ⅰ、RC 桥式正弦波振荡器 图1 图2 电路的振荡频率为:RC f π21 0= 将电阻12k ,62k 及电容100n ,22n ,4.4n 分别代入得频率调节范围为:24.7Hz~127.6Hz ,116.7Hz~603.2Hz ,583.7Hz~3015Hz 。因为低档的最高频率高于高档的最低频率,所以符合实验中频率连续可调的要求。 如左图1所示,正弦波振荡器采用RC 桥式振荡器产生频率可调的正弦信号。J 1a 、J 1b 、J 2a 、J 2b 为频率粗调,通过J 1 J 2 切换三组电容,改变频率倍率。R P1采用双联线性电位器50k ,便于频率细调,可获得所需要的输出频率。R P2 采用200k 的电位器,调整R P2可改变电路A f 大小,使得电路满足自激振荡条件,另外也可改变正弦波失真度,同时使正弦波趋于稳定。下图2为起振波形。

单片机课程设计,3000字

单片机课程设计论文 论文题目: 学院: 专业: 年级: 学号: 学生姓名: 指导教师: 2012年1月2日

单片机课程设计 ——六十秒倒计时电路设计 1 前言 在生活和生产的各领域中,凡是有自动控制要求的地方都会有单片机的身影出现;从简单到复杂,从空中、地面到地下,凡是能想像到的地方几乎都有使用单片的需求。现在尽管单片机的应用已经很普遍了,但仍有许多可以用单片机控制而尚未实现的项目,因此,单片机的应用大有想像和拓展空间。单片机的应用有利于产品的小型化、多功能化和智能化,有助于提高劳动效率,减轻劳动强度,提高产品质量,改善劳动环境,减少能源和材料消耗,保证安全等。但是,单片机应用的意义绝不仅限于它的广阔范围以及所带来的经济效益上,更重要的意义还在于:单片机的应用正从根本上改变着传统的控制系统设计思想和设计方法。从前必须有模拟电路或数字电路实现的大部分功能,现在已能使用单片机通过软件(编程序)方法实现了。这种以软件取代硬件并提高系统性能的控制系统“软化”技术,称之为微控制技术。微控制技术是一种全新的概念,是对传统控制技术的一次革命。随着单片机应用的推广普及,微控制技术必将不断发展、日益完善和更加充实。 近年来随着计算机在社会领域的渗透, 单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。模拟多通道压力系统是利用压力传感器采集当前压力并反映在显示器上,它可以分析压力过量程,并发出报警。并采用电子秤原理可根据输入单价准确的计算出物体的金额。本篇论文讨论了简单的倒计时器的设计与制作,对于倒计时器中的四位LED数码显示器来说,我为了简化线路、降低成本,采用以软件为主的接口方法,即不使用专门的硬件译码器,而采用软件程序进行译码。 2课程设计的目的和要求 2.1目的 课程设计是单片机课程教学的最后一个环节,是对学生进行全面的系统的训

C语言实验报告

实验一进制转换 一、实验要求 采用模块化程序设计完成进制转换。由键盘输入一个十进制正整数,然后将该数转换成指定的进制数(二、八、十六) 形式输出。指定的进制由用户输入。 二、实验目的 1、熟悉C 环境的安装、使用。 2、承上启下,复习《C 程序设计》等基础课程的知识。 3、掌握C 语言编程的方法。 三、预备知识 1、VC6.0的安装与使用。 2、C 程序设计基础知识。 四、实验内容 采用模块化程序设计完成进制转换。 五、程序框图 六、程序清单 1. 编写主函数:输入需转换的数与转换的进制 2. 编写子函数 (1)函数转换为除16进制以外的进制转换算数编程,使用while 循环实现计算进制的转换,并输出转换后的数字; (2)函数转换为16进制,用while 函数实现16进制转换的计算并输出16进制转换后的数据; 3. 编写数组,关于16进制的一系列字符 4. 编写主函数加入do while 使函数可以循环。

七、实验步骤 #include char num[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; void fun(int n, int m) { int i=-1, a[100]; if(m!=16) { while(n) { a[i++]=n%m; n=n/m; } while(i!=-1) printf("%d",a[--i]); printf("\n"); } else { while(n) { a[++i]=num[n%16]; n/=16; } while(i!=-1) printf("%c",a[i--]); printf("\n"); } } int main() { int a, c; char cIn = 0; do { printf("\n输入正整数,转换的进制:"); scanf("%d %d",&a,&c); fun(a,c); printf("Go on? (Y/N):"); cIn = getchar( ); if(cIn == 'N' || cIn == 'n') return 0; } while(1);fun(a,c);

单片机原理与应用课程设计题目2012

《单片机原理与应用》课程设计题目 1.电子秒表 本设计以MCS-51系列单片机为核心,采用常用电子器件设计,一个电源开关,两个按键,三位数码管显示,打开电源开关后显示8,每秒循环左移一位,即□□8—>□8□—>8□□—>□□8—>…,按A键开始计时,实时显示所经历的时间,按B键停止计时并显示从开始到当前时刻的时间,要求精确到0.1秒,量程为0~99.9秒。 要求按键输入采用中断方式,按键A接INT0,按键B接INT1。 2.智能温控器 本设计以MCS-51系列单片机为核心,采用常用电子器件设计,一个电源开关,两个控制温度设定按键(增大/ 减小),四位数码管分别显示设定温度和实际温度,量程为0~99度,打开电源开关后设定温度值初始化为26度。 按键输入采用中断方式,两个按键分别接INT0和INT1. 采用温度传感器进行温度测量,模数转换采用ADC0809. 单片机根据设定温度S和实测温度P控制继电器R的动作,死区设为2度:当P<=S-1时,控制R接通电加热回路; 当P>S+1时,控制R断开电加热回路; 当S-1

信号发生器实验报告

电子线路课程设计报告设计题目:简易数字合成信号发生器 专业: 指导教师: 小组成员:

数字合成信号发生器设计、调试报告 一:设计目标陈述 设计一个简易数字信号发生器,使其能够产生正弦信号、方波信号、三角波信号、锯齿波信号,要求有滤波有放大,可以按键选择波形的模式及周期及频率,波形可以在示波器上 显示,此外可以加入数码管显示。 二、完成情况简述 成功完成了电路的基本焊接,程序完整,能够实现要求功能。能够通过程序控制实现正弦波的输出,但是有一定噪声;由于时间问题,我们没有设计数码管,也不能通过按键调节频率。 三、系统总体描述及系统框图 总体描述:以51单片机开发板为基础,将输出的数字信号接入D\A转换器进行D\A转换,然后接入到滤波器进行滤波,最后通过运算放大器得到最后的波形输出。 四:各模块说明 1、单片机电路80C51 程序下载于开发板上的单片机内进行程序的执行,为D\A转换提供了八位数字信号,同时为滤波器提供高频方波。通过开发板上的232串口,可以进行软件控制信号波形及频率切换。通过开发板连接液晶显示屏,显示波形和频率。 2、D/A电路TLC7528 将波形样值的编码转换成模拟值,完成单极性的波形输出。TLC7528是双路8位数字模拟转换器,本设计采用的是电压输出模式,示波器上显示波形。直接将单片机的P0口输出传给TLC7528并用A路直接输出结果,没有寄存。 3、滤波电路MAX7400 通过接收到的单片机发送来的高频方波信号(其频率为所要实现波频率的一百倍)D转换器输出的波形,对转换器输出波形进行滤波并得到平滑的输出信号。 4、放大电路TL072

TL072用以对滤波器输出的波进行十倍放大,采用双电源,并将放大结果送到示波器进行波形显示。 五:调试流程 1、利用proteus做各个模块和程序的单独仿真,修改电路和程序。 2、用完整的程序对完整电路进行仿真,调整程序结构等。 3、焊接电路,利用硬件仿真器进行仿真,并用示波器进行波形显示,调整电路的一些细节错误。 六:遇到的问题及解决方法 遇到的软件方面的问题: 最开始,无法形成波形,然后用示波器查看滤波器的滤波,发现频率过低,于是检查程序发现,滤波器的频率设置方面的参数过大,延时程序的参数设置过大,频率输出过低,几次调整好参数后,在进行试验,波形终于产生了。 七:原理图和实物照片 波形照片:

相关文档
最新文档