附录6基于ADuC848开发板的单片机实验和课程设计指导书 - 图文

更新时间:2024-05-08 04:56:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于ADuC848

嵌入式系统的实验和课程设计指导书

(内部使用)

二○一三年九月

目 录

第一章 硬件系统介绍 .................................................. 5

1.1板上资源分布 ............................................................................................................. 5 1.2单片机ADuC848 ....................................................................................................... 6 1.2.1 ADuC848的简要介绍(针对本设计所选择的型号) ......................................... 6 1.2.2 单片机引脚分布 ..................................................................................................... 6 1.3 电源模块 .................................................................................................................... 8 1.4 模数/数模转换 ........................................................................................................... 9 1.4.1 模数转换 ................................................................................................................. 9 1.4.2 数模转换 ................................................................................................................. 9 1.5 RS232串口 ............................................................................................................... 10 1.6 PS/2接口和红外接收 .............................................................................................. 11 1.7 显示模块 .................................................................................................................. 11 1.7.1 LCD显示 ............................................................................................................... 11 1.7.2 数码管 ................................................................................................................... 12 1.7.3 8路LED ................................................................................................................ 13 1.8 蜂鸣器和红外发送 .................................................................................................. 14 1.9 SPI接口、步进电机控制 ........................................................................................ 15 1.10 按键输入 ................................................................................................................ 15 1.11 IIC总线(RTC时钟和EEPROM) ..................................................................... 16 1.12 复位与下载 ............................................................................................................ 17

第二章 基础实验 ........................................................ 18

汇编实验 ......................................................................................................................... 18 实验一 I/O 口控制实验 ............................................................................................... 18 实验二 定时器、中断实验 ........................................................................................... 20 实验三 数码显示实验 ................................................................................................... 24 实验四 蜂鸣器驱动实验 ............................................................................................... 29 实验五 128×64 点阵型液晶显示实验 ....................................................................... 32 实验六 1602字符显示实验 .......................................................................................... 42 实验七 矩阵键盘实验 ................................................................................................... 51 实验八 D/A转换实验 ................................................................................................... 54 实验九 步进电机控制实验 ........................................................................................... 58 C语言实验 ..................................................................................................................... 61 实验一 端口输出操作 ................................................................................................... 61 实验二 定时器及定时器中断 ....................................................................................... 64 实验三 数码管显示 ....................................................................................................... 67 实验四 矩阵式键盘识别 ............................................................................................... 71 实验五 蜂鸣器驱动实验 ............................................................................................... 75 实验六 1602字符显示实验 .......................................................................................... 80 实验七 128×64 点阵型液晶显示实验 ....................................................................... 83

2

实验八 A/D转换实验 ................................................................................................... 93 实验九 步进电机控制实验 ......................................................................................... 100

第三章 系统设计方法及设计课题 .......................... 106

3.1 单片机应用系统的设计过程 ............................................................................. 106 3.1.1 方案论证和硬件系统设计 ......................................................................... 106 3.1.2 系统软件设计 ............................................................................................. 107 3.1.3 系统仿真调试设计 ..................................................................................... 107 3.2 设计课题 ............................................................................................................. 108 3.2.1 多功能定时装置 ......................................................................................... 108 3.2.2 程控多波形信号发生器 ............................................................................. 109 3.2.3 LCD汉字计时报讯屏 ................................................................................ 109 3.2.4 简易多功能计数器 ....................................................................................... 110 3.2.5 LCD字符显示屏 ........................................................................................ 110 3.2.6 抢答器 ........................................................................................................... 111 3.2.7 秒表 ............................................................................................................... 111 3.2.8 数字密码锁 ................................................................................................... 111 3.2.9 简易电子琴 ................................................................................................... 112 3.2.10 LCD显示的交通信号灯 .......................................................................... 112 3.2.11步进电机控制器 .......................................................................................... 112 3.2.12 A/D,D/A转换板 .................................................................................... 113 3.2.13 电子计算器 ................................................................................................. 113 3.2.14 可编程微波炉控制系统 ............................................................................. 113 3.2.15 简易超市收银机 ......................................................................................... 114 3.2.16 全自动洗衣机控制器 ................................................................................. 115 3.2.17 多功能走马灯 ............................................................................................. 115 3.2.18 仿手机键盘 ................................................................................................. 116 3.2.19 仿电梯控制 ................................................................................................. 116 3.2.20 仿汽车自动报站器 ..................................................................................... 116 3.2.21 电机调速器 ................................................................................................. 117 3.2.22 电压监视仪 ................................................................................................. 117 3.2.23 自定义课题 ................................................................................................. 117 3.3 评分标准和注意事项 ......................................................................................... 118 3.3.1 选择课题 ....................................................................................................... 118 3.3.2 评分标准 ....................................................................................................... 118 3.3.3 实验室设备使用及安全和赔偿条例 ........................................................... 118

