三档引脚音频接口类型哪个是左右声道和底线?图

您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
北邮小学期数控音频播放器的硬件实现修订版_new要点.doc 32页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
你可能关注的文档:
··········
··········
电 路 综 合 实 验
数控音频播放器的硬件实现
成员 班级 学号 序号
一. 内容简介 1
1.2关键词 1
二. 实验准备 1
2.1实验内容 1
2.2实验材料 2
三. 设计方案 3
3.1整体设计 3
3.2基本模块设计 3
电源模块(Power Module) 3
555振荡模块(555
Oscillatio
3.2.3数字逻辑模块(Digital Logic Module) 8
音频放大模块(Audio Amplification Module) 10
功放模块(Amplifier Module) 12
3.3创新拓展 13
3.3.1多档数字可调 13
3.3.2巴特沃思滤波器 15
3.4整机电路图 16
3.5电路图实例 17
调试和修改 17
电源模块(Power Module) 17
555振荡模块(555 Oscillatio
Module) 18
数字逻辑模块(Digital Logic Module) 18
音频放大模块(Audio Amplification Module) 18
功放模块(Amplifier Module) 19
五. 系统测试 19
5.1测试工具 19
5.2整机测试 20
5.2.1噪声测试 20
5.3分级测试 21
电源模块 21
555振荡模块 21
数字逻辑模块 21
音频放大模块 22
5.3.5功率放大模块 22
六. 实验总结 23
总结(一) 23
总结(二) 24
总结(三) 25
音频播放器主要实现音频的放大与播放。此次实验所设计的音频播放器由电源模块、振荡电路、数字逻辑控制电路、音频放大电路、功率放大电路这五个模块组成,实现了手机,电脑的输出音频的放大。我们采用对信号进行前置放大,对信号实现功率放大并驱动喇叭发声,同时采用两个继电器实现对音量三档位调控。
此报告分模块详细介绍了系统的设计思路和过程,包括设计原理、芯片构造图、实现电路图,并记录了调试修改的过程和数据,对系统进行了分模块测试和整体测试,得到了相应的分析和结论。除了完成基本设计要求之外,我们还对对系统进行了拓展和创新设计,主要包括三档增益可调、巴特沃思滤波器、双功率桥接等。既体现了电路设计的基本原理与应用,又展现了综合电子电路实验的新颖性和创造性。
数控音频放大,滤波,音量调节,三档位调控,巴特沃思滤波器
2.1实验内容
(Category) 内容( Content)
(System Design) 功能分析实现、基本设计、拓展设计
(Module Design) 模块功能分析、模块原理、模块电路图
(Innovation &
Extension) 三档数字增益可调、巴特沃思滤波器
(Module Implementation) 搭建电路、调试模块、解决问题、改进设计
(Module Testing) 测试各模块参数、分析性能指标、提出改进方案
(Overall Analysis) 综合给出整机的功能测试和分析结果
2.2实验材料
(Module Name) 器件名称
(Component Name) 数量
(Quantity) 作用
(Function Description)
Power Module 电源适配器 1 直流5V输出
1 与适配器配合使用
开关 1 控制电路通断
负压芯片LT1026
1 产生负压
1 负压稳压
1 指示电路通断状态
555振荡模块
555Oscillatio Module NE555 1 产生矩形波
100k滑动变阻器 2 调整占空比及频率
电容1uF 1 调整频率
电容10uF 1 高频滤波电容
数字逻辑模块
Digital Logic
Module 74LS161芯片 1 实现10进制计数
74LS138 芯片 1 译码驱动数码管
74LS00芯片 1 提供基本逻辑门
共阴极LED数码管 1 显示数字
按键开关 2 实现手动计数及清零
5k上拉电阻
1 使得按键开关稳定
音频放大模块
Audio Amplification
Module LM358芯片 1 构成巴特沃斯滤波器
NE5532芯片
正在加载中,请稍后...基于 ADuC848 嵌入式系统的实验和课程设计指导书(汇编语言版本)二○一一年三月 目录第一章 硬件系统介绍 .................................................. 31.1 板上资源分布..................................................................................................................... 4 1.2 单片机 ADuC848 ............................................................................................................... 5 1.2.1 ADuC848 的简要介绍(针对本设计所选择的型号) ......................................... 5 1.2.2 单片机引脚分布 ..................................................................................................... 5 1.3 电源模块............................................................................................................................ 7 1.4 模数/数模转换................................................................................................................... 8 1.4.1 模数转换................................................................................................................. 8 1.5 RS232 串口 ......................................................................................................................... 9 1.6 PS/2 接口和红外接收 ...................................................................................................... 10 1.7 显示模块.......................................................................................................................... 10 1.7.1 LCD 显示............................................................................................................... 10 1.7.2 数码管................................................................................................................... 11 1.7.3 8 路 LED ................................................................................................................ 12 1.8 蜂鸣器和红外发送 .......................................................................................................... 13 1.9 SPI 接口、步进电机控制 ................................................................................................ 13 1.10 按键输入........................................................................................................................ 14 1.11 IIC 总线(RTC 时钟和 EEPROM) ............................................................................. 15 1.12 复位与下载.................................................................................................................... 16第二章 基础实验 ........................................................ 17实验一 实验二 实验三 实验四 实验五 实验六 实验七 实验八 实验九 I/O 口控制实验 ................................................................................................. 17 定时器、中断实验 ................................................................................................. 19 数码显示实验 ..................................................................................................... 23 蜂鸣器驱动实验 ................................................................................................. 28 128× 点阵型液晶显示实验............................................................................... 31 64 1602 字符显示实验 .................................................................................................. 43 矩阵键盘实验 ........................................................................................................... 43 A/D 转换实验 ............................................................................................................ 43 D/A 转换实验 ............................................................................................................ 43第三章 系统设计方法及设计课题 ............................ 443.1 单片机应用系统的设计过程 ....................................................................................... 44 3.1.1 方案论证和硬件系统设计 ........................................................................... 44 3.1.2 系统软件设计 ............................................................................................... 45 3.1.3 系统仿真调试设计 ....................................................................................... 45 3.2 设计课题....................................................................................................................... 46 3.2.1 多功能定时装置 ........................................................................................... 46 3.2.2 程控多波形信号发生器 ............................................................................... 46 3.2.3 LED 汉字计时报讯屏 .................................................................................. 472 3.2.4 简易多功能计数器 ......................................................................................... 48 3.2.5 LED 字符显示屏 .......................................................................................... 48 3.2.6 抢答器............................................................................................................. 48 3.2.7 秒表................................................................................................................. 49 3.2.8 数字密码锁 ..................................................................................................... 49 3.2.9 简易电子琴 ..................................................................................................... 49 3.2.10 交通灯 ........................................................................................................... 50 3.2.11 步进电机控制器 ............................................................................................ 50 3.2.12 A/D,D/A 转换板 ...................................................................................... 50 3.2.13 电子计算器 ................................................................................................... 51 3.2.14 可编程微波炉控制系统 ............................................................................... 51 3.2.15 简易超市收银机 ........................................................................................... 52 3.2.16 全自动洗衣机控制器 ................................................................................... 52 3.2.17......................................................................................................................... 53 3.2.18......................................................................................................................... 53 3.2.19......................................................................................................................... 53 3.2.20......................................................................................................................... 53 3.3 评分标准和注意事项 ................................................................................................... 53 3.3.1 选择课题 ......................................................................................................... 53 3.3.2 评分标准 ......................................................................................................... 54 3.3.3 实验室设备使用及安全和赔偿条例 ............................................................. 54第四章 Keil uVision4 的使用 ..................................... 554.1 4.2 4.3 4.4 前言.................................................................................................................................. 55 新建工程.......................................................................................................................... 55 工程设置.......................................................................................................................... 57 编译连接、下载和调试程序 .......................................................................................... 60 4.4.1 编译程序............................................................................................................... 60 4.4.2 在线下载程序 ....................................................................................................... 61 4.4.3 在线调试程序 ....................................................................................................... 63 4.4.4 软件仿真调试程序 ............................................................................................... 65第五章 PROTEUS 的使用.......................................... 665.1 前言................................................................................................................................ 66 5.2 操作步骤....................................................................................................................... 66 5.2.1 进入系统 ......................................................................................................... 66 5.2.2 界面简介 ......................................................................................................... 66 5.2.3 操作步骤 ......................................................................................................... 69 5.3 Proteus 与 KeiI 的结合.................................................................................................. 73第一章 硬件系统介绍本单片机学习板集成多个基础硬件资源模块, 各个资源模块可以相互组合使该板实现不3 同的功能。因此,本学习板既可用于51单片机的教学实验,又可用于做功能比较强的单片机 课程设计,是51单片机初学者的好帮手。1.1板上资源分布如图1.1所示。图1.1 板上资源分布1、2、3:单片机P0、P2、P3口引出接口(有限流保护电阻); 4:上排图形点阵LCD12864的接口、下排LCD1602的接口; 5、6:两路16位ADC输入、可作差分输入; 7、8:12位DAC输出、对DAC输出进行比例放大或者跟随的运放; 9:单片机AduC848; 10:无源蜂鸣器、由单片机PWM模块输出信号控制; 11:8位数码管; 12:SPI接口; 13:RS232串口(通过串口在线下载、单步、断点、运行到某一行等方式调试程序); 14:步进电机(5V、70欧姆、6线4相)接口; 15:8路LED,从左至右为LED7~0,分别被P0.7~P0.0控制; 16:复位按键和下载按键; 17、18:IIC总线上的EEPROM AT24C08和RTC DS1307; 19:IIC接口;4 20:PS/2接口; 21:红外接收头; 22:功能选择和配置插针; 23:4X4矩阵式键盘或4个独立按键; 24:直流电源输入; 此外还有红外二极管(由单片机 PWM 模块输出信号控制)、USB 电源输入接口。1.2单片机ADuC8481.2.1 ADuC848 的简要介绍(针对本设计所选择的型号)详细情况请参考芯片手册。 1、8051-based core、5V供电电压; 2、可以通过串口在线下载程序和单步、断点、运行到某一行等方式调试程序; 3、16位8通道Σ -Δ ADC,片内有1.25V参考电压、buffer和PGA; 4、12位电压输出DAC、Dual 16-BIT Σ -Δ DAC; 5、32kbyte程序存储器、4kbyte用户信息Flash存储器、256RAM+2048XRAM(byte); 6、PLL(12.58 MHz max)(片外只需接32.768kHz晶振); 7、3×16位定时/计数器、看门狗定时器; 8、11中断源(2优先级)、11位堆栈指针; 9、24I/O+8模拟或数字输入; 10、UART、 SPI和I2C、高速115200波特率发生; 11、Power supply monitor、上电复位、Dual 200μ A激励电流源。1.2.2 单片机引脚分布详见原理图。5 Pin1~4:(P1.0~P1.3)作为矩阵式键盘或独立按键的输入,P1口只能用于输入,默认 用于模拟输入, 作为数字输入使用时应先往P1口相应引脚写0, 这里可以用P0&=0xf0。 若P2、 P3、P0口要作为输入,则应往相应引脚写1。 Pin5、6:AVDD、AGND,模拟电源输入。 Pin7、8:外部参考电压接入,Pin7接AGND。片内DAC有2.5V内部参考,ADC有1.25V 内部参考。 Pin9、10:(P1.4、P1.5)两路AD输入,可做差分输入,需要设置ADC的寄存器。 Pin11、12:(P1.6、P1.7)各200uA激励电流源,可配合RTD等做应用。 Pin13:两路AD输入做普通输入时的电压参考端,AD输入电压不能低于此引脚电压。 Pin14:片内DAC输出。 Pin15:复位引脚。 Pin16、17:单片机RS232接口的RXD(P3.0) TXD(P3.1)。 Pin18:(P3.2) 外部中断0,用于红外接收和PS/2接口。 Pin19:(P3.3)LCD1602,LCD12864A的EN引脚,控制第一位数码管。 Pin20、21:DVDD、DGND数字电源输入。 Pin22:(P3.4)PS/2接口的data信号。 Pin23:(P3.5)LCD1602和LCD12864A的RW。 Pin24:(P3.6)LCD1602和LCD12864A的RS。 Pin25:LCD12864A的CS1。 Pin26:IIC接口时钟信号。 Pin27:IIC接口data信号。 Pin28:(P2.0)SPI接口时钟信号。6 Pin29:(P2.1)SPI接口MOSI信号、控制第6位数码管的位码。 Pin30:(P2.2)SPI接口MISO信号、控制第7位数码管的位码。 Pin31:(P2.3)SPI接口SS信号、控制第8位数码管的位码;P2.0~3也作为4X4矩阵式 键盘的扫描输出信号、步进电机的控制信号、数码管第数码管第6、7、8位位码。但是SPI、 4X4矩阵式键盘、步进电机、数码管第6、7、8位功能不能同时实现。 Pin32、Pin33:接外部32.768KHz晶振。 Pin34、Pin35:DVDD、DGND。 Pin36:(P2.4)LCD12864A的CS2。 Pin37:(P2.5)内部PWM模块输出,控制红外LED。 Pin38:(P2.6)内部PWM模块输出,控制蜂鸣器。 Pin39:(P2.7)内部PWM模块的外部时钟输入(也可以用内部时钟)。 Pin40:EA,低电平有效,正常使用时拉低。 Pin41:PSEN,在此引脚电平为低时按复位键进入debug模式,可以下载和调试程序。 Pin42:ALE。 Pin47、Pin48:DGND、DVDD。 Pin43、44、45、46、49、50、51、52:P0口、LCD1602和LCD12864的数据总线,数码 管的段码。1.3 电源模块电源模块原理图如图 1.2 所示。本学习板共有如下3种供电方式: (1)5V电源适配器供电(开关往上拨、插针1下面两脚接跳线帽)。 将开关sw4第2、3脚接通(开关往上拨),电源网络DVDD连接到插针1第2脚的输出, 将插针1的第1、2脚(插针1下面两脚)接跳线帽,DVDD直接连接到电源适配器输入端,即 为5V电源适配器供电模式。 (2)7~12V电源适配器供电(开关往上拨、插针1上面两脚接跳线帽) 将开关sw4第2、3脚接通(开关往上拨),电源网络DVDD连接到插针1第2脚的输出, 将插针1的第2、 (插针1上面两脚) 3脚 接跳线帽, DVDD连接到稳压芯片7805的输出, 而7805 的输入端连接到电源适配器输入端,即为7~12V的电源适配器经7805给学习板供电的模式。7 (3)USB供电(开关往下拨)。 将开关sw4第1、2脚接通(开关往下拨),电源网络DVDD连接到USB电源输入端。 对DVDD网络和AVDD网络设了测试点,方便调试。测试点具体位置参见附图1。1.4 模数/数模转换1.4.1 模数转换ADuC848 内部有 16 位 ADC,模拟信号输入模块原理图如图 1.3 所示。图1.3 模拟信号输入模块D15和D16为钳位保护二极管,R55为限流保护电阻。其中CONAIN1对应板上的接口5、 CONAIN2对应板上的接口6。CONAIN1和CONAIN2的第1、2脚在板上的分布和在原理图上 的类似,均为1脚朝上。 模拟信号有两种输入方式: (1)两路单端输入。把输入信号电压高的一端接到第1脚,电压低的一端接到同一个接 口的第2脚。 (2)一路差分输入。把输入信号的两端分别接到CONAIN1和CONAIN2的第1脚。 1.4.2 数模转换8 ADuC848 内部有 12 位 DAC, 并有专门的 DA 输出引脚。 DAC 信号输出模块原理图如图 1.4 所示。图1.4 DAC信号输出模块本设计对片内DA的输出配置了运放LM358(该运放在单电源情况下对较低电平仍具有 很好跟随效果),以增强其驱动能力或对DA输出做适当放大,其中R56和R57的大小决定放 大倍数(A=1+R90/R89)。1.5 RS232串口串口连接原理图如图 1.5 所示。9 图1.5 RS232串口模块该模块中采用maxin公司的max232作电平转换,为方便调试硬件,对RXD,TXD信号设 测试点和LED。测试点和LED具体位置参见附图1。1.6 PS/2接口和红外接收该模块原理图如图 1.6 所示。图1.6 PS/2接口和红外接收模块本设计中外部中断0 (P3.2) 连接到PS/2接口的时钟信号或者红外接收头SM0038的输出。 可以通过插针进行选择。外部中断1作普通IO口使用。 该模块原理图如图2.6所示。 关键网络名解释: (1)PS2_CLK:PS/2接口时钟信号 (2)PS2_DATA:PS/2接口数据信号 (3)INT0:外部中断0 (4)INF_IN:红外一体化接收头SM0038的输出。 插针配置: (1)J13第1、2脚(板上为插针11左边两脚)接跳线帽,INT0接PS/2的clock信号。 (2)J13第2、3脚(板上为插针11右边两脚)接跳线帽,INT0接红外信号。1.7 显示模块本系统共有四种显示模式可供选择,这四种模式分别是:LCD12864、LCD1602、数码 管、8路LED。 引脚复用: 四种显示模式复用数据总线,控制总线,故用户只可选择其中一种使用。1.7.1 LCD 显示LCD 显示信号连接图如图 1.7 所示。10 图1.7 LCD信号连接关键网络名和引脚名解释: (1)DISCTRL0~4:显示控制信号。 (2)D0~D7、DB0~DB7:数据总线。 (3)E:LCD使能信号。 (4)RS:数据、指令选择信号。 (5)RW:读、写选择信号。 (6)CS1、CS2:LCD12864由两部分组成,CS1和CS2为选择信号。 板上接口4的上排位LCD12864的接口, 下排位LCD1602的接口, 排针和排母左对齐插入。 切勿插错。1.7.2 数码管该模块原理如图 1.8 所示。11 图1.8 数码管驱动电路关键网络名解释: (1)DS0~7:数码管段码。 (2)BIT0~7:数码管位码。 (3)MOTORA~D:步进电机驱动信号。 (4)DISCTRL0~4:显示控制信号,控制数码管低5位。 (5)D0~8:单片机P0口。 本设计采用共阴极数码管,段码由PNP三极管驱动,位码由NPN型三极管驱动。 引脚复用: 数码管低5位(板上为右边5位)的位码由DISCTRL0~4控制,可单独使用,高3位的位 码控制信号与SPI信号,电机驱动信号,4X4矩阵式键盘复用,使用数码管高3位时参与复用 的其他功能则不能使用。 插针配置: (1)若要使用数码管第4~0位(板上为右边5位),可以接通插针8,为减少功耗,不用 请断开。 (2)若要使用数码管第7~5位(板上为左边3位),可以分别接通插针5~7和9,为减少 功耗,不用请断开。1.7.3 8 路 LED该模块原理如图 1.9 所示。12 图1.9 8路LED8个LED接P0口,低电平时LED亮,这样不会影响P0口逻辑电平。LED限流电阻取4.7K, 通过LED电流约为0.8mA,在P0口驱动能力范围之内。该部分可以用于做跑马灯等实验、帮 助用户更好的了解和熟练对端口的操作、还可以用于观测P0口的状态。 插针配置: (1)若要使用该模块,可以接通插针2,为减少功耗,不用请断开。1.8 蜂鸣器和红外发送该模块原理图如图 1.10 所示。图1.10 蜂鸣器和红外发送本设计中采用无源电磁式蜂鸣器,蜂鸣器由PWM1(P2.6)控制,红外二极管由PWM0 (P2.5)控制。PWM1和PWM0均为片内PWM模块的输出。蜂鸣器和红外LED的驱动均采用 普通NPN三极管。为方便调试,对该模块中的信号设了测试点,具体位置参见附图1。 插针配置: (1)若要使用蜂鸣器,可以接通插针3,为减少功耗,不用请断开。 (2)若要使用红外二极管,可以接通插针4,为减少功耗,不用请断开。1.9 SPI接口、步进电机控制13 该模块原理图如图 1.11 所示。图1.11 步进电机驱动电路本设计中步进电机为5V、70欧姆、4相步进电机。 引脚复用: AduC848内部有SPI通信模块,所占用的引脚为P2.0~P2.3。同时,P2.0~P2.3又复用作步 进电机控制信号、4X4矩阵式键盘列扫描信号,P2.1~P2.3还复用为数码管第5、6、7位位码 控制信号。参与复用的一项功能使用时,其他参与复用的功能则不能使用。 插针配置: (1)若要驱动步进电机,可以接通插针9,为减少功耗,不用请断开。1.10 按键输入该模块原理如图 1.12 所示。14 图1.12 按键模块由于P1口(用于行扫描)内部无上拉电阻,为使无键按下时行信号为高电平,故将行 信号接上拉电阻,电阻大小10K即可。 引脚复用: P2.0~P2.3为4X4矩阵式键盘列扫描信号,又复用作步进电机控制信号,SPI信号、 P2.1~P2.3还复用为数码管第5、6、7位位码控制信号。参与复用的一项功能使用时,其他参 与复用的功能则不能使用。 插针配置: (1)插针10上面两脚接跳线帽,4X4矩阵式键盘输入,行扫描信号为P1.0~P1.3,列扫 描信号为P2.0~2.3。 (2)插针10下面两脚接跳线帽,独立按键输入,该模式有4个独立按键可用,按键扫描 所用端口为P1.0~P1.3。这4个按键为4X4矩阵键盘的左边4个按键。1.11 IIC总线(RTC时钟和EEPROM)该模块原理图如图 1.13 所示。15 图1.13 IIC总线连接2AduC848片内有I C模块,并有独立的引脚SCLOCK和SDATA。板上的RTC时钟芯片 DS1307和EEPROM芯片AT24C08均使用了I2C总线。板上设置了I2C接口,方便MCU与板外 的I2C设备进行通信。对SCLOCK和SDATA设置了测试点。具体位置参见附图1。1.12 复位与下载复位与下载电路如图 1.14 所示。图1.14 复位与下载进入下载或调试模式的步骤为: (1)按住BTN1(down or debug按键)不要放开; (2)按下 BTN2(reset 按键),然后放开 BTN2(reset 按键); (3)放开BTN1(down or debug按键)。 这样单片机就进入了调试模式,可以下载或调试程序。16 第二章 基础实验实验一 I/O 口控制实验一、实验目的 1、学习P0、P1、P2、P3口的使用方法 2、学习延时子程序的编写和使用 3、学习Keil uVision4软件的使用 二、实验内容及步骤 用P0 口做输出口,接八位LED显示,程序功能使发光二极管从右到左轮流循环点亮。 1、使用单片机最小应用系统。开关往下拨,使用5VUSB电源模式。若要使用其他电源,开 关和插针1的设置请参考1.3节; 2、插针2(LED)用短路帽接通,使能连接板上8路LED。其它插针如下图。3、在线下载和调试程序前请检查硬件配置、电源的连接、RS232通信线的连接、工程设置、 通信端口的选择。 4、打开Keil uVision4仿真软件,首先建立本实验的项目文件,接着添加源程序,进行编译, 直到编译无误。进行软件设置,选择硬件仿真,选择串行口。 5、打开电源,点击开始调试按钮,点击RUN 按钮运行程序,观察发光二极管显示情况。发 光二极管单只从右到左轮流循环点亮。 三、流程图及源程序 1.流程图17 2.源程序 ORG 0000H LOOP: MOV A, #0FEH MOV R2,#08H OUTPUT: MOV P0,A RL A ACALL DELAY DJNZ R2,OUTPUT LJMP LOOP DELAY: MOV R6,#00H MOV R7,#00H DELAYLOOP: DJNZ R6,DELAYLOOP DJNZ R7,DELAYLOOP RET END 四、思考题 (1)修改程序,使发光二极管的现象发生变化。 例如:全亮 ~ 发光二极管一个一个的熄灭 ~ (2)对于本实验延时子程序 Delay: MOV R6,#00H MOV R7,#00H DelayLoop: DJNZ R6,DelayLoop DJNZ R7,DelayLoop RET 假设使用12MHz 晶振,粗略计算此程序的执行时间为多少? 全灭,循环显示 ;延时程序18 实验二 定时器、中断实验一、实验目的 1. 2. 3. 学习CPU内部计数器的使用和编程方法。 掌握中断处理程序的编程方法。 掌握Proteus软件的使用方法二、实验内容和原理 1、实验内容 模拟时序控制装置。观测发光二极管现象: L1、3→L2、4→L5、7→L6、8→L1、3、5、7→L2、4、6、8→全亮→全灭 2、时间常数的计算。 CPU内部定时器1,按方式1工作,每0.1秒钟T1溢出中断一次。 (假设使用6.144MHz 晶振) 机器周期=12÷晶振频率=12÷(6.144*10 )=1.9531*10 设初值为X,则(216 6 -6S-X)*1.953*10-6=0.1X=14336=3800H TH1=38H,TL1=00H 三、实验步骤(略,同实验一) 四、程序流程图及源程序: 1、中断子程序流程图:19 中断入口关闭计数控制位计数值减 1装入时间常数开放计数控制位返回 2、主程序流程图20 入口 置首显示代码(A) ,初始地址偏移量(R1) ,计数初值(R0) 定时器 1 初始化,设计数初值开放 EA,ET1,TR1NR0=0 Y 装计数初值于 R0指向下一个显示代码单元 N 地址偏移=10装入初始偏移量Y从表中取显示代码显示3、 程序清单: ORG 0000H LJMP ORG JMP ORG START: MOV21START 001BH IT11 0030H A,#0FAH MOV MOV MOV MOV MOV ORL SETB LOOP1: CJNE MOV INC CJNE MOV LOOP2: MOV MOVC LJMP DB DISP: MOV JMP IT11: CLR DEC MOV MOV SETB RETI END 五、思考题:R1,#03H R0,#0AH TMOD,#10H TL1,#00H TH1,#38H IE,#88H TR1 R0,#00,DISP R0,#0AH R1 R1,#0BH,LOOP2 R1,#03 A,R1 A,@A+PC DISP 0FAH,0F5H,0AFH,5FH,0AAH,55H,00H,0FFH P0,A LOOP1 TR1 R0 TL1,#00H TH1,#38H TR11、 改变发光二极管闪烁的间隔时间。 2 、P1口添加一个暂停按键,当该键按下时显示暂停,保持当前状态;再次按键,继续显示。 3、去掉定时与中断,编写延时子程序。 4、P1口添加多个按键,分别对应实现不同的显示功能。 (例如:暂停键、显示状态顺序执行和 逆序执行键??)22 实验三数码显示实验一、实验目的 1.进一步掌握定时器的使用和编程方法。 2.了解七段数码显示数字的原理。 3.熟练掌握Keil uVision4和Proteus联调的方法。 二、实验内容 做一个电子钟:利用定时器0定时中断,控制电子钟走时;利用单片机上的四位数码管 显示分钟和秒钟。 三、程序流程图和源程序 1、主程序流程图 初始化程序开始计数显示缓冲单元首址―R0,扫描初值―R2取显示单元值, 转为段码送段数据口扫描值送位数据口显示单元地址加一扫描值带进位位(=0)右移一位N 扫描值=0?Y 取分、秒计数值,经变换放入相应显示单元23 2、中断子程序流程图: 中断入口定时器置初值时间计时单元加一 YN计时单元=10?Y 计时单元置 0秒加一,十进制调整N秒值=60?Y秒置 0, 分加一, 十进制调整N分值=60?Y 分置 0返回24 3、程序清单: ST_ADDR EQU 0000H BUF EQU 23H SBF EQU 22H;存放秒 MBF EQU 21H;存放分 ORG ST_ADDR LJMP MAIN ORG ST_ADDR+0BH;定时器0中断入口 LJMP CLOCK ORG ST_ADDR+200H MAIN: MOV R0,#40H MOV A,#00H MOV @R0,A INC R0 MOV @R0,A INC R0 MOV @R0,A INC R0 MOV @R0,A INC R0 MOV @R0,A INC R0 MOV @R0,A ANL TMOD,#0F0H ORL TMOD,#01H MOV TL0,#00H MOV TH0,#38H MOV BUF,#00H;清零 MOV SBF,#00H MOV MBF,#00H SETB ET0;开定时器0 SETB EA SETB TR0 DS1: MOV R0,#45H MOV R2,#08H DS2: CLR P2.4 MOV A,R225 MOV P3,R2 MOV A,@R0 LCALL TABLE MOV P0,A LCALL DELAY1;延时 DEC R0 CLR C MOV A,R2 RLC A MOV R2,A CJNE R2,#10H,LL RLC A MOV R2,A LL:CJNE R2,#00H,DS2 MOV R0,#45H MOV A,SBF LCALL GET MOV A,MBF LCALL GET SJMP DS1 TABLE: INC A MOVC A,@A+PC RET DB 03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,19H,0BFH GET: MOV R1,A ANL A,#0FH MOV @R0,A DEC R0 MOV A,R1 SWAP A ANL A,#0FH MOV @R0,A DEC R0 RET CLOCK:MOV TL0,#00H;定时器中断子程序 MOV TH0,#38H PUSH PSW PUSH ACC26 INC BUF MOV A,BUF CJNE A,#0AH,QUIT MOV BUF,#00H MOV A,SBF INC A DA A MOV SBF,A CJNE A,#60H,QUIT MOV SBF,#00H MOV A,MBF ADD A,#1H DA A MOV MBF,A CJNE A,#60H,QUIT MOV MBF,#00H QUIT: POP ACC POP PSW RETI DELAY1: DEL11: DEL12: DEL13: MOV R4,#10;延时程序 MOV R5,#0AH MOV R3,#18H DJNZ R3,DEL13 DJNZ R5,DEL12 DJNZ R4,DEL11 RET END 四、实验板插针配置: 使用数码管第3~0位(板上为右边4位),用短路子接通插针8。 五、思考题 1.改变显示内容,使数码管显示小时和分钟。 2.在第一题的基础上,改写程序,使第二个数码管的小数点做为秒闪,按一秒的周期闪烁。 3.在原程序的基础上,改写程序,使数码管分时显示小时和分钟、分钟和秒钟。 4.添加按键,可以调整时钟和分钟。27 实验四蜂鸣器驱动实验一、实验目的 1. 了解输入/输出端口控制方法。 2. 了解音频发声原理。 二、实验原理 音阶由不同频率的方波产生,音阶与频率的关系如表一所示。方波的频率由定时器控制。定 时器计数溢出后,产生中断,将P2.6口取反即得周期方波。每个音阶相应的定时器初值可按 下法计算:晶振为6.144MHZ时,音阶“1”相应的定时器初值为X,则 1÷262*2=(216-X)*12÷(6.144*106) 可得 X=64559D=FC2FH,其它的可同样求得(见下表 单位:HZ,X为16进制) 音 调 频 率 X FA 49 FA E6 FB 7E FC 0C FC 2F FC 8F FC F8 FD 23 FD 73 FD BA FD FA FE 18 FE 4C FE 94 175 196 220 247 262 294 330 349 392 440 494 523 587 659 4 5 6 7 1 2 3 4 5 6 7 1 2 3音的节拍由延时子程序实现。延时子程序实现基本延时时间,节拍值只能是它的整数倍。 三、实验内容及步骤 利用P2.6口输出不同频率的脉冲通过蜂鸣器发出不同频率音调。用短路帽接通插针三。 四、程序流程图和源程序 1、中断子程序流程图28 2、主程序流程图3、源程序清单 ST_ADDR EQU ORG LJMP ORG LJMP ORG MAIN: ORL SETB SETB MOV MOV LOP: JZ ANL 0000H ST_ADDR MAIN ST_ADDR+1BH INT_0 ST_ADDR+200H TMOD,#0FH TMOD,#10H ET1 EA DPTR,#TONE A,#00H MOVC A,@A+DPTR MAIN29 MOV MOV INC MOV MOVC MOV MOV SETB INC MOV MOVC MOV LOOP1: MOV LOOP2: MOVR5,A TH1,A DPTR A,#00H A,@A+DPTR R6,A TL1,R6 TR1 DPTR A,#00H A,@A+DPTR R2,A R3,#80H R4,#0FFH R4,LOOP3 R3,LOOP2 R2,LOOP1 DPTR A,#00H LOP DPH DPL ACC P2.6 TH1,R5 TL1,R6 TR1 ACC DPL DPH DB 0FCH,2FH,04H,0FCH,99H,04H,0FCH,0F8H,04H,0FDH,22H,04HLOOP3: DJNZ DJNZ DJNZ INC MOV LJMP INT_0: PUSH PUSH PUSH CPL MOV MOV SETB POP POP POP RETI TONE:DB 0FDH,073H,04H,0FDH,0BCH,04H,0FDH,0FAH,04H,0FEH,17H,04H DB 0FEH,17H,04H,0FDH,0FAH,04H,0FDH,0BCH,04H,0FDH,73H,04H,0FDH,22H,04H, DB 0FCH,0F8H,04H,0FCH,99H,04H,0FCH,2FH,04H,00H,00H,00H END 五、思考题 1、改编一首完整的新的歌曲。30 实验五 128×64 点阵型液晶显示实验一、实验目的 1、了解点阵型液晶显示器的工作原理。 2、了解点阵型液晶显示器控制方式。 二、实验原理 1、本实验采用内置控制器、不带字库的图形点阵液晶显示模块,点阵数为128×64。它 主要由行驱动器/列驱动器及128×64 全点阵液晶显示器组成, 可完成图形显示也可以显示8 ×4 个(16×16 点阵)汉字。 主要技术参数和性能: 1)电源VDD +5V 模块内自带-10V 负压用于LCD 的驱动电压 2)显示内容128(列) 64(行)点 3)全屏幕点阵 4)七种指令 5)与CPU 接口采用8 位数据总线并行输入输出和8 条控制线 6)占空比1/64 7)工作温度-10 +55 存储温度-20 +60 2、模块主要硬件构成说明(结构框图) IC1、IC2 为列驱动器,IC1 控制模块的右半屏,IC2 控制模块的左半屏, IC3 为行驱动 器。IC1、IC2、IC3 含有以下主要功能器件,了解如下器件有利于对LCD 模块的编程。 1)指令寄存器(IR):IR 是用于寄存指令码,与数据寄存器数据相对应,当D/I=0 时在E 信 号下降沿的作用下指令码写入IR 2)数据寄存器(DR):DR 用于寄存数据,与指令寄存器寄存指令相对应,当D/I=1 时在下降 沿作用下, 图形显示数据写入DR, 或在E 信号高电平作用下, 由DR 读到DB7~DB0 数据总线, DR 和DDRAM 之间的数据传输是模块内部自动执行的。 3)忙标志BF:BF 标志提供内部工作情况,BF=1 表示模块在内部操作,此时模块不接受外 部指令和数据; BF=0 时模块为准备状态, 随时可接受外部指令和数据。 利用STATUS READ 指 令可以将BF 读到数据总线从而检验模块之工作状态。 4)显示控制触发器DFF:用于模块屏幕显示开和关的控制,DFF=1 为开显示,DDRAM 的内容 就显示在屏幕上;DFF=0为关显示。DDF 的状态是指令DISPLAY ON/OFF 和RST 信号控制的。31 5)XY 地址计数器:XY 地址计数器是一个9 位计数器高,3 位是X 地址计数器,低6 位为Y 地址计数器。XY 地址计数器实际上是作为DDRAM 的地址指针,X 地址计数器为DDRAM 的页 指针, 地址计数器为DDRAM 的Y 地址指针。 地址计数器没有记数功能, Y X 只能用指令设置。 Y 地址计数器具有循环记数功能,各显示数据写入后 Y 地址自动加1, Y 地址指针从0 到 63。 6)显示数据RAM DDRAM DDRAM 是存储图形显示数据的,数据为1 表示显示选择,数据为0 表示显示非选择。 7)Z 地址计数器:Z 地址计数器是一个6 位计数器,此计数器具备循环记数功能,用于显 示行扫描同步,当一行扫描完成此地址计数器自动加1,指向下一行扫描数据,RST 复位后Z 地址计数器为0。Z 地址计数器可以用指令DISPLAY START LINE 预置,因此显示屏幕的起始 行就由此指令控制, 即DDRAM 的数据从哪一行开始显示在屏幕的第一行, 此模块的DDRAM 共 64 行,屏幕可以循环滚动显示64 行。 3、模块的外部接口:外部接口信号如下表所示 管脚号 管脚名称 LEVER 管脚功能描述 1 VSS 0 电源地 2 VDD 5.0V 电源电压 3 V0 5.0V -13V 液晶显示器驱动电压 4 D/I H/L D/I= H 表示DB7~DB0 为显示数据 D/I= L 表示DB7~DB0 为显示指令数据 5 R/W H/L R/W= H E= H 数据被读到DB7~DB0 R/W= L E= H L 数据被写到IR 或DR 6 E H/L R/W= L E 信号下降沿锁存DB7~DB0 R/W= H E= H DDRAM 数据读到DB7~DB0 7 DB0 H/L 数据线 8 DB1 H/L 数据线 9 DB2 H/L 数据线 10 DB3 H/L 数据线 11 DB4 H/L 数据线 12 DB5 H/L 数据线 13 DB6 H/L 数据线32 14 DB7 H/L 数据线 15 CS1 H/L H:选择芯片(右半屏)信号 16 CS2 H/L H:选择芯片(左半屏)信号 17 RET H/L 复位信号,低电平复位 18 VEE -10V LCD 驱动负电压 19 EL AC 背光板电源 20 EL AC 背光板电源 4、指令说明 指令表:1)显示开关控制(DISPLAY ON/OFF) 代码 R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 形式 0 0 0 0 1 1 1 1 1 D D=1:开显示(DISPLAY ON)意即显示器可以进行各种显示操作 D=0:关显示(DISPLAY OFF)意即不能对显示器可以进行各种显示操作 2)设置显示起始行 代码 R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB033 形式 0 0 1 1 A5 A4 A3 A2 A1 A0 显示起始行是由Z 地址计数器控制的,A5~A0 的6 位地址自动送入Z 地址计数器起始行 的地址可以是0~63 的任意一行。 例如选择A5~A0 是62 则起始行与DDRAM 行的对应关系如下 DDRAM 行 62 63 0 1 2 3 ?? 28 29 屏幕显示行 1 2 3 4 5 6 ?? 31 32 3)设置页地址 代码 R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 形式 0 0 1 0 1 1 1 A2 A1 A0 所谓页地址就是DDRAM 的行地址,8 行为一页,模块共64 行即8 页, A2~A0 表示0~7 页 读写数据对地址没有影响,页地址由本指令或RST 信号改变复位后页地址为0,页地址与 DDRAM的对应关系见DDRAM 地址表:4)设置Y 地址(SET Y ADDRESS) 代码 R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 形式 0 0 0 1 A5 A4 A3 A2 A1 A0 此指令的作用是将A5~A0 送入Y 地址计数器,作为DDRAM 的Y 地址指针,在对DDRAM 进 行读写操作后,Y 地址指针自动加1,指向下一个DDRAM 单元。 DDRAM 地址表:34 5)读状态(STATUS READ) 代码 R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 形式 0 0 BUSY 0 ON/OFF RET A3 A2 A1 A0 当R/W=1 D/I=0 时,在E 信号为H 的作用下,状态分别输出到数据总线DB7~DB0 的相应 位。 ON/OFF 表示DFF 触发器的状态。 RST RST=1 表示内部正在初始化,此时组件不接受任何指令和数据。 6)写显示数据(WRITE DISPLAY DATE) 代码 R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 形式 0 1 D7 D6 D5 D4 D3 D2 D1 D0 D7~D0 为显示数据,此指令把D7~D0 写入相应的DDRAM 单元,Y 地指针自动加1。 7)读显示数据(READ DISPLAY DATE) 代码 R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 形式 1 1 D7 D6 D5 D4 D3 D2 D1 D0 此指令把DDRAM 的内容D7~D0 读到数据总线DB7~DB0,Y 地址指针自动加1。 5、显示代码说明 使用代码生成软件,可生成字符、图片及汉字。 三、实验内容和步骤 1、将LCD12864插入电路板的接口4的上排位置。(注意:板上接口4的上排位是LCD12864的 接口,下排位是LCD1602的接口,排针和排母左对齐插入!切勿插错!) 2、全速运行程序,显示内容:有限公司(四行二列) 四、程序流程图和程序清单35 1、程序流程图2、程序清单 EQU 20H ;列方向地址指针(用于 LCDPOS 子程序) EQU 21H ;行方向地址指针(用于 LCDPOS 子程序) EQU P3.6 EQU P3.5 ; EQU P3.3 ; EQU P3.7 ; EQU P2.4 ; 0000H JMP START START: MOV SP,#60H MAIN: CALL LCDRESET MOV A,#55H CALL LCDFILL MOV DPTR,#STRING1 CALL PUTSTR CALL PUTSTR JMP MAIN DELAY400MS: MOV R0,#20 ;延时子程序(400MS) DL4_PA: MOV R1,#100 DL4_PB: MOV R2,#100 DJNZ R2,$ DJNZ R1,DL4_PB DJNZ R0,DL4_PA RET XPOS YPOS RSPIN RWPIN EPIN CS1PIN CS2PIN ORG36 DELAY: MOV R6,#2 DLY_PA: MOV R5,#0 DLY_PB: MOV R4,#0 DJNZ R4,$ DJNZ R5,DLY_PB DJNZ R6,DLY_PA RET GETSTRCHAR: GSC_PA: CLR A MOVC A,@A+DPTR INC DPTR MOV B,A INC A CLR C JZ GSC_LAX CLR A MOVC A,@A+DPTR INC DPTR SETB C GSC_LAX: RET PUTSTR: CALL DELAY CALL GETSTRCHAR PUSH DPL PUSH DPH JNC PSR_LAX JNB B.7,PSR_LBY ;CHINESE: CALL HZKPOS CALL PUTCHARDOT CALL PUTCHARDOT JMP PSR_LBX PSR_LBY: ;ENGLISH: CALL HZKPOS CALL PUTCHARDOT PSR_LBX: POP DPH POP DPL JMP PUTSTR PSR_LAX:POP DPH37 POP DPL RET PUTCHARDOT: MOV R7,#8 PAC_PA: CLR A MOVC A,@A+DPTR CALL LCDWRITE INC YPOS INC DPTR CLR A MOVC A,@A+DPTR CALL LCDWRITE DEC YPOS INC DPTR CALL CUSORNEXT MOV A,XPOS JNZ PAC_LAX INC YPOS PAC_LAX: DJNZ R7,PAC_PA RET HZKPOS: MOV R2,#5 HTP_PA: CLR C RLC A XCH A,B RLC A XCH A,B DJNZ R2,HTP_PA MOV DPTR,#HZKDOT ADD A,DPL MOV DPL,A MOV A,B ADDC A,DPH MOV DPH,A RET LCDFILL: MOV R7,A MOV YPOS,#0 LFL_PB: MOV XPOS,#0 LFL_PA: MOV A,R7 CALL LCDWRITE;LCD 整屏显示 A 的内容;定位并写数据38 CALL CUSORNEXT MOV A,XPOS JNZ LFL_PA ;XPOS&128 则循环(128 列) MOV A,YPOS JNZ LFL_PB ;YPOS&8 则循环(8 页) RET LCDWRITE: ;定位并写数据子程序 CALL LCDPOS ;内部写数指针定位 CALL LCDWD ;写数据 RET CUSORNEXT: ANL YPOS,#7 INC XPOS MOV A,XPOS JNB ACC.7,CNT_LAX MOV XPOS,#0 INC YPOS MOV A,YPOS ANL A,#0F8H JZ CNT_LAX MOV YPOS,#0 CNT_LAX: RET LCDPOS: ;内部写数指针定位子程序 PUSH ACC MOV A,XPOS JB ACC.6,LPS_LAY MOV A,YPOS ;XPOS 列方向小于 64 则对 CS1 操作 ANL A,#07H ADD A,#0B8H CALL LCDWC1 ;设页码 MOV A,XPOS ANL A,#3FH ORL A,#40H CALL LCDWC1 ;设列码 JMP LPS_LAX LPS_LAY:MOV A,YPOS ;XPOS 列方向大于等于 64 则对 CS2 操作 ANL A,#07H ADD A,#0B8H CALL LCDWC2 ;设页码 MOV A,XPOS ANL A,#3FH ORL A,#40H CALL LCDWC2 ;设列码39 LPS_LAX:POP ACC RET LCDWD: ;送数据子程序 MOV B,A MOV A,XPOS JB ACC.6,LWD_LAY MOV A,B ;XPOS 列方向小于 64 则对 CS1 操作 CALL LCDWD1 JMP LWD_LAX LWD_LAY:MOV A,B ;XPOS 列方向大于等于 64 则对 CS2 操作 CALL LCDWD2 LWD_LAX: RET LCDRESET: ;LCD 控制器复位 MOV A,#3FH ;打开 LCD 显示 CALL LCDWC1 CALL LCDWC2 MOV A,#0C0H ;设显示起始行 CALL LCDWC1 CALL LCDWC2 RET LCDWC1: ;送片 1 控制字子程序 CALL WAITIDLE1 MOV P0,A CLR RSPIN ;RS=0 RW=0 CS1=1 E=高脉冲 CLR RWPIN SETB CS1PIN SETB EPIN NOP CLR EPIN CLR CS1PIN RET LCDWC2: ;送片 2 控制字子程序 CALL WAITIDLE2 MOV P0,A CLR RSPIN ;RS=0 RW=0 CS2=1 E=高脉冲 CLR RWPIN SETB CS2PIN SETB EPIN NOP CLR EPIN CLR CS2PIN RET LCDWD1: ;片 1 写数据子程序40 CALL MOV SETB CLR SETB SETB NOP CLR CLR RET LCDWD2: CALL MOV SETB CLR SETB SETB NOP CLR CLR RET LCDRD1: CALL MOV SETB SETB SETB SETB NOP MOV CLR CLR RET LCDRD2: CALL MOV SETB SETB SETB SETB NOP MOV CLR CLRWAITIDLE1 P0,A RSPIN RWPIN CS1PIN EPIN EPIN CS1PIN;RS=1 RW=0 CS1=1 E=高脉冲;片 2 写数据子程序 WAITIDLE2 P0,A ;, RSPIN RWPIN CS2PIN EPIN EPIN CS2PIN ;片 1 读数据子程序 WAITIDLE1 P0,#0FFH RSPIN RWPIN CS1PIN EPIN A,P1 EPIN CS1PIN ;片 2 读数据子程序 WAITIDLE2 P0,#0FFH RSPIN RWPIN CS2PIN EPIN A,P0 EPIN CS2PIN;RS=1 RW=0 CS2=1 E=高脉冲;RS=1 RW=1 CS1=1 E=高电平;RS=1 RW=1 CS1=2 E=高电平41 RET WAITIDLE1: MOV P0,#0FFH CLR RSPIN ;RS=0 RW=1 CS1=1 E=高电平 SETB RWPIN SETB CS1PIN SETB EPIN WT1_PA: NOP JB P0.7,WT1_PA CLR EPIN CLR CS1PIN RET WAITIDLE2: CLR RSPIN ;RS=0 RW=1 CS2=1 E=高电平 SETB RWPIN SETB CS2PIN SETB EPIN WT2_PA: NOP JB P0.7,WT2_PA CLR EPIN CLR CS2PIN RET HZKDOT:;(d3d0H)(有)(8000) DB 04H, 04H, 04H, 02H, 04H, 01H, 84H, 00H,0e4H,0ffH, 3cH, 09H, 27H, 09H, 24H, 09H DB 24H, 09H, 24H, 49H, 24H, 89H,0f4H, 7fH, DB 24H, 00H, 06H, 00H, 04H, 00H, 00H, 00H;(cfdeH)(限)(8001) DB 00H, 00H,0feH,0ffH, 02H, 08H, 22H, 10H,0daH, 08H, 06H, 07H, 00H, 00H,0feH,0ffH DB 92H, 42H, 92H, 24H, 92H, 08H, 92H, 14H DB 0ffH, 22H, 02H, 61H, 00H, 20H, 00H, 00H;(b9abH)(公)(8002) DB 00H, 01H, 00H, 01H, 80H, 00H, 40H, 30H,30H, 28H, 0cH, 24H, 00H, 23H,0c0H, 20H DB 06H, 20H, 18H, 28H, 20H, 30H, 40H, 60H DB 80H, 00H, 80H, 01H, 80H, 00H, 00H, 00H;(cbbeH)(司)(8003) DB 10H, 00H, 10H, 00H, 92H, 3fH, 92H, 10H,92H, 10H, 92H, 10H, 92H, 10H, 92H, 10H DB 0d2H, 3fH, 9aH, 00H, 12H, 40H, 02H, 80H,0ffH, 7fH, 02H, 00H, 00H, 00H, 00H, 00H STRING1: DB 80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,0ffH STRING2: DB 80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,0ffH END 五、思考题 1、修改显示的内容(例如显示:湖南大学电气与信息工程学院**级**专业**班**同学)42 实验六 1602字符显示实验实验七 矩阵键盘实验实验八 A/D转换实验实验九 D/A转换实验43 第三章 系统设计方法及设计课题3.1 单片机应用系统的设计过程单片机及其嵌入式应用系统的设计和开发是以单片机为核心,配合一定的外部电路 及程序,从而实现特定测量及控制功能的应用系统。其中单片机的选型、资源分配以及程序 设计是整个系统设计的关键。 一般来说, 一个完整的单片机应用系统设计包括分析测控系统、 单片机选型、硬件资源分配、系统软件设计、仿真测试并最终下载到实际硬件电路中脱机运 行行。单片机开发的整个流程,如图所示。3.1.1方案论证和硬件系统设计在进行单片机应用系统开发时,首先要对该测控系统进行可行性分析以及系统总统方 案设计。 1.可行性分析 可行性分析主要是分析整个设计任务的可能性。 2.系统总体方案设计 当完成可行性分析后,便进入系统整体方案设计阶段。这里,主要结合国内外相关产 品的技术参数和功能特性、本系统的应用要求以及现有条件,来决定本设计所要实现的功能 和技术指标。接着,制定合理的计划,编写设计任务书,从而完成该单片机应用系统的总体44 方案设计。 本着遵循尽量采用新型单片机和大规模集成电路的原则,本课程设计选用ADI公司的 8051兼容单片机ADuC848。 它的特点是: 1、ADuC848是一个时钟执行一条指令,因此它的实际运行速度比标准的8051高近20倍。 2、具有双数据指针,在同时需要采样和传送数据的场合特别有利于提高数据传输的速率。 3、只需要一根RS232串口线,就能够完成程序的调试、下载和烧录,可以方便用户的开发和 产品的在线升级。3.1.2系统软件设计? 在整个单片机应用系统的总体方案及硬件分配定型后, 便可以着手进入具体的设计 阶段。这里,单片机的程序设计是关键,可以根据实际的需要来选择单片机设计语言及开发 环境。在单片机程序设计时,主要需要从以下几点来考虑。 ? 采用结构化的程序设计,将各个功能部件模块化,用子程序来实现,这样便于调试 以及后续的移植修改等。 ? 合理使用单片机的资源,包括RAM、ROM、定时器/计数器、中断等。 ? 尽量采用执行速度快的指令,以充分发挥单片机的性能优势。 ? 充分考虑软件运行时的状态,避免未处理的运行状态,否则程序运行时易出错,不 受控制。 ? 合理安排各个功能部件的时序,确保程序能正确执行。 ? 程序中要尽量添加注释,提高程序的可读性。3.1.3系统仿真调试设计1、检查印制电路板是否有短路和断路问题。 2、检查元器件的质量和对元器件引脚进行处理。 3、焊接硬件电路并调试。 4、一部分一部分地调试单片机及其外围电路。一般先调试单片机本身,如通过口线输出高、 低电平,通信等;再调试片上外设,如串口、定时器、A/D转换器等;再调试LCD或LED显示 器等。45 5、在设计和调试好系统程序后,固化程序并将系统在模拟实际环境下运行,对系统进行各 种极端情况下的考核,发现问题并予以修改。 单片机仿真测试和程序设计是紧密相关的。在实际设计过程中,需要经常对各个功能 部件进行仿真测试,这样可以及时发现问题,确保模块的正确性。对于整个系统的设计,仿 真测试则可以模拟实际的程序运行,观察整个时序以及运行状态是否合理。当发现问题时, 需要返回程序设计阶段修改设计,进而重新仿真测试,直到程序运行通过。 当程序设计通过后, 便可以将其下载到单片机中结合整个硬件电路来测试。 在实际硬 件电路测试阶段, 主要看单片机程序和外部硬件接口是否正常, 单片机的驱动能力是否够用, 以及整个硬件电路的逻辑时序配合是否正确等。如果发现问题,则要返回设计阶段,逐个解 决问题。3.2 设计课题3.2.1 多功能定时装置1、任务 制作一个电子时钟,该电子时钟具有实时时钟显示、时钟校正、设置闹钟等功能。其结构框 图如下:2、要求 1)选择LED或LCD显示,可显示年、月、日、时、分、秒、星期、农历日期、节日、节气等 (根据实际情况,选择部分或全部功能实现) 2)会使用实时钟芯片 3)选择蜂鸣器电路,实现闹钟设置和报警功能 4)选择按键功能,设计实现时钟校正功能,12小时/24小时切换功能等 5)整点报时功能 6)上电或RESET后能自动显示当前时间(时:分:秒):首次上电复位显示0时0分0秒,以 后每次RESET均显示正确的当前时间3.2.21、任务程控多波形信号发生器46 设计并制作一个多种波波形发生器,使之能产生正旋波、三角波、锯齿波和方波信号等,其 系统框图如下图所示2、要求 1)产生正旋波、锯齿波、方波、三角波、上斜波、下斜波等周期性波形 2)产生梯形波和占空比可调的脉冲波,要求有波形类别指示 3)波形的个数可以程控:连续在1―65535范围内任意设置,要求有个数指示 4)每周期采样点数不少于50 5)输出波形的频率范围为1HZ―500KHZ,最小频率步进间隔为1mHZ 6)具有频率显示和波形指示功能,频率和波形由按键控制 7)输出信号可以门控,门控时间为输出信号周期的整数倍,并保证每个波形完整 8)输出波形可通过示波器观测 9)可实时显示输出波形的类型、幅度、频率和频率的步进值3.2.3LED 汉字计时报讯屏1、任务 设计制作一个LED点阵屏定时报讯系统 系统方框图如下2、要求 1)完成一个60分钟内计时器设计,并在一个16*64的LED点阵上实时显示计时时间 2)按下表,在对应时间显示相应讯息在LED点阵屏上47 3)LED显示清晰稳定 4)具备清屏、启动、暂停和关机等基本控制功能 5)顺计时和60分钟倒计时切换 6)显示讯息能够实现左移、右移等跑马灯显示特性 7)可实现声音提示和报警3.2.4 简易多功能计数器1、任务 设计制作一个简易多功能计数器, 该计数器能够接收函数信号发生器产生的信号, 实现周期 测量、频率测量和时间间隔测量的功能。 2、要求 1)具有能够周期测量、频率测量和时间间隔测量的功能。 2)可以用键盘选择上述三种功能之一 3)周期、时间间隔测量:0.1m S---1S,误差小于等于1% 4)频率测量:1HZ―200KHZ,误差小于等于1% 5)能够显示至少6位数码 6)能够记忆至少十个测量的历史数据,并能够随时查看显示 7)能够显示被测信号的峰值 8)能够显示时间,声音提示等3.2.5LED 字符显示屏1、任务 设计制作一个16行*16列的点阵LED显示屏,按要求循环显示指定内容 2、要求 1)在显示屏上,循环地逐字显示“湖南大学电气与信息工程学院**级**专业**学生单片机 课程设计”文字串。要求显示清晰、稳定、不闪烁,每字符停留0.5s左右 2)切换显示由计算机通过串行通讯接口发送来的文字串。文字串长度不小于10个字符,内 容可在计算机上任意输入 3)能设置改变每字符在显示屏上的停留时间,调节时间:0.1s―2s 4)能切换为上移、下移方式逐行移动显示文字串 5)能切换为左移、右移方式逐列移动显示文字串 6)能切换显示当前时间,如:****年**月**日**时**分**秒,时间可以设置 7)有声音提示或报警功能3.2.6 抢答器1、任务 设计一多路抢答器,每组设计一抢答按扭共选手使用48 2、要求 1)设计一多路数字抢答器 2)设置一个系统清除和抢答控制开关,该开关由主持人控制 3)抢答器具有锁存与显示功能。选手按动按扭,锁存相应的编号,并在LED数码管或LCD上 显示,同时系统报警。优先抢答选手的编号一直保持到主持人将系统信号清除为止 4)抢答器具有定时抢答功能。当主持人启动“开始”键后,计时器进行计时,同时绿灯亮 (可蜂鸣器替代或显示对应标志)。参赛选手在设定时间内进行抢答,抢答有效,定时器停 止工作, 绿灯灭, 显示器上显示选手的编号和抢答的时间, 并保持到主持人将系统清除为止, 如果定时时间已到,无人抢答,本次抢答无效,系统报警。中途可以暂停。 5)显示定时时间,可倒数显示 6)定时时间进入最后十秒时,可用蜂鸣器提醒 7)显示北京时间3.2.7 秒表1、任务 设计一电子秒表,并具有显示,基本操作功能。 2、要求 1)设计可以显示0.1―100s的秒表,最小单位为毫秒 2)通过按键控制秒表清零、暂停、继续、退出等功能 3)具有倒计时功能 4)秒表可以分组存储,批量显示 5)显示北京时间 6)可利用蜂鸣器添加提示音3.2.8 数字密码锁1、任务 设计一多位电子密码锁 2、要求 1)设计一多位电子密码锁,输入密码用“F”表示,输入密码正确,绿灯亮(或显示其他标 志、蜂鸣器替代),输入密码错误,红灯亮(或显示其他标志、蜂鸣器替代) 2)具有确定键和取消键,在未确定之前可以取消,重新输入 3)连续输入三次错误密码,红灯闪烁,报警电路动作,键盘锁定 4)具有密码重置功能 5)具有等待操作时间限制功能,超过限定时间报警 6)显示北京时间3.2.9 简易电子琴1、任务49 设计一简易电子琴,要求能够发出1,2,3,4,5,6,7等7个音符,具有一般演奏功能。 2、要求 1)具有一般演奏功能,利用所给键盘的1,2,3,4,5,6,7,8八个键,能够发出8个不同 的音调,并且要求按下按键发声,松开延时一段时间停止,中间再按别的键则发另一个音调 的声音 2)具有自动播放已存曲目功能 3)显示当前正在播放的歌曲的名称和歌词 4)显示北京时间3.2.10 交通灯1、任务 设计一智能交通信号灯。 2、要求 1)了解实际交通灯的变化规律(以十字路口为例) 2)要求用LCD显示字符“红、黄、绿”代替相应的信号灯 3)要求有东西、南北四组信号灯显示,并显示对应的时间 4)时间要求倒计时显示,计时时间到,对应的信号准确切换 5)信号灯按一定的规律闪烁,实现简单的交通管理 6)能实现紧急事件处理(例如救护车的通行等) 7)可根据交通流量智能调整各路段的通行时间 8)显示北京时间3.2.11 步进电机控制器1、任务 设计一个双步进电机控制器。 2、要求 1)可同时控制两台步进电机能按某种差补算法联动运行 2)同过小键盘,能给定两台步进电机的运行速度,要求可供选择的步进速度有十种,且两 台电机能以不同的速度运行 3)两台步进电机可分别正转、反转 4)按下“回零”命令键后,两台电机能准确返回到原点 5)可分别显示两台步进电机运行的速度和当前状态 6)可显示北京时间3.2.12A/D,D/A 转换板1、任务 设计一A/D,D/A转换板50 2、要求 1) 对函数信号发生器产生的任意波形的脉冲信号进行A/D转换后进入数据存储器, 要求能存 储5至10个周波,然后定时将数据经D/A转换输出送示波器显示 2)采样的频率可由键盘控制有级调节 3)如采用LED或LCD,可显示北京时间3.2.13 电子计算器1、任务 设计一个四则运算的电子计算器,采用LED或LCD显示。 2、要求 1)利用小键盘作为数据和命令的输入装置 2)利用LED或LCD作为过程和结果的输出装置 3)可实现基本的数据运算,包括:加、减、乘、除、开方等 4)未工作时显示北京时间 5)当数据超出范围,可声音提示或报警3.2.14 可编程微波炉控制系统1、任务 设计制作一个微波炉控制电路, 具有三档微波炉加热功能, 分别表示微波加热为烹调、 烘烤、 解冻,实验中用LED或LCD模拟。系统功能框图如下:2、要求 1)制定一个在不同功能时火力的控制时序表。具有三档微波加热功能,分别表示微波炉工 作状态为烹调、烘烤、解冻,试验中用LED或LCD模拟 2) 实现工作步骤: 复位待机-----》 检测显示电路-----》 设置输出功能和定时器初值-----》 启动定时和工作开始-----》结束烹调和音响提示 3) 在上电和手动按复位键时, 控制器输出的微波功率控制信号为0, 微波加热处于待机状态, 时间显示电路显示为00.00 4)具有4位时间预置电路,按键启动时间设置,最大预设数为99分99秒 5)设定初值后按开启键,一方面按选择的挡位启动相应的微波加热;另一方面使计时电路 以秒为单位做倒计时。当计时到时间为0时,则断开微波加热器,并给出声音提示,即蜂鸣51 器发出2至3秒的双音频提示音 6)若在待机状态时按测试键,采用LED显示,则四位数码管交替显示全亮和全灭状态,以检 测数码管各发光段的好坏;若采用LCD显示,可自行确定检测方式 7)未工作时显示北京时间3.2.15 简易超市收银机1、任务 设计制作一个超市简易收银机,系统组成框图如下超市的物品采用13位数字编码(每件物品均有相对应的条形码) 2、要求 1) 超市简易收银机具有可设置100个商品价目表, 商品的数字编号、 (数字或英文字母) 品名 、 单价等信息可输入,具有200条销售日志 2)通过键盘可实现数字和英文字符输入(可扩展为汉字输入) 3)通过打印机可打印商品销售记录(包括销售日期、销售数量、时间、商品名称、商品单 价、合计、商店名称、单据流水号等等) 4)可显示销售内容 5)具有多功能销售操作,实现单次销售、多件批发、退货销售、单向折扣等销售 6)显示北京时间3.2.16 全自动洗衣机控制器1、任务 设计一全自动洗衣机控制器,用LED或LCD模拟显示工作时序。 2、要求 1)通过键盘控制各项工作,包括强制复位键、程序选择键、强弱选择键、运行/暂停键、水 位/盖开关键等 2)工作档分为四档:标准、经济、单独和排水 3)洗涤挡分为两档:强洗、弱洗 4)工作程序分为三档:洗涤、漂洗、脱水 5)具有蜂鸣器报警和提示功能 6)能够显示当前工作状态 7)具有时间倒记时功能 8)不工作时可显示北京时间52 3.2.171、任务 2、要求3.2.181、任务 2、要求3.2.191、任务 2、要求3.2.201、任务 2、要求3.3 评分标准和注意事项3.3.1 选择课题学生根据自身实际情况,可一人一组,也可多人一组(3-5人一组)团队协作,选择合 适的课题进行设计,原则上要求同一班级不允许有雷同的课题,;同时也欢迎学生根据自己 的兴趣爱好,自己提出新的设计课题,由教师根据其难易程度和完成情况进行综合评分。53 3.3.2 评分标准在整个课程设计全过程中,要求每个学生完成如下工作: 1、硬件电气原理图一张(含元器件清单一份;所有引脚标注清楚) 2、软件程序清单一套(含主要程序流程图,全部源程序及详细的注释) 3、使用功能说明书一份(含功能描述及操作指南和收获体会) 4、软件在开发板上调试成功,并能成功表演,达到设计课题的要求 全组共同参与答辩,要求完成设计课题所规定的部分或全部内容,鼓励添加新内容,每 组每个人都必须独立完成程序中的部分模块内容, 并能详细解说和回答教师提出的问题, 否 则视为不合格。3.3.3 实验室设备使用及安全和赔偿条例1、元器件、设备的使用必须遵循“爱护国家财产,人人有责”的原则,保证严格按照使用 手册进行,如有损坏,需照价赔偿,否则该次课程设计成绩计零 2、实验室的安全、卫生,需每个同学关心,离开时需注意关好门窗、水电,谨防消防安全; 保证室内卫生,给大家一个愉悦的学习环境 3、本着谁损坏谁赔偿的原则,所有开发板和仪器都需当面检测发放和回收,并由每组的负 责人签字,预交部分押金,如有损坏,照价赔偿,赔偿金额如下: 名称 价格(元) 开发板 LCD12864 LCD1602 步进电机54 第四章 Keil uVision4 的使用4.1 前言本学习板采用的开发环境为keil uVision4。软件安装好后将会在桌面生成一个Keil uVision4的快捷方式,如下图所示,双击即可运行Keil uVision4。 注意:未注册版本对程序大小有限制。4.2 新建工程运行Keil uVision4,进入编译环境,如图4.1所示。图4.1 Keil uVision4初始界面(1) 选择菜单project_new uvision project建立新工程,弹出图4,2所示对话框,选择合 适路径,建议为每一个工程新建一个文件夹,并取一个有意义的名字,输入工 程名(此处举例为RunningLEDs)并保存。建议只使用A~Z、_、a~z和数字命名 工程文件夹和工程名字,并且首位为字母。图4,2 保存新工程55 (2) 器件选择,如图4.3所示,选择ADuC848,点击OK,即建立了一个空工程。图4.3 选择器件(3)空工程中并没有C语言文件(或者ASM文件),需要建立新的C语言文件(或者 ASM文件)。操作:通过file-&new建立新文件,通过file-&save将文件保存为main.c(或 者main.ASM),建议只使用A~Z、_、a~z和数字命名,并且文件名首位为字母。如图 4.4所示。图4.4 新建程序文件(4) 将步骤3中新建的C语言文件添加到工程中。 操作: 右击source group1, 单击Add files to group’ source group1’,选择main.c(或者main.ASM),点击add,然后close。如下图所示。56 (5)将如下代码(此处以跑马灯的代码为例子)添加到main.c中。若所建程序为汇编 文件main.ASM,则添加相应的汇编程序代码既可。 #include &aduc848.h& unsigned char LED=0 main() { while(1) { P0=LED; LED&&=1; if(P0&0x80)LED++; for(i=0;i&6000;i++)i++; } }4.3 工程设置选择菜单project-&options for target弹出如图4.6所示对话框。图4.6 工程设置对话框(Target选项卡)57 下面就该对话框中的每一个选项卡进行详细介绍。 Target选项卡: 如图4.6所示,Xtal 后面的数值是晶振频率值,该值与最终产生的目标代码无关,仅用 于软件模拟调试时显示程序执行时间。 正确设置该数值可使软件仿真显示时间与实际所用时 间一致,如果没必要了解程序执行的时间,也可以不设。 Memory Model 用于设置RAM 使用情况,有三个选择项: Small: 所有变量都在单片机的内部RAM 中; Compact:可以使用一页(256 字节)外部扩展RAM; Larget: 可以使用全部外部的扩展RAM。 Code Model 用于设置ROM 空间的使用,同样也有三个选择项: Small:只用低于2K 的程序空间; Compact:单个函数的代码量不能超过2K,整个程序可以使用64K 程序空间; Larget:可用全部64K 空间; 这些选择项必须根据所用硬件来决定。 Operating:选择是否使用操作系统,可以选择Keil 提供了两种操作系统:Rtx tiny 和 Rtx full,也可以不用操作系统(None),这里使用默认项None,即不用操作系统。 OutPut选项卡: 如图4.7所示。图4.7 OutPut选项卡58 这里面也有多个选择项,其中Creat Hex file 用于生成可执行代码文件,该文件可以用 编程器写入单片机芯片,其格式为intelHEX 格式,文件的扩展名为.HEX,默认情况下该项 未被选中,如果要写片做硬件实验,就必须选中该项。工程设置对话框中的其它各页面与 C51 编译选项、A51 的汇编选项、BL51 连接器的连接选项等用法有关,一般均取默认值, 不作任何修改。以下仅对一些有关页面中常用的选项作一个简单介绍。Listing选项卡: 如图4.8所示。图4.8 Listing选项卡该页用于调整生成的列表文件选项。在汇编或编译完成后将产生(*.lst)的列表文件, 在连接完成后也将产生(*.m51)的列表文件,该页用于对列表文件的内容和形式进行 细致的调节,其中比较常用的选项是“C Compile Listing”下的“Assamble Code”项,选中该项 可以在列表文件中生成C 语言源程序所对应的汇编代码,建议会使用汇编语言的C 初学者 选中该项,在编译完成后多观察相应的List 文件,查看C 源代码与对应汇编代码,对于提 高C 语言编程能力大有好处。 C51选项卡: 如图4.9所示。图4.9选项卡 59 该页用于对Keil 的C51 编译器的编译过程进行控制,其中比较常用的是“Code Optimization”组,该组中Level 是优化等级,C51 在对源程序进行编译时,可以对代码 多至9 级优化,默认使用第8 级,一般不必修改,如果在编译中出现一些问题,可以降低优 化级别试一试。Emphasis 是选择编译优先方式,第一项是代码量优化(最终生成的代码量 小);第二项是速度优先(最终生成的代码速度快);第三项是缺省。默认采用速度优先, 可根据需要更改。 Debug选项卡: 如图4.10所示。图4.10 Debug选项卡该页用于设置调试器,Keil 提供了仿真器和一些硬件调试方法,如果没有相应的硬件 调试器,应选择Use Simulator,其余设置一般不必更改,有关该页的详细情况将在程序下载 和调试部分再详细介绍。4.4 编译连接、下载和调试程序4.4.1 编译程序写好程序、设置好工程后,即可进行编译、连接。选择菜单Project-&Translate对当前文 件进行编译,检查语法错误。选择菜单Project-&Build target,对当前工程进行连接,如果当 前文件已修改,将先对该文件进行编译,然后再连接以产生目标代码;如果选择Rebuild All target files 将会对当前工程中的所有文件重新进行编译然后再连接, 确保最终生产的目标代 码是最新的,而Project-&Translate仅对当前文件进行编译,不进行连接。以上操作也可以通 过工具栏按钮直接进行,如图4.11所示,从左到右分别是:编译、编译连接、全部重建。60 图4.11 编译连接工具栏按钮编译过程中的信息将出现在输出窗口中的Build OutPut页中,如图4.12所示。图4.12 Build OutPut如果源程序中有语法错误,会有错误报告出现,双击该行,可以定位到出错的位置,对 源程序修改之后再次编译,直到没有错误报告出现为止。同时还可看到,该程序的代码量 (code=200),内部RAM 的使用量(data=12.0),外部RAM 的使用量(xdata=0)等信息。 除此之外,编译、连接还产生了一些其它相关的文件,可被用于Keil 的仿真与调试,到了 这一步后即进行程序下载调试。4.4.2 在线下载程序程序下载和调试前首先要在软件和硬件上做好准备。 工程设置: 选择正确的串口号。按Alt+F7打开工程设置对话框,选中debug选项卡,设 置为use ADI Monitor Driver,设置好后点击右边的setting选择串口号(具体选择哪一个端口 根据实际情况而定,可以通过电脑的设备管理器查看)。具体设置如图4.13所示。图4.13工程设置硬件准备: 按如图4.14所示进行硬件连接(插针的设置根据所选用板上的资源而定,请参考第一61 章),并上电。下载和调试前应使单片机进入调试模式,进入该模式的步骤为: (1)按住down or debug键不要放开; (2)按下reset键,然后放开reset键; (3)放开down or debug键。 这样单片机就进入了调试模式,可以下载或调试程序。图4.14 程序下载前的硬件连接(插针的设置根据所选用板上的资源而定,参考第一章)工程设置和硬件准备完成后,选择菜单debug-&start/stop debug session开始下载和调试, 如图4.15所示。 调试前首先会下载程序到单片机, 下载完成后进入调试状态。 若不需要调试, 再选择菜单debug-&start/stop debug session即结束调试,可以通过此途径下载程序。图4.15 下载程序62 4.4.3 在线调试程序进入在线调试状态后,Debug 菜单项中原来不能用的命令现在已可以使用了,多出一 个用于运行和调试的工具条,如图4.16所示。图4.16 调试工具栏Debug 菜单上的大部份命令可以在此找到对应的快捷按钮, 从左到右依次是复位、 运行、 暂停、单步、过程单步、执行完当前子程序、运行到当前行、下一状态、显示/隐藏命令窗 口、 显示/隐藏反汇编窗口、 显示/隐藏符号窗口、 显示/隐藏寄存器窗口、 显示/隐藏Call Stack 窗口、显示/隐藏观察窗口、显示/隐藏内存窗口。 复位:使单片机复位,PC指向初始位置。 运行:开始运行程序,运行到断点则停下来。如果是实验一的例子程序,则运行后的正 常效果为板上的LED循环闪烁。 暂停: 通过串口在线调试不支持该功能, 但是可以通过在程序主循环中设置条件断点的 方式来达到暂停的目的, 条件断点就是要符合一定条件才能跳转到的断点。 可以在主循环中 添加如下代码: P1&=0xf0;//往P1口低4位写0,将P1口低4位设为数字输入模式 P2|=0x0f; //往P2口低4位写1 P2&=0//将P2.0置0,这样键盘列信号为1110 if((P1&0x08)==0)//如果P1口第3位为0,即某个特定的键按下了 { P2&=0 //在此处设断点,如果某个特定的键按下,则跳转到此,并暂停运行 }//这样就成功在运行状态下实现了暂停。 单步:使用菜单STEP 或相应的工具栏按钮或使用快捷键F11 可以“单步”执行程序。源 程序窗口的左边出现了一个黄色调试箭头, 每“单步”执行程序一次, 执行该箭头所指程序行, 然后箭头指向下一行。当箭头指向某一函数时,“单步”执行程序一次,箭头跳转到该函数的 第一行。 再次执行“单步”命令, 则执行箭头所指程序行, 然后箭头指向下一行。 可以通过“执 行完当前子程序”命令跳出该函数。 过程单步:使用菜单STEP OVER或相应的工具栏按钮或功能键F10 可以以过程单步形63 式执行命令。所谓过程单步,是指把C 语言中的一个函数作为一条语句来全速执行。 执行完当前子程序: 如果在单步运行的时候跳转到某一个函数里面, 可以通过该命令跳 出。 运行到当前行:用鼠标单击某一行,该行左边将出现浅蓝色箭头,执行“运行到当前行” 命令, 程序运行到浅蓝色箭头所指向的那一行时会停下, 但并没有运行浅蓝色箭头所指向的 那一行。 反汇编窗口:查看C语言程序的反汇编代码。如图4.17所示。图4.17 反汇编窗口寄存器窗口: 查看单片机中寄存器的值。 在线调试时在运行状态时不能查看寄存器的值。 还可以通过peripherals菜单查看单片机内部各模块特殊功能寄存器的值。如图4.18所示。图4.18 寄存器窗口观察窗口:查看所观察的全局变量的值。调试时选中要观察的全局变量,然后右击,选 择add…to,然后再选择一个watch窗口即可。在线调试时在运行状态时不能查看全局变量的 值的。对于局部变量,可以在暂停运行时选中该布局变量,然后将鼠标光标停留在选中的局 部变量上,稍后就会在光标附近显示该局部变量的值。如图4.19所示。64 图4.19 观察窗口4.4.4 软件仿真调试程序在工程设置时选择use simulator。如图4.20所示。图4.20 设置为软件仿真模式在软件仿真模式下, 同样可以通过寄存器窗口查看寄存器的值、 通过观察窗口观察变量 的值、通过peripherals菜单实时查看单片机内部各模块特殊功能寄存器的值。而且软件仿真 时无需添加条件断点也可以从运行状态下暂停。开始/停止调试、复位、运行、单步等一系 列操作与在线仿真相同。65 第五章 PROTEUS 的使用5.1 前言Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于 Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是: ①实现了单片机仿真和SPICE电路仿真相结合。 ②支持主流单片机系统的仿真。 ③提供软件调试功能。 ④具有强大的原理图绘制功能。5.2 操作步骤5.2.1 进入系统双击桌面上的ISIS 6 Professional图标 ISIS集成环境。,进入Proteus5.2.2 界面简介“Proteus ISIS”的工作界面是一种标准的Windows界面。包括:标题栏、主菜单、 标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制 按钮、预览窗口、对象选择器窗口、图形编辑窗口。66 1、 原理图编辑窗口(The Editing Window):顾名思义,它是用来绘制原理图的。蓝色 方框内为可编辑区,元件要放到它里面。注意,这个窗口是没有滚动条的,你可用预 览窗口来改变原理图的可视范围。 2、预览窗口(The Overview Window):它可显示两个内容,一个是:当你在元件列表中 选择一个元件时,它会显示该元件的预览图;另一个是,当你的鼠标焦点落在原理图编 辑窗口时(即放置元件到原理图编辑窗口后或在原理图编辑窗口中点击鼠标后),它会 显示整张原理图的缩略图, 并会显示一个绿色的方框, 绿色的方框里面的内容就是当前 原理图窗口中显示的内容,因此,你可用鼠标在它上面点击来改变绿色的方框的位置, 从而改变原理图的可视范围。 3、模型选择工具栏(Mode Selector Toolbar): 1).主要模型(Main Modes): 1* 选择元件(components)(默认选择的) 2* 放置连接点 3* 放置标签(用总线时会用到) 4* 放置文本 5* 用于绘制总线 6* 用于放置子电路67 7* 用于即时编辑元件参数(先单击该图标再单击要修改的元件) 2).配件(Gadgets): 1* 终端接口(terminals):有VCC、地、输出、输入等接口 2* 器件引脚:用于绘制各种引脚 3* 仿真图表(graph):用于各种分析,如Noise Analysis 4* 录音机 5* 信号发生器(generators) 6* 电压探针:使用仿真图表时要用到 7* 电流探针:使用仿真图表时要用到 8* 虚拟仪表:有示波器等 3).2D图形(2D Graphics): 1* 画各种直线 2* 画各种方框 3* 画各种圆 4* 画各种圆弧 5* 画各种多边形 6* 画各种文本 7* 画符号 8* 画原点等4).元件列表(The Object Selector): 用于挑选元件(components)、终端接口 (terminals)、信号发生器(generators)、仿真图表(graph)等。举例,当你选择“元 件(components)”,单击“P”按钮会打开挑选元件对话框,选择了一个元件后(单击了“OK” 后),该元件会在元件列表中显示,以后要用到该元件时,只需在元件列表中选择即可。5).方向工具栏(Orientation Toolbar): 旋转: 翻转: 旋转角度只能是90的整数倍。 完成水平翻转和垂直翻转。68 使用方法:先右键单击元件,再点击(左击)相应的旋转图标。 6).仿真工具栏 仿真控制按钮 1* 运行 2* 单步运行 3* 暂停 4* 停止5.2.3 操作步骤绘制原理图:绘制原理图要在原理图编辑窗口中的蓝色方框内完成。原理图编辑窗口的操 作是不同于常用的WINDOWS应用程序的,正确的操作是:用左键放置元件;右键选择元件; 双击右键删除元件;右键拖选多个元件;先右键后左键编辑元件属性;先右键后左键拖动 元件;连线用左键,删除用右键;改连接线:先右击连线,再左键拖动;中键放缩原理图。AVR单片机的仿真实例 本例是实现AVR驱动LCD1602,并用示波器监测数据线。 开始前先要准备好仿真文件, 就是用编译器编译连接产生的调试或下载文件, Proteus 支持的有COF、D90、HEX等。本例用的是:lcd_C.hex。 运行Proteus 出现下面窗口:1、添加元件到元件列表中:本例要用到的元件有:ATMEGA16、LM016L(LCD1602)、“地“、69 示波器。单击“P”按钮,出现挑选元件对话框在对话框的KEYWORDS中输入ATMEGA16,得到以下结果:单击OK,关闭对话框,这时元件列表中列出ATMEGA16,同样找出LM016L。 最终结果:2、 放置元件:在元件列表中左键选取ATMEGA16,在原理图编辑窗口中单击左键,这样 ATMEGA16就被放到原理图编辑窗口中了。同样放置LM016L。70 添加“地” :左键选择模型选择工具栏中的图标,出现:左键选择GROUND,并在原理图编辑窗口中左击,这样“地”就被放置到原理图编辑窗口中了。 添加示波器:左键选择模型选择工具栏中的 图标,出现:左键选择OSCILLOSCOPE,并在原理图编辑窗口中左击,这样示波器就被放置到原理图编辑 窗口中了。补充:放置元件时要注意所放置的元件应放到蓝色方框内,如果不小心放到外面,由于在外71 面鼠标用不了,要用到菜单“Edit”的“Tidy” 清除,方法很简单只需单击“Tidy”即可。操作 中可能要整体移动部分电路,操作方法: 先用右键拖选,再单击 中的 ,这时这部分电路会随鼠标移动,在目标位置单击左键,这部分电路将被放到该处。 3.连线:AVR、LCD的VSS、VDD、VEE不需连接,默认VSS=0V、VDD=5V、VEE= -5V、GND=0V4.添加仿真文件:先右键ATMEGA16再左键,出现在Program File中单击出现文件浏览对话框,找到lcd_C.hex文件,单击确定完成添加文件, 在Clock Frequency中把频率改为8MHz,单击OK退出。 5.仿真 单击开始仿真。72 说明:红色代表高电平,兰色代表低电平,灰色代表不确定电平(floating)。 运行时,在Debug菜单中可以查看AVR的相关资源。5.3 Proteus与KeiI的结合在Keil里建立一个工程,然后点击工具栏的 按钮,在出现的对话框里点击“Debug”,在右栏上部的下拉菜单里选中“Proteus VSM Monitor-51 Driver”,还要点击一下Use前面的小 圆点。 再点击“Setting”设置通信接口, 在Host后面添上“127. 0. 在Port后面添上“8000”。 0. 1”, 点击“OK”按钮即可。最后,在ISIS设置一下,鼠标左键点击菜单“DEBUG”,选中“use romotedebuger monitor”。 互调的时候,把Keri和Proteus的文件放在同一目录下。打开这两个软件,在keil里, 按Ctrl+F5进入调试界面或者点击工具栏的按钮就进入了互调状态。73}

我要回帖

更多关于 usb转音频接口 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信