1、微机原理实训指导书单片机编程实训指导书系别:机电工程系适用班级:楼宇081系主任:李鸣教研室主任:常晓玲指导教师:王芳楷、毛诗柱实训时间:2010年月广东轻工职业技术学院机电工程系电气教研室微机原理实训任务书1课程设计的目的(1)掌握Keil uVision2集成开发环境的使用方法(2)巩固和加深“单片机原理及应用”课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法,提高电子电路的设计和实验能力,为以后从事生产和科研工作打下一定的基础。2.课程设计内容根据时间安排,两周的实训主要通过以下两个阶段进行:一 基本实验(1)单灯受控闪烁(2)P1口外接8只LED发光二极管模拟彩灯(
2、3)电子琴实验,主要掌握定时器和键盘扫描的工作方法和编程(4)串转并的I/O口实验,掌握串转并的I/O口扩展方法,为第五个实验服务。(5)88LED扫描输出实验,利用单片机的I/O口进行LED点阵的扫描显示 二 课程设计LCD液晶显示模块显示图形和汉字设计要求:将学生自己的学校、系别、班级在ZY12864D图型点阵液晶上显示出来 1熟悉ZY12864D图型点阵液晶的工作原理及指令系统,了解图型液晶和单片机接口电路的设计,画出原理图 2了解汉字和数字字库字模的提出方法,以及字模的存储方法。 3完成设计报告:编写相应功能程序,包括软件流程图,并附程序清单,和电路原理图3实训要求1)提前预习实验内容
3、,熟悉Keil uVision2集成开发环境和Proteus仿真软件的使用。2)编写实验程序,按指导书要求进行仿真。3)完成课程设计报告的书写。4.课程设计报告要求(1)画出程序设计框图及硬件实验连接图。(2)写出程序清单,并给关键语句添加注释。(3)记录设计过程中观察到的结果、发现的问题的解决办法。5课程设计考核办法(1)设计报告条理清楚、内容充实、线路图清晰、准确(30%)(2)程序语句注释正确、实验结果准确(20%)(3)考核答辩(30%)(4)爱护实验设备、遵守纪律、学习态度(20%)6具体安排 1)每三人或四人一个小组,共同完成编程和调试。 2) 第1周主要熟悉实训设备,参考例程,掌
4、握基本的编程和调试方法. 3) 第2周按给定的题目进行设计,要求课余时间编程和完成设计报告附录一基本实验指导(一)闪烁的发光管1.实验目的:熟悉mcs-51单片机的内部结构,掌握mcs-51单片机各组成部分的功能和特点 。 2.实验设备及条件:IBM PC机一台,DP-51PRO单片机综合仿真实验仪一台,频率计一台.3.实验内容 单片机上电工作时,8个灯闪烁(由亮变为灭,或由灭变为亮)。 4.硬件电路与工作原理 从图上可以看出,当P1.0P1.7中某个引脚输出低电平时,则发光二极管上有电流流过,发光二极管发光,否则,当对应引脚为高电平时,发光二极管上无电流流过,发光二极管熄灭。 5.实验参考程
5、序Org 0000hLOOP: SETB P1.0 ;()LCALL DELAY ;()CLR P1.0 ;()LCALL DELAY ;()AJMP LOOP ;();以下子程序DELAY: MOV R7,#250;()D1: MOV R6,#250 ;()D2: DJNZ R6,D2 ;()DJNZ R7,D1 ;()RET ;()END ;()(二)P1口外接8只发光二极管模拟彩灯1、实验目的:掌握MCS-51单片机的数据传送指令的功能及MCS-51单片机的寻址方式。2、实验设备及其条件:IBM PC机一台,DP-51PRO单片机综合仿真实验仪一台,频率计一台。3、实验内容:利用P1口外
6、接的8只LED发光二极管模拟彩灯。常见的彩灯模式有:流水式彩灯、追逐式彩灯、累积式彩灯、开幕式与闭幕式彩灯以及将上述模式组合而成的复合式彩灯。大多数的彩灯都是采用单片机控制的,简单的彩灯单片机的控制程序也较为简单,复杂的彩灯单片机控制程序也较为复杂。4、实验电路和工作原理当P1.0P1.7中的某端口为低电平时,对应的发光二极管亮,为高电平灭。我们只要控制P1口各位的电平状态,就可以控制8只LED的亮与灭。例如使(P1)=B=55H, D7、D5、D3、D14只LED亮,D6、D4、D2、D04只LED灭,从效果上看亮与灭是相间隔的;反之,使(P1)=B=AAH,则另外4只LED亮,若反复以一定
7、时间间隔不断从P1口轮流输出55H和AAH,则P1口上8只LED会呈现流水彩灯的效果。 5、实验程序1)将立即数送P1口的程序ORG 0000H ; 定义程序从程序存贮器0000H单元开始存放LOOP: MOV P1,#55H ; 立即数55H送P1口,4只LED亮SJMP LOOP ; 原地踏步END ; 程序结束2)通过累加器A控制P1口的程序ORG 0000HLOOP: MOV A,#0AAH ;将立即数AAH送累加器AMOV P1, A ;累加器A中的数送P1端口SJMP LOOP ;转移到LOOPEND 3)流水式彩灯程序 开始55H送P1口延时0.3秒AAH送P1口延时0.3秒流水
8、式彩灯程序流程图 ORG 0000H LOOP: MOV P1,#55H ;将立即数55H送P1端口LCALL TIME ;调延时子程序TIMEMOV P1,#0AAH ;将立即数AAH送P1端口LCALL TIME ;调延时子程序TIMESJMP LOOP ;转移到LOOPTIME: MOV R6,#200 ;延时子程序TIMETIME1:MOV R7,#200 TIME2:NOPNOPNOPDJNZ R7,TIME2DJNZ R6,TIME1RETEND4)开幕式与闭幕式彩灯程序ORG 0000H LJMP MAIN ;跳转到主程序 ORG 0030HMAIN: MOV R0,#8 ;R0
9、送循环次数8 MOV DPTR,#TAB ;给数据指针赋值LOOP: MOV A,#00H ; MOVC A, A + DPTR MOV P1,A LCALL TIME INC DPL DJNZ R0,LOOP SJMP MAINTIME: MOV R6,#200TIME1: MOV R7,#200TIME2: NOP NOP NOP DJNZ R7,TIME2 DJNZ R6,TIME1 RETTAB: DB 81H,0C3H,0E7H,0FFH,18H,3CH,7EH,0FFH END (三)电子琴实验1、实验目的利用实验仪上提供的K1-K7作为电子琴按键,控制蜂鸣器发声,使用户了解计算机
10、的发声原理,熟悉定时器和键盘扫描电路的工作原理和编程方法。2、实验设备及条件IBM PC机一台,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)编写按键的动态键盘扫描程序,根据不同音阶的频率编写蜂鸣器的音调控制程
11、序,然后完成电子琴的主程序设计.3)调试编写好的程序,使用频率计校准音阶的频率,然后使用键盘演奏一段好听的音乐.5、实验参考程序BUZZ EQU P3.3 ;端口定义ORG 8000HLJMP MAINORG 800BHLJMP INT_T0ORG 8100HMAIN:MOV SP, #60H ;初始化堆栈指针MOV P1,#0FFH ;设置P1口为输入模式MOV TMOD,#01H ;设置定时器0为工作模式SETB ET0 ;开定时器0中断SETB EA ;开总中断CLR TR0 ;关闭定时器START:MOV R0,P1CJNE R0,#0FFH,KEY1 ;键盘扫描CLR TR0SJMP
12、 STARTKEY1:CJNE R0,#0FEH,KEY2 ;K1键按下MOV 30H,#0FBH ;设置音阶1MOV 31H,#0E9HLJMP SET_TIMERKEY2:CJNE R0,#0FDH,KEY3 ;K2键按下MOV 30H,#0FCH ;设置音阶2MOV 31H,#5CHLJMP SET_TIMERKEY3:CJNE R0,#0FBH,KEY4 ;K3键按下MOV 30H,#0FCH ;设置音阶3MOV 31H,#0C1HLJMP SET_TIMERKEY4:CJNE R0,#0F7H,KEY5 ;K4键按下MOV 30H,#0FCH ;设置音阶4MOV 31H,#0EFHL
13、JMP SET_TIMERKEY5:CJNE R0,#0EFH,KEY6 ;K5键按下MOV 30H,#0FDH ;设置音阶5MOV 31H,#045FHLJMP SET_TIMERKEY6:CJNE R0,#0DFH,KEY7 ;K6键按下MOV 30H,#0FDH ;设置音阶6MOV 31H,#092HLJMP SET_TIMERKEY7:CJNE R0,#0BFH,NOKEY ;K1键按下MOV 30H,#0FDH ;设置音阶1MOV 31H,#0D6HSET_TIMER:SETB TR0 ;发声SJMP STARTNOKEY:CLR TR0 ;无键按下SJMP STARTINT_T0:
14、MOV TH0,30H ;定时器赋初值MOV TL0,31H CPL BUZZ ;输出方波RETI;END(四)串转并的I/O实验1、实验目的熟悉并掌握串转并的I/O扩展方法.2、实验设备及器件IBM PC机一台,DP-51PRO单片机综合仿真实验仪一台3、实验内容1)编写程序,通过单片机的P1口控制74HC164的串口实现串并转换.2)验证串转并转换数据的正确性.4、实验要求熟悉串转并转换芯片的工作原理,学会使用串转并转换芯片扩展单片机的I/O口资源.5、实验步骤1)短接C5区JP10接口,将C5区J43接口与A2区J61接口的P10-P13对应相连,.2)运行编写好的软件程序,完成一次串并
15、转换.3)使用C2区的逻辑笔或D1区的J52接口(LED)指示灯测试并行输出数据Q0-Q7数据的正确性.6、实验预习要求认真阅读本实验内容,提前作好准备工作。7实验参考程序 CLK EQU P1.0 DINA EQU P1.1DINB EQU P1.2CLR164 EQU P1.3ORG 8000HLJMP MAINORG 8100HMAIN:MOV SP,#60H ;设置堆栈指针NOP ;设置以下端口的初始状态CLR CLK ;CLK=0SETB DINB ;DINB=1CLR CLR164 ;CLR=0输出端口清零SETB CLR164 ;CLR=1MOV A,#0AAH ;用户数据初始化
16、MOV R4,#08HSLCHG:RLC AMOV DINA,C ;串行输出一位数据SETB CLK ;置位时钟NOPCLR CLKNOPDJNZ R4,SLCHGSJMP $ ;程序结束完成一次串并转换;END(五)88LED扫描输出实验1、实目的学会利用单片机的I/O口进行LED点阵的扫描显示,掌握综合应用程序的设计与分析方法,掌握运用开发系统调试应用程序的基本方法。2、实验设备IBM PC机一台、DP-51PRO单片机综合仿真实验仪一台。3、实验原理1)88 LED点阵简介 88LED点阵的外观及引脚图如图1所示,其等效电路图如图2所示。图2中只要各LED处于正偏(Y方向为1,X方向为0
17、),则对应的LED发光。如Y7(0)=1,X7(H)=0时,则其对应的右下角的LED会发光。各LED还需接上限流电阻,实际应用时,限流电阻即可接在X轴,也可接在Y轴。 8x8 点阵的外观及引脚 8X8点阵的硬件电路)集成移位寄存器(74LS164)原理移位寄存器是暂时记忆数据的“寄存器”,其特征是具有将数据向左或向右移动的功能。移位寄存器有各种形式。按存数据的位数有4位、8位等,按“输入/输出数据”形式有“串入/串出”、“串入/并出”、“并入/串出”、“并入/并入”等。图4.6.3(a)是串行输入/并行(串行)输出移位寄存器74LS164的管脚排列图。其功能表见表4-9所示。74LS164有两
18、个串行数据DA、DB输入端,使用时一般把它们连在一起;为清零输入端,低电平有效,当该端加入低电平时,寄存器输出Q0Q7全为低电平。在正常情况下,清零输入端接高电平,当CP信号上升沿到来时,数据右移一位;Q0Q7为并行数据输出端,同时Q7端也是串行数据输出端,对于串行输入的数据,最先输入的从Q7输出,最后进入的从Q0输出。CP为移位脉冲。图4.6.3 常用移位寄存器管脚排列图 表4-9 74LS164的真值表输 入输 出 CP DA DBQ0 Q1 Q2 Q3 Q4 Q5 Q6 Q70 X X X0 0 0 0 0 0 0 01 0 X XQ0 Q1 Q2 Q3 Q4 Q5 Q6 Q71 1 1
19、1 Q0 Q1 Q2 Q3 Q4 Q5 Q61 0 X0 Q0 Q1 Q2 Q3 Q4 Q5 Q61 X 00 Q0 Q1 Q2 Q3 Q4 Q5 Q6)实验内容编写一段程序,用p1口控制扫描,用C5区的74HC164控制显示输出,使C区的8X8LED显示一个“”。4、实验要求学会使用单片机对LED点阵进行扫描显示。5、实验步骤 1)使用导线把A2区的J61接口与C3区的J46接口从P10-P17到LD-1LD-8对应相连。 2)使用导线把C5区的J97接口与C3区的J47接口从Q0Q7到LD-ALD-H对应相连。 3)使用导线把A2区的J58接口与C5区的J43接口从INT0到CLK,从IN
20、T1到DINA,从T0 到DINB,从T1到CLR对应相连,另外再短接C5区JP10和C3区JP2。 4)参考实验7编写一段从74HC164输出8位数据的程序。 5)再编写一个完整的LED点阵扫描程序,显示“”。6、实验预习要求。理解硬件结构,先编写好程序,然后在Keil C51环境下进行软件仿真。7、实验参考程序 CLK EQU P3.2 DINA EQU P3.3 DINB EQU P3.4 CLEAR EQU P3.5ORG 8000HAJMP MAINORG 8100HMAIN: MOV SP, #70H ;设置堆栈指针 MOV 50H,#07EH ;设置发送的列数据 MOV 51H,
21、#0BDH MOV 52H,#0DBH MOV 53H,#0E7H MOV 54H,#0E7H MOV 55H,#0DBH MOV 56H,#0BDH MOV 57H,#07EH CLR CLEAR ;初始化I/O口 SETB CLK SETB DINASETB DINB SETB CLEARMAINLOOP:MOV R6,#8H ;设置扫描次数MOV DPTR,#09000H ;读取扫描端口数据MOV R1,#50H ;指定列数据指针FLASHCY: MOV A,R1 ;读取列数据 MOV R0,A INC R1 ;列数据指针加1CLR AMOVC A,A+DPTR ;读取扫描端口数据MOV
22、 P1,0FFH LCALL SENDTO ;发送列数据MOV P1,AINC DPTRLCALL DELAYDJNZ R6,FLASHCYSJMP MAINLOOPSENDTO: ;发送数据程序PUSH ACCCLR CLKSENDTIME:MOV R7,#08HMOV A,R0CLR CSENDCY: RRC AMOV DINA,CSETB CLKCLR CLKDJNZ R7,SENDCYPOP ACCRETDELAY: MOV R7,#01DELAY0:MOV R4,#17DELAY1:MOV R3,#28DJNZ R3,$DJNZ R4,DELAY1DJNZ R7,DELAY0RETO
23、RG 09000HDB 0FEH,OFDH,OFBH,0F7H,0EFH,0DFH,0BFH,07FH;END8、根据参考例程,编写循环显示“广东轻工业职业技术学院”的程序。附件:LCD液晶显示模块显示图形和汉字设计指导书一、概述TG12864B 是一种图形点阵液晶显示器, 它主要由行驱动器/列驱动器及128 64全点阵液晶显示器组成。可完成图形显示,也可以8 4个( 16 16 点阵) 汉字。主要技术参数和性能:1. 电源: VDD: +2.7 +5V; 模块内自带-10V 负压, 用于LCD 的驱动电压。2. 显示内容: 128( 列) 64( 行) 点3. 全屏幕点阵4. 七种指令5.
24、与CPU接口采用8位数据总线并行输入输出和8条控制线6. 占空比1/647. 工作温度: -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
25、信号的下降沿的作用下, 图形显示数据写入DR, 或在E信号高电平作用下由DR 读到DB7DB0 数据总线。DR 和DDRAM 之间的数据传输是模块内部自动执行的。3. 忙标志:BFBF 标志提供内部工作情况。BF=1 表示模块在进行内部操作, 此时模块不接受外部指令和数据。BF=0 时, 模块为准备状态, 随时可接受外部指令和数据。利用STATUS READ指令, 可以将BF 读到DB7 总线, 从而检验模块之工作状态。4. 显示控制触发器DFF此触发器是用于模块屏幕显示开和关的控制。DFF=1 为开显示( DISPLAY ON), DDRAM 的内容就显示在屏幕上, DDF=0 为关显示(
26、DISPLAY OFF)。DDF 的状态是指令DISPLAY ON/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与地
27、址和显示位置的关系见DDRAM 地址表( 见第页)。7. Z地址计数器Z地址计数器是一个6 位计数器, 此计数器具有循环记数功能, 它是用于显示行扫描同步。当一行扫描完成,此地址计数器自动加1, 指向下一行扫描数据, RST 复位后Z地址计数器为0。Z地址计数器可以用指令DISPLAY START LINE 预置。因此, 显示屏幕的起始行就由此指令控制, 即DDTAM 的数据从哪一行开始显示在屏幕的第一行。此模块的DDRAM 共64 行, 屏幕可以循环滚动显示64 行。四、模块的外部接口五. 指令说明指令表1. 显示开关控制(DISPLAY ON/OFF)代码 R/W D/I DB7 DB6
28、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. 设置显示起始行(DISPLAY START LINE) 代码 R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0形式 0 0 1 1 A5 A4 A3 A2 A1 A0前面在Z地址计数器一节已经描述了显示起始行是由Z地址计数器控制的.A5-A0 6 位地址自动送入Z地址计数器.起始行的地址可以是0-63 的任意一行。例如:
29、选择A5-A0 是62,则起始行与DDRAM 行的对应关系如下:DDRAM 行:62 63 0 1 2 3 28 29屏幕显示行: 1 2 3 4 5 6 31 323. 设置页地址(SET PAGE “ X ADDRESS” )代码 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 页,A2A0 表示07 页.读写地址对数据没有影响,页地址由本指令或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此指令的作用是将A5A0 送入Y地址计数器,作为DD RAM 的Y地址指针.在对DDRAM 进行读写操作后,
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1