微机原理实训指导书.docx
《微机原理实训指导书.docx》由会员分享,可在线阅读,更多相关《微机原理实训指导书.docx(33页珍藏版)》请在冰豆网上搜索。
![微机原理实训指导书.docx](https://file1.bdocx.com/fileroot1/2022-12/14/c76f772f-702e-4319-97a6-df5637a1f8bd/c76f772f-702e-4319-97a6-df5637a1f8bd1.gif)
微机原理实训指导书
《单片机编程实训》指导书
系别:
机电工程系
适用班级:
楼宇081
系主任:
李鸣
教研室主任:
常晓玲
指导教师:
王芳楷、毛诗柱
实训时间:
2010年9月
广东轻工职业技术学院机电工程系
电气教研室
《微机原理实训》任务书
1.课程设计的目的
(1)掌握KeiluVision2集成开发环境的使用方法
(2)巩固和加深“单片机原理及应用”课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法,提高电子电路的设计和实验能力,为以后从事生产和科研工作打下一定的基础。
2.课程设计内容
根据时间安排,两周的实训主要通过以下两个阶段进行:
一基本实验
(1)单灯受控闪烁
(2)P1口外接8只LED发光二极管模拟彩灯
(3)电子琴实验,主要掌握定时器和键盘扫描的工作方法和编程
(4)串转并的I/O口实验,掌握串转并的I/O口扩展方法,为第五个实验服务。
(5)8
8LED扫描输出实验,利用单片机的I/O口进行LED点阵的扫描显示
二课程设计
LCD液晶显示模块显示图形和汉字设计
要求:
将学生自己的学校、系别、班级在ZY12864D图型点阵液晶上显示出来
1.熟悉ZY12864D图型点阵液晶的工作原理及指令系统,了解图型液晶和单片机接口电路的设计,画出原理图
2.了解汉字和数字字库字模的提出方法,以及字模的存储方法。
3.完成设计报告:
编写相应功能程序,包括软件流程图,并附程序清单,和电路原理图
3.实训要求
1)提前预习实验内容,熟悉KeiluVision2集成开发环境和Proteus仿真软件的使用。
2)编写实验程序,按指导书要求进行仿真。
3)完成课程设计报告的书写。
4.课程设计报告要求
(1)画出程序设计框图及硬件实验连接图。
(2)写出程序清单,并给关键语句添加注释。
(3)记录设计过程中观察到的结果、发现的问题的解决办法。
5课程设计考核办法
(1)设计报告条理清楚、内容充实、线路图清晰、准确(30%)
(2)程序语句注释正确、实验结果准确(20%)
(3)考核答辩(30%)
(4)爱护实验设备、遵守纪律、学习态度(20%)
6.具体安排
1)每三人或四人一个小组,共同完成编程和调试。
2)第1周主要熟悉实训设备,参考例程,掌握基本的编程和调试方法.
3)第2周按给定的题目进行设计,要求课余时间编程和完成设计报告
附录一 基本实验指导
(一)闪烁的发光管
1.实验目的:
熟悉mcs-51单片机的内部结构,掌握mcs-51单片机各组成部分的功能和特点。
2.实验设备及条件:
IBMPC机一台,DP-51PRO单片机综合仿真实验仪一台,频率计一台.
3.实验内容
单片机上电工作时,8个灯闪烁(由亮变为灭,或由灭变为亮)。
4.硬件电路与工作原理
从图上可以看出,当P1.0~P1.7中某个引脚输出低电平时,则发光二极管上有电流流过,发光二极管发光,否则,当对应引脚为高电平时,发光二极管上无电流流过,发光二极管熄灭。
5.实验参考程序
Org0000h
LOOP:
SETBP1.0 ;(1)
LCALLDELAY ;(2)
CLRP1.0 ;(3)
LCALLDELAY ;(4)
AJMPLOOP ;(5)
;以下子程序
DELAY:
MOVR7,#250 ;(6)
D1:
MOVR6,#250 ;(7)
D2:
DJNZR6,D2 ;(8)
DJNZR7,D1 ;(9)
RET ;(10)
END ;(11)
(二)P1口外接8只发光二极管模拟彩灯
1、实验目的:
掌握MCS-51单片机的数据传送指令的功能及MCS-51单片机的寻址方式。
2、实验设备及其条件:
IBMPC机一台,DP-51PRO单片机综合仿真实验仪一台,频率计一台。
3、实验内容:
利用P1口外接的8只LED发光二极管模拟彩灯。
常见的彩灯模式有:
流水式彩灯、追逐式彩灯、累积式彩灯、开幕式与闭幕式彩灯以及将上述模式组合而成的复合式彩灯。
大多数的彩灯都是采用单片机控制的,简单的彩灯单片机的控制程序也较为简单,复杂的彩灯单片机控制程序也较为复杂。
4、实验电路和工作原理
当P1.0~P1.7中的某端口为低电平时,对应的发光二极管亮,为高电平灭。
我们只要控制P1口各位的电平状态,就可以控制8只LED的亮与灭。
例如使(P1)=B=55H,D7、D5、D3、D14只LED亮,D6、D4、D2、D04只LED灭,从效果上看亮与灭是相间隔的;反之,使(P1)=B=AAH,则另外4只LED亮,若反复以一定时间间隔不断从P1口轮流输出55H和AAH,则P1口上8只LED会呈现流水彩灯的效果。
5、实验程序
1)将立即数送P1口的程序
ORG0000H;定义程序从程序存贮器0000H单元开始存放
LOOP:
MOVP1,#55H;立即数55H送P1口,4只LED亮
SJMPLOOP;原地踏步
END;程序结束
2)通过累加器A控制P1口的程序
ORG0000H
LOOP:
MOVA,#0AAH;将立即数AAH送累加器A
MOVP1,A;累加器A中的数送P1端口
SJMPLOOP;转移到LOOP
END
3)流水式彩灯程序
开始
55H送P1口
延时0.3秒
AAH送P1口
延时0.3秒
流水式彩灯程序流程图
ORG0000H
LOOP:
MOVP1,#55H
;将立即数55H送P1端口
LCALLTIME;调延时子程序TIME
MOVP1,#0AAH
;将立即数AAH送P1端口
LCALLTIME;调延时子程序TIME
SJMPLOOP;转移到LOOP
TIME:
MOVR6,#200;延时子程序TIME
TIME1:
MOVR7,#200
TIME2:
NOP
NOP
NOP
DJNZR7,TIME2
DJNZR6,TIME1
RET
END
4)开幕式与闭幕式彩灯程序
ORG0000H
LJMPMAIN;跳转到主程序
ORG0030H
MAIN:
MOVR0,#8;R0送循环次数8
MOVDPTR,#TAB;给数据指针赋值
LOOP:
MOVA,#00H;
MOVCA,@A+DPTR
MOVP1,A
LCALLTIME
INCDPL
DJNZR0,LOOP
SJMPMAIN
TIME:
MOVR6,#200
TIME1:
MOVR7,#200
TIME2:
NOP
NOP
NOP
DJNZR7,TIME2
DJNZR6,TIME1
RET
TAB:
DB81H,0C3H,0E7H,0FFH,18H,3CH,7EH,0FFH
END
(三)电子琴实验
1、实验目的
利用实验仪上提供的K1-K7作为电子琴按键,控制蜂鸣器发声,使用户了解计算机的发声原理,熟悉定时器和键盘扫描电路的工作原理和编程方法。
2、实验设备及条件
IBMPC机一台,DP-51PRO单片机综合仿真实验仪一台,频率计一台.
3、实验内容
1)编写一段程序,用p3.3口控制(输出7种音阶标称频率的方波),使D4区的蜂鸣器发出不同的音调.程序检测按键的状态,当某一键按下时蜂鸣器发出对应的音调.
2)按照歌曲的音调,使用D1区的按键K1-K7,弹奏一首简单的音乐.
4、实验步骤
1)用导线将A2区J58接口P3.3口(INT1)和D4区的J8接口相连,然后将D1区的J53接口和A2区的J61接口一一对应相连.
2)编写按键的动态键盘扫描程序,根据不同音阶的频率编写蜂鸣器的音调控制程序,然后完成电子琴的主程序设计.
3)调试编写好的程序,使用频率计校准音阶的频率,然后使用键盘演奏一段好听的音乐.
5、实验参考程序
BUZZEQUP3.3;端口定义
ORG8000H
LJMPMAIN
ORG800BH
LJMPINT_T0
ORG8100H
MAIN:
MOVSP,#60H;初始化堆栈指针
MOVP1,#0FFH;设置P1口为输入模式
MOVTMOD,#01H;设置定时器0为工作模式
SETBET0;开定时器0中断
SETBEA;开总中断
CLRTR0;关闭定时器
START:
MOVR0,P1
CJNER0,#0FFH,KEY1;键盘扫描
CLRTR0
SJMPSTART
KEY1:
CJNER0,#0FEH,KEY2;K1键按下
MOV30H,#0FBH;设置音阶1
MOV31H,#0E9H
LJMPSET_TIMER
KEY2:
CJNER0,#0FDH,KEY3;K2键按下
MOV30H,#0FCH;设置音阶2
MOV31H,#5CH
LJMPSET_TIMER
KEY3:
CJNER0,#0FBH,KEY4;K3键按下
MOV30H,#0FCH;设置音阶3
MOV31H,#0C1H
LJMPSET_TIMER
KEY4:
CJNER0,#0F7H,KEY5;K4键按下
MOV30H,#0FCH;设置音阶4
MOV31H,#0EFH
LJMPSET_TIMER
KEY5:
CJNER0,#0EFH,KEY6;K5键按下
MOV30H,#0FDH;设置音阶5
MOV31H,#045FH
LJMPSET_TIMER
KEY6:
CJNER0,#0DFH,KEY7;K6键按下
MOV30H,#0FDH;设置音阶6
MOV31H,#092H
LJMPSET_TIMER
KEY7:
CJNER0,#0BFH,NOKEY;K1键按下
MOV30H,#0FDH;设置音阶1
MOV31H,#0D6H
SET_TIMER:
SETBTR0;发声
SJMPSTART
NOKEY:
CLRTR0;无键按下
SJMPSTART
INT_T0:
MOVTH0,30H;定时器赋初值
MOVTL0,31H
CPLBUZZ;输出方波
RETI
;
END
(四)串转并的I/O实验
1、实验目的
熟悉并掌握串转并的I/O扩展方法.
2、实验设备及器件
IBMPC机一台,DP-51PRO单片机综合仿真实验仪一台
3、实验内容
1)编写程序,通过单片机的P1口控制74HC164的串口实现串并转换.
2)验证串转并转换数据的正确性.
4、实验要求
熟悉串转并转换芯片的工作原理,学会使用串转并转换芯片扩展单片机的I/O口资源.
5、实验步骤
1)短接C5区JP10接口,将C5区J43接口与A2区J61接口的P10-P13对应相连,.
2)运行编写好的软件程序,完成一次串并转换.
3)使用C2区的逻辑笔或D1区的J52接口(LED)指示灯测试并行输出数据Q0-Q7数据的正确性.
6、实验预习要求
认真阅读本实验内容,提前作好准备工作。
7.实验参考程序
CLKEQUP1.0
DINAEQUP1.1
DINBEQUP1.2
CLR164EQUP1.3
ORG8000H
LJMPMAIN
ORG8100H
MAIN:
MOVSP,#60H;设置堆栈指针
NOP;设置以下端口的初始状态
CLRCLK;CLK=0
SETBDINB;DINB=1
CLRCLR164;CLR=0输出端口清零
SETBCLR164;CLR=1
MOVA,#0AAH;用户数据初始化
MOVR4,#08H
SLCHG:
RLCA
MOVDINA,C;串行输出一位数据
SETBCLK;置位时钟
NOP
CLRCLK
NOP
DJNZR4,SLCHG
SJMP$;程序结束完成一次串并转换
;
END
(五)8
8LED扫描输出实验
1、实目的
学会利用单片机的I/O口进行LED点阵的扫描显示,掌握综合应用程序的设计与分析方法,掌握运用开发系统调试应用程序的基本方法。
2、实验设备
IBMPC机一台、DP-51PRO单片机综合仿真实验仪一台。
3、实验原理
1)8×8LED点阵简介
8×8LED点阵的外观及引脚图如图1所示,其等效电路图如图2所示。
图2中只要各LED处于正偏(Y方向为1,X方向为0),则对应的LED发光。
如Y7(0)=1,X7(H)=0时,则其对应的右下角的LED会发光。
各LED还需接上限流电阻,实际应用时,限流电阻即可接在X轴,也可接在Y轴。
8x8点阵的外观及引脚
8X8点阵的硬件电路
2)集成移位寄存器(74LS164)原理
移位寄存器是暂时记忆数据的“寄存器”,其特征是具有将数据向左或向右移动的功能。
移位寄存器有各种形式。
按存数据的位数有4位、8位等,按“输入/输出数据”形式有“串入/串出”、“串入/并出”、“并入/串出”、“并入/并入”等。
图4.6.3(a)是串行输入/并行(串行)输出移位寄存器74LS164的管脚排列图。
其功能表见表4-9所示。
74LS164有两个串行数据DA、DB输入端,使用时一般把它们连在一起;
为清零输入端,低电平有效,当该端加入低电平时,寄存器输出Q0~Q7全为低电平。
在正常情况下,清零输入端接高电平,当CP信号上升沿到来时,数据右移一位;Q0~Q7为并行数据输出端,同时Q7端也是串行数据输出端,对于串行输入的数据,最先输入的从Q7输出,最后进入的从Q0输出。
CP为移位脉冲。
图4.6.3常用移位寄存器管脚排列图
表4-974LS164的真值表
输入
输出
CPDADB
Q0Q1Q2Q3Q4Q5Q6Q7
0XXX
00000000
10XX
Q0Q1Q2Q3Q4Q5Q6Q7
1↑11
1Q0Q1Q2Q3Q4Q5Q6
1↑0X
0Q0Q1Q2Q3Q4Q5Q6
1↑X0
0Q0Q1Q2Q3Q4Q5Q6
3).实验内容
编写一段程序,用p1口控制扫描,用C5区的74HC164控制显示输出,使C区的8X8LED显示一个“
”。
4、实验要求
学会使用单片机对LED点阵进行扫描显示。
5、实验步骤
1)使用导线把A2区的J61接口与C3区的J46接口从P10-P17到LD-1~LD-8对应相连。
2)使用导线把C5区的J97接口与C3区的J47接口从Q0~Q7到LD-A~LD-H对应相连。
3)使用导线把A2区的J58接口与C5区的J43接口从INT0到CLK,从INT1到DINA,从T0到DINB,从T1到CLR对应相连,另外再短接C5区JP10和C3区JP2。
4)参考实验7编写一段从74HC164输出8位数据的程序。
5)再编写一个完整的LED点阵扫描程序,显示“
”。
6、实验预习要求。
理解硬件结构,先编写好程序,然后在KeilC51环境下进行软件仿真。
7、实验参考程序
CLKEQUP3.2
DINAEQUP3.3
DINBEQUP3.4
CLEAREQUP3.5
ORG8000H
AJMPMAIN
ORG8100H
MAIN:
MOVSP,#70H;设置堆栈指针
MOV50H,#07EH;设置发送的列数据
MOV51H,#0BDH
MOV52H,#0DBH
MOV53H,#0E7H
MOV54H,#0E7H
MOV55H,#0DBH
MOV56H,#0BDH
MOV57H,#07EH
CLRCLEAR;初始化I/O口
SETBCLK
SETBDINA
SETBDINB
SETBCLEAR
MAINLOOP:
MOVR6,#8H;设置扫描次数
MOVDPTR,#09000H;读取扫描端口数据
MOVR1,#50H;指定列数据指针
FLASHCY:
MOVA,@R1;读取列数据
MOVR0,A
INCR1;列数据指针加1
CLRA
MOVCA,@A+DPTR;读取扫描端口数据
MOVP1,0FFH
LCALLSENDTO;发送列数据
MOVP1,A
INCDPTR
LCALLDELAY
DJNZR6,FLASHCY
SJMPMAINLOOP
SENDTO:
;发送数据程序
PUSHACC
CLRCLK
SENDTIME:
MOVR7,#08H
MOVA,R0
CLRC
SENDCY:
RRCA
MOVDINA,C
SETBCLK
CLRCLK
DJNZR7,SENDCY
POPACC
RET
DELAY:
MOVR7,#01
DELAY0:
MOVR4,#17
DELAY1:
MOVR3,#28
DJNZR3,$
DJNZR4,DELAY1
DJNZR7,DELAY0
RET
ORG09000H
DB0FEH,OFDH,OFBH,0F7H,0EFH,0DFH,0BFH,07FH
;
END
8、根据参考例程,编写循环显示“广东轻工业职业技术学院”的程序。
附件2:
LCD液晶显示模块显示图形和汉字设计指导书
一、概述
TG12864B是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及128×64全点阵液晶
显示器组成。
可完成图形显示,也可以8×4个(16×16点阵)汉字。
主要技术参数和性能:
1.电源:
VDD:
+2.7~+5V;模块内自带-10V负压,用于LCD的驱动电压。
2.显示内容:
128(列)×64(行)点
3.全屏幕点阵
4.七种指令
5.与CPU接口采用8位数据总线并行输入输出和8条控制线
6.占空比1/64
7.工作温度:
-10℃~+60℃,储存温度:
-20℃~+70℃,可选择宽温:
-20℃~+70℃(工作温度);
二、外形尺寸图
三、模块主要硬件构成说明
IC3为行驱动器,IC1,IC为列驱动器。
IC1,IC2,IC3含有如下主要功能器件。
了解如下器件有利于对LCD模块之编程。
1.指令寄存器(IR)
IR是用来寄存指令码,与数据寄存器寄存数据相对应。
当D/I=1时,在E信号下降沿的作用下,指令码写入IR。
2.数据寄存器
DR是用来寄存数据的,与指令寄存器寄存指令相对应。
当D/I=1时,在E信号的下降沿的作用下,图形显示数据写入DR,或在E信号高电平作用下由DR读到DB7~DB0数据总线。
DR和DDRAM之间的数据传输是模块内部自动执行的。
3.忙标志:
BF
BF标志提供内部工作情况。
BF=1表示模块在进行内部操作,此时模块不接受外部指令和数据。
BF=0时,模块为准备状态,随时可接受外部指令和数据。
利用STATUSREAD指令,可以将BF读到DB7总线,从而检验模块之工作状态。
4.显示控制触发器DFF
此触发器是用于模块屏幕显示开和关的控制。
DFF=1为开显示(DISPLAYON),DDRAM的
内容就显示在屏幕上,DDF=0为关显示(DISPLAYOFF)。
DDF的状态是指令DISPLAYON/OFF和RST信号控制的。
5.XY地址计数器
XY地址计数器是一个9位数计数器。
高三位是X地址计数器,低6位为Y地址计数器,XY
地址计数器实际上是作为DDRAM的地址指针,X地址计数器为DDRAM的页指针,Y地址计数器为DDRAM的Y地址指针。
X地址计数器是没有记数功能的,只能用指令设置。
Y地址计数器具有循环记数功能,各显示数据写入后,Y地址自动加1,Y地址指针从0到63。
6.显示数据RAM(DDRAM)
DDRAM是储存图形显示数据的。
数据为1表示显示选择,数据为0表示显示非选择。
DDRAM
与地址和显示位置的关系见DDRAM地址表(见第页)。
7.Z地址计数器
Z地址计数器是一个6位计数器,此计数器具有循环记数功能,它是用于显示行扫描同步。
当一行扫描完成,此地址计数器自动加1,指向下一行扫描数据,RST复位后Z地址计数器为0。
Z地址计数器可以用指令DISPLAYSTARTLINE预置。
因此,显示屏幕的起始行就由此指令控制,即DDTAM的数据从哪一行开始显示在屏幕的第一行。
此模块的DDRAM共64行,屏幕可以循环滚动显示64行。
四、模块的外部接口
五.指令说明
指令表
1.显示开关控制(DISPLAYON/OFF)
代码R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0
形式000011111D
D=1:
开显示(DISPLAYON)意即显示器可以进行各种显示操作
D=0:
关显示(DISPLAYOFF)意即不能对显示器进行各种显示操作
2.设置显示起始行(DISPLAYSTARTLINE)
代码R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0
形式0011A5A4A3A2A1A0
前面在Z地址计数器一节已经描述了显示起始行是由Z地址计数器控制的.A5-A06位地址自动送入Z地址计数器.起始行的地址可以是0-63的任意一行。
例如:
选择A5-A0是62,则起始行与DDRAM行的对应关系如下:
DDRAM行:
62630123┉┉┉┉┉┉┉┉┉┉┉2829
屏幕显示行:
123456┉┉┉┉┉┉┉┉┉┉┉3132
3.设置页地址(SETPAGE“XADDRESS”)
代码R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0
形式0010111A2A1A0
所谓页地址就是DDRAM的行地址,8行为一页,模块共64行即8页,A2~A0表示0~7页.读写地址对数据没有影响,页地址由本指令或RST信号改变复位后页地址为0.页地址与DDRAM的对应关系见DDRAM地址表.
4.设置Y地址(SETYADDRESS)
代码R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0
形式0001A5A4A3A2A1A0
此指令的作用是将A5~A0送入Y地址计数器,作为DDRAM的Y地址指针.在对DDRAM进
行读写操作后,