第四章 Keil uVision4的使用 ................................... 119

4.1 前言 ........................................................................................................................ 119 4.2 新建工程 ................................................................................................................ 119 4.3 工程设置 ................................................................................................................ 122 4.4 编译连接、下载和调试程序 ................................................................................ 125 4.4.1 编译程序 ............................................................................................................. 125 4.4.2 在线下载程序 ..................................................................................................... 125

3

4.4.3 在线调试程序 ..................................................................................................... 127 4.4.4 软件仿真调试程序 ............................................................................................. 130

第五章 PROTEUS的使用 ........................................ 131

5.1 前言 ...................................................................................................................... 131

5.2 操作步骤 ............................................................................................................. 131 5.2.1 进入系统 ....................................................................................................... 131 5.2.2 界面简介 ....................................................................................................... 131 5.2.3 操作步骤 ....................................................................................................... 134 5.3 Proteus与KeiI的结合 ........................................................................................ 138

附录一 课程设计报告参考模板 .............................. 139 附录二 开发板硬件图 .............................................. 141

4

第一章 硬件系统介绍

本单片机学习板集成多个基础硬件资源模块,各个资源模块可以相互组合使该板实现不同的功能。因此,本学习板既可用于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;

5

19:IIC接口; 20:PS/2接口; 21:红外接收头;

22:功能选择和配置插针;

23:4X4矩阵式键盘或4个独立按键; 24:直流电源输入;

此外还有红外二极管(由单片机PWM模块输出信号控制)、USB电源输入接口。

1.2单片机ADuC848

1.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 单片机引脚分布

详见原理图。

6

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接口时钟信号。

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晶振。

7

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、3脚(插针1上面两脚)接跳线帽,DVDD连接到稳压芯片7805的输出,而7805的输入端连接到电源适配器输入端,即为7~12V的电源适配器经7805给学习板供电的模式。

(3)USB供电(开关往下拨)。

将开关sw4第1、2脚接通(开关往下拨),电源网络DVDD连接到USB电源输入端。 对DVDD网络和AVDD网络设了测试点,方便调试。测试点具体位置参见附图1。

8

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 数模转换

ADuC848内部有12位DAC,并有专门的DA输出引脚。DAC信号输出模块原理图如图1.4

9

所示。

图1.4 DAC信号输出模块

本设计对片内DA的输出配置了运放LM358(该运放在单电源情况下对较低电平仍具有很好跟随效果),以增强其驱动能力或对DA输出做适当放大,其中R56和R57的大小决定放大倍数(A=1+R90/R89)。

1.5 RS232串口

串口连接原理图如图1.5所示。

10

图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所示。

11

图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所示。

12

图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所示。

13

图1.9 8路LED

8个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,为减少功耗,不用请断开。

14

1.9 SPI接口、步进电机控制

该模块原理图如图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所示。

15

图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所示。

16

图1.13 IIC总线连接

2

AduC848片内有IC模块,并有独立的引脚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按键)。

这样单片机就进入了调试模式,可以下载或调试程序。

17

第二章 基础实验

汇编实验

实验一 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.流程图

18

2.源程序 ORG 0000H

LJMP LOOP ORG 0100H

LOOP: MOV R3, #0FEH

MOV R2,#08H

OUTPUT: MOV P0,R3

MOV A,R3 RL A MOV R3,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 晶振,粗略计算此程序的执行时间为多少?

19

实验二 定时器、中断实验

一、实验目的 1. 2.

学习CPU内部计数器的使用和编程方法。 掌握中断处理程序的编程方法。

