1、 课程设计任务书课程设计任务书 课 程: 单片机实训 题 目: 函数发生器 姓 名: 学 号: 系 别: 电气工程系 专 业: 电气工程及其自动化 1 目目 录录 1、课程设计概述 2 2、课程设计题目和实现目标 . 2 3、设计方案 . 2 4、Proteus 仿真原理图 . 7 5、程序流程图 . 7 6、程序代码 . 8 7、调试总结 . 16 8、设计心得体会 16 9、参考文献 . 16 2 1 1、课程设计概述、课程设计概述 函数发生器是一种多波形的信号源。它可以产生正弦波、方波、三角波、锯 齿波, 甚至任意波形。 它的用途很广泛。 可以用于生产测试、 仪器维修和实验室, 还广泛使
2、用在其它科技领域,如医学、教育、化学、通讯、地球物理学、工业控 制、军事和宇航等。 本文是做基于单片机的信号发生器的设计, 将采用编程的方法来实现三角波、 锯齿波、矩形波、正弦波的发生。根据设计的要求,对各种波形的频率和幅度进 行程序的编写,并将所写程序装入单片机的程序存储器中。在程序运行中,当接 收到来自外界的命令, 需要输出某种波形时再调用相应的中断服务子程序和波形 发生程序,经电路的数/模转换器和运算放大器处理后,从信号发生器的输出端 口输出。 本方案是基于 AT89C51 与 PCF8591 的单缓冲方式接口电路来设计。单缓 冲式接口电路具有过程简单,容易实现。由于本设计运用汇编的编程
3、语言,导致 用独立式键盘来实现简单控制。本方案所产生的信号频率稳定性高,精确度高。 而且在硬件方面它所选的元器件比较常见。所以总的来说本方案的性价比高。 2 2、课程设计题目和实现目标、课程设计题目和实现目标 题目:函数发生器 要求: 1、键盘输入产生三角波,正弦波,锯齿波,梯形波,任意波形(用示波器观察) 2、频率可调 3、幅值可调 3 3、 设计方案设计方案 (1(1)主控电路)主控电路 AT89C52 是一个低电压,高性能 CMOS 8 位单片机,片内含 8k bytes 的可反复擦写的 Flash 只读程序存储器和 256 bytes 的随机存取数据存储 器(RAM) ,器件采用 AT
4、MEL 公司的高密度、非易失性存储技术生产,兼容 标准 MCS-51 指令系统,片内置通用 8 位中央处理器和 Flash 存储单元,功 能强大的 AT89C52 单片机可为您提供许多较复杂系统控制应用场合。 AT89C52 有 40 个引脚,32 个外部双向输入/输出(I/O)端口,同时内 含 2 个外中断口,3 个 16 位可编程定时计数器,2 个全双工串行通信口,2 个读写口线,AT89C52 可以按照常规方法进行编程,但不可以在线编程(S 系 列的才支持在线编程)。其将通用的微处理器和 Flash 存储器结合在一起, 特别是可反复擦写的 Flash 存储器可有效地降低开发成本。 兼容
5、MCS51 指令系统 8k 可反复擦写(1000 次)Flash ROM 32 个双向 I/O 口 256x8bit 内部 RAM 3 3 个 16 位可编程定时/计数器中断 时钟频率 0-24MHz 2 个串行中断 可编程 UART 串行通道 2 个外部中断源 共 6 个中断源 2 个读写中断口线 3 级加密位 低功耗空闲和掉电模式 软件设置睡眠和唤醒功能 中断系统是使处理器具有对外界异步事件的处理能力而设置的。当中央处 理器CPU正在处理某件事的时候外界发生了紧急事件, 要求CPU暂停当前的工作, 转而去处理这个紧急事件。在波形发生器中,只用到片内定时器计数器溢出时 产生的中断请求, 即是
6、在 AT89C52 输出一个波形采样点信号后, 接着启动定时器, 在定时器未产生中断之前,AT89C52 等待,直到定时器计时结束,产生中断请求, AT89C52 响应中断,接着输出下一个采样点信号,如此循环产生所需要的信号波 形。如图所示 2.1,AT89C52 所在电路中的工作情况。 (2 2)独立式键盘电路)独立式键盘电路 独立式键盘中,各按键相互独立,每个按键各接一根输入线,每根输入 线上的按键工作状态不会影响其它输入线上的工作状态。因此,通过检测输 入线的电平状态就可以很容易的判断按键是否被按下了。独立式键盘电路配 置灵活,软件结构简单。但每个按键需占用一根输入线,在按键数量较多时, 输入口浪费大,电路结构显得很繁杂,故此种键盘适用于按键较少或操作速 度较高的场合。如图 2.2 所示,独立式按键电路。 (3 3)数)数/ /模转换电路模转换电路 PCF8591 是一个单片集成、单独供电、