图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
-6
S
-X)*1.953*10
-6
=0.1
X=14336=3800H TH1=38H,TL1=00H 三、实验步骤(略,同实验一) 四、程序流程图及源程序: 1、中断子程序流程图:
20