3. 掌握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,则(2

16

-6

-X)*1.953*10

-6

=0.1

X=14336=3800H TH1=38H,TL1=00H 三、实验步骤(略,同实验一) 四、程序流程图及源程序: 1、中断子程序流程图:

20

中断入口 关闭计数控制位 计数值减1 装入时间常数 开放计数控制位 返回 2、主程序流程图

21

3、 程序清单:

入口 置首显示代码(A),初始地址偏移量(R1),计数初值(R0) 定时器1初始化,设计数初值 开放EA,ET1,TR1 N R0=0 Y 装计数初值于R0 指向下一个显示代码单元 N 地址偏移=10 装入初始偏移量 从表中取显示代码 显示 ORG 0000H

LJMP

START

ORG 001BH JMP IT11

ORG

0030H START: MOV

A,#0FAH

22

MOV MOV MOV

R1,#03H R0,#0AH TMOD,#10H

MOV TL1,#00H MOV TH1,#38H ORL SETB

IE,#88H TR1 R0,#00,DISP R0,#0AH R1

R1,#0BH,LOOP2 R1,#03 A,R1

A,@A+PC DISP

LOOP1: CJNE

MOV INC CJNE MOV

LOOP2: MOV

MOVC LJMP

DB 0FAH,0F5H,0AFH,5FH,0AAH,55H,00H,0FFH

P0,A LOOP1

DISP: MOV

JMP

IT11: CLR

TR1 R0 TL1,#00H TH1,#38H TR1

DEC MOV

MOV SETB RETI END

五、思考题:

1、 改变发光二极管闪烁的间隔时间。

2 、P1口添加一个暂停按键,当该键按下时显示暂停,保持当前状态;再次按键,继续显示。 3、去掉定时与中断,编写延时子程序。

4、P1口添加多个按键,分别对应实现不同的显示功能。(例如:暂停键、显示状态顺序执行和 逆序执行键??)

23

实验三 数码显示实验

一、实验目的

1.进一步掌握定时器的使用和编程方法。 2.了解七段数码显示数字的原理。

3.熟练掌握Keil uVision4和Proteus联调的方法。 二、实验内容

做一个电子钟:利用定时器0定时中断,控制电子钟走时;利用单片机上的四位数码管显示分钟和秒钟。 三、程序流程图和源程序 1、主程序流程图

初始化程序 开始计数 R0,扫描初值—R2 显示缓冲单元首址—

取显示单元值,转为段码送段数据口

扫描值送位数据口

显示单元地址加一

扫描值带进位位(=0)右移一位

N 扫描值=0?

Y 取分、秒计数值,经变换放入相应显示单元

24

2、中断子程序流程图:

中断入口 定时器置初值 Y

N 计时单元=10? Y 计时单元置0 秒加一,十进制调整

N

N

3、程序清单: ST_ADDR EQU 0000H BUF EQU 23H

秒值=60? Y 秒置0,分加一,十进制调整 分值=60? Y 分置0 返 回 25

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,R2

MOV P3,R2

MOV A,@R0 LCALL TABLE

26

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 ACC INC BUF MOV A,BUF CJNE A,#0AH,QUIT

27

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: MOV R4,#10;延时程序 DEL11: MOV R5,#0AH DEL12: MOV R3,#18H DEL13: DJNZ R3,DEL13 DJNZ R5,DEL12 DJNZ R4,DEL11 RET END

四、实验板插针配置:

使用数码管第3~0位(板上为右边4位),用短路子接通插针8。 五、思考题

1.改变显示内容,使数码管显示小时和分钟。

2.在第一题的基础上,改写程序,使第二个数码管的小数点做为秒闪,按一秒的周期闪烁。 3.在原程序的基础上,改写程序,使数码管分时显示小时和分钟、分钟和秒钟。 4.添加按键,可以调整时钟和分钟。

28

实验四 蜂鸣器驱动实验

一、实验目的

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 音的节拍由延时子程序实现。延时子程序实现基本延时时间,节拍值只能是它的整数倍。 三、实验内容及步骤

利用P2.6口输出不同频率的脉冲通过蜂鸣器发出不同频率音调。用短路帽接通插针三。 四、程序流程图和源程序 1、中断子程序流程图

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

29

2、主程序流程图

3、源程序清单 ST_ADDR EQU 0000H

ORG LJMP ORG LJMP ORG ORL SETB SETB MOV MOV JZ

ST_ADDR

MAIN INT_0 TMOD,#0FH ET1 EA ST_ADDR+1BH ST_ADDR+200H TMOD,#10H

MAIN: ANL

DPTR,#TONE A,#00H

A,@A+DPTR

MAIN

30

LOP: MOVC

MOV MOV INC MOV MOVC MOV MOV SETB INC MOV MOVC MOV

R5,A TH1,A DPTR A,#00H

A,@A+DPTR R6,A TL1,R6

TR1 DPTR A,#00H

A,@A+DPTR R3,#80H R4,#0FFH

R4,LOOP3 R3,LOOP2 R2,LOOP1 R2,A

LOOP1: MOV LOOP2: MOV LOOP3: DJNZ

DJNZ DJNZ INC MOV LJMP PUSH PUSH CPL MOV MOV SETB POP POP POP RETI

DPTR A,#00H

LOP DPL ACC

DPH

INT_0: PUSH

P2.6 TH1,R5 TL1,R6 ACC DPL DPH

TR1

TONE: DB 0FCH,2FH,04H,0FCH,99H,04H,0FCH,0F8H,04H,0FDH,22H,04H

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、改编一首完整的新的歌曲。

31

实验五 128×64 点阵型液晶显示实验

一、实验目的

1、了解点阵型液晶显示器的工作原理。 2、了解点阵型液晶显示器控制方式。 二、实验原理

1、SMG12864D3 液晶显示模块的概述:

SMG12864D3标准图形点阵型液晶显示模块(LCM),采用点阵型液晶显示器(LCD),可显示128X64点阵,点尺寸为0.39X0.55(WXH)mm,内置 KS0108B 接口型液晶显示控制器,可与 MCU 单片机直接连接,广泛应用于各类仪器仪表及电子设备。 2、SMG12864D3 液晶显示模块的主要技术参数:

产品型号 显示模式 工作温度 存储温度 工作电压 工作电流 颜色 电流 SMG12864D3 黄绿模 宽温-20~+60℃ -30~+70℃ 4.8~5.2V 5.0mA,5.0V 黄绿 30mA

3、SMG12864D3 液晶显示模块的接口信号说明: 编号 符号 引脚说明 1 2 3 4 5 6 7 8 9 10

CS2 片选IC2信号 CS1 片选IC1信号 VSS 电源地

编号 符号 引脚说明 11 12 13 14 15

DB2 DB3 DB4 DB5 DB6 DB7

Data I/O Data I/O Data I/O Data I/O Data I/O Data I/O

VDD 电源正极(+5V) V0 RS RW E DB0 DB1

LCD偏压输入

数据/命令选择端(H/L) 16 读写控制信号(H/L) 使能信号 Data I/O Data I/O

17 18 19 20

/RESET 复位端 VEE 负压输出 BLA 背光源正极 BLK 背光源负极

4、控制器接口说明(KS108B 及兼容芯片) 1) 基本操作时序:

1.1 读状态:输入:RS=L,R/W=H,CS1或CS2=H,E=H 输出:D0~D7=状态字 1.2 写指令:输入:RS=L,R/W=L,D0~D7=指令码,CS1或CS2=H,E=高脉冲 输出:无 1.3 读数据:输入:RS=H,R/W=H,CS1或CS2=H,E=H 输出:D0~D7=数据

32

1.4 写数据:输入:RS=H,R/W=L,D0~D7=数据,CS1或CS2=H,E=高脉冲 输出:无 2) 状态字说明

STA7 STA6 STA5 STA4 STA3 STA2 STA1 STA0 D7

D6

D5

D4

D3

D2

D1

D0

STA0-4 未用

STA5 液晶显示状态 1: 关闭 0: 显示 STA6 未用

STA7 读写操作使能 1: 禁止 0: 允许

注:对控制器每次进行读写操作之前,都必须进行读写检测,确保STA7为0 3) RAM地址映射图

LCD 显示屏由两片控制器控制,每个内部带有8X64位(512字节)的 RAM 缓冲区,对应关系如图所示:

4) 指令说明 4.1 初始化设置 4.1.1 显示开/关设置 指令码 功能 3EH 关显示 3FH 开显示 4.1.2 显示初始行设置 指令码 功能

33

0C0H 设置显示初始行 4.2 数据控制

控制器内部设有一个数据地址页指针和一个数据地址列指针,用户可通过它们来访问内部的全部512字节RAM。 4.2.1 数据指针设置 指令码

功能

0B8H+页码(0~7) 设置数据地址页指针 40H+列码(0~63) 设置数据地址列指针 4.2.2 读数据:见1.3 4.2.3 写数据:见1.4 5 初始化过程

5.1 写指令0C0H: 设置显示初始行。 5.2 写指令3FH:开显示。 三、实验内容和步骤

1、将LCD12864插入电路板的接口4的上排位置。(注意:板上接口4的上排位是LCD12864的接口,下排位是LCD1602的接口,排针和排母左对齐插入!切勿插错!) 2、全速运行程序,显示内容:有限公司(四行二列) 四、程序流程图和程序清单 1、程序流程图

34

2、程序清单

XPOS EQU 20H ;列方向地址指针(用于LCDPOS子程序) YPOS EQU 21H ;行方向地址指针(用于LCDPOS子程序) RSPIN EQU P3.6

RWPIN EQU P3.5 ; EPIN EQU P3.3 ; CS1PIN EQU P3.7 ; CS2PIN EQU P2.4 ; ORG 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,#50 DL4_PA: MOV R1,#100 DL4_PB: MOV R2,#100 DJNZ R2,$

DJNZ R1,DL4_PB DJNZ R0,DL4_PA RET 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

;延时子程序 35

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 DPH 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

36

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: ;LCD整屏显示A的内容 MOV R7,A MOV YPOS,#0 LFL_PB: MOV XPOS,#0 LFL_PA: MOV A,R7

CALL LCDWRITE ;定位并写数据 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

37

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 ;设列码 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 ;设显示起始行

38

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 NOP

CLR CLR RET

LCDWC2: CALL MOV CLR CLR SETB SETB NOP

CLR CLR RET

LCDWD1: CALL MOV SETB CLR SETB SETB NOP

CLR CLR RET

LCDWD2: CALL MOV SETB CLR SETB SETB NOP

EPIN EPIN CS1PIN WAITIDLE2 P0,A

RSPIN RWPIN CS2PIN EPIN EPIN CS2PIN WAITIDLE1 P0,A

RSPIN RWPIN CS1PIN EPIN EPIN CS1PIN WAITIDLE2 P0,A ;,

RSPIN RWPIN CS2PIN EPIN ;送片2控制字子程序 ;RS=0 RW=0 CS2=1 E=高脉冲 ;片1写数据子程序 ;RS=1 RW=0 CS1=1 E=高脉冲 ;片2写数据子程序 ;RS=1 RW=0 CS2=1 E=高脉冲 39

CLR EPIN CLR CS2PIN RET

LCDRD1: ;片1读数据子程序 CALL WAITIDLE1 MOV P0,#0FFH

SETB RSPIN ;RS=1 RW=1 CS1=1 E=高电平 SETB RWPIN SETB CS1PIN SETB NOP

MOV CLR CLR RET

LCDRD2: CALL MOV SETB SETB SETB SETB NOP

MOV CLR CLR RET WAITIDLE1:

MOV CLR SETB SETB SETB WT1_PA: NOP

JB CLR CLR RET WAITIDLE2:

CLR SETB SETB SETB WT2_PA: NOP

EPIN A,P1 EPIN CS1PIN WAITIDLE2 P0,#0FFH

RSPIN RWPIN CS2PIN EPIN A,P0 EPIN CS2PIN P0,#0FFH

RSPIN RWPIN CS1PIN EPIN P0.7,WT1_PA EPIN CS1PIN RSPIN RWPIN CS2PIN EPIN ;片2读数据子程序 ;RS=1 RW=1 CS1=2 E=高电平 ;RS=0 RW=1 CS1=1 E=高电平 ;RS=0 RW=1 CS2=1 E=高电平 40

本文来源:https://www.bwwdw.com/article/frog.html

Top