《基于ADuC848开发板的单片机实验和课程设计指导书92641.doc》由会员分享,可在线阅读,更多相关《基于ADuC848开发板的单片机实验和课程设计指导书92641.doc(52页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流基于ADuC848开发板的单片机实验和课程设计指导书92641.精品文档.基于ADuC848嵌入式系统的实验和课程设计指导书(汇编语言版本)二一一年三月目 录第一章 硬件系统介绍31.1板上资源分布41.2单片机ADuC84851.2.1 ADuC848的简要介绍(针对本设计所选择的型号)51.2.2 单片机引脚分布51.3 电源模块71.4 模数/数模转换81.4.1 模数转换81.5 RS232串口91.6 PS/2接口和红外接收101.7 显示模块101.7.1 LCD显示101.7.2 数码管111.7.3 8路LED121.8 蜂鸣
2、器和红外发送131.9 SPI接口、步进电机控制131.10 按键输入141.11 IIC总线(RTC时钟和EEPROM)151.12 复位与下载16第二章 基础实验17实验一I/O 口控制实验17实验二 定时器、中断实验19实验三数码显示实验23实验四蜂鸣器驱动实验28实验五 12864 点阵型液晶显示实验31实验六 1602字符显示实验43实验七 矩阵键盘实验43实验八 A/D转换实验43实验九 D/A转换实验43第三章 系统设计方法及设计课题4431 单片机应用系统的设计过程44311 方案论证和硬件系统设计44312 系统软件设计45313 系统仿真调试设计4532 设计课题46321
3、 多功能定时装置46322 程控多波形信号发生器46323 LED汉字计时报讯屏47324 简易多功能计数器48325 LED字符显示屏48326 抢答器48327 秒表49328 数字密码锁49329 简易电子琴493210 交通灯503211步进电机控制器503212 A/D,D/A转换板503213 电子计算器513214 可编程微波炉控制系统513215 简易超市收银机523216 全自动洗衣机控制器5232175332185332195332205333 评分标准和注意事项53331 选择课题53332 评分标准54333 实验室设备使用及安全和赔偿条例54第四章 Keil uVis
4、ion4的使用554.1 前言554.2 新建工程554.3 工程设置574.4 编译连接、下载和调试程序604.4.1 编译程序604.4.2 在线下载程序614.4.3 在线调试程序634.4.4 软件仿真调试程序65第五章 PROTEUS的使用665.1 前言6652 操作步骤66521 进入系统66522 界面简介66523 操作步骤6953 Proteus与KeiI的结合73第一章 硬件系统介绍 本单片机学习板集成多个基础硬件资源模块,各个资源模块可以相互组合使该板实现不同的功能。因此,本学习板既可用于51单片机的教学实验,又可用于做功能比较强的单片机课程设计,是51单片机初学者的好
5、帮手。 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,从左至右为LE
6、D70,分别被P0.7P0.0控制; 16:复位按键和下载按键; 17、18:IIC总线上的EEPROM AT24C08和RTC DS1307; 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、可以通过串口在线下载程序和单步、断点、运行到某一行等方式
7、调试程序; 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、316位定时/计数器、看门狗定时器; 8、11中断源(2优先级)、11位堆栈指针; 9、24I/O+8模拟或数字输入; 10、UART、 SPI和I2C、高速115200波特率发生; 11、Power supply monitor、上电复位、Dual
8、 200A激励电流源。1.2.2 单片机引脚分布 详见原理图。Pin14:(P1.0P1.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激励电流源,
9、可配合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和LC
10、D12864A的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.03也作为4X4矩阵式键盘的扫描输出信号、步进电机的控制信号、数码管第数码管第6、7、8位位码。但是SPI、4X4矩阵式键盘、步进电机、数码管第6、7、8位功能不能同时实现。Pin32、Pin33:接外部32
11、.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的
12、数据总线,数码管的段码。1.3 电源模块 电源模块原理图如图1.2所示。本学习板共有如下3种供电方式: (1)5V电源适配器供电(开关往上拨、插针1下面两脚接跳线帽)。将开关sw4第2、3脚接通(开关往上拨),电源网络DVDD连接到插针1第2脚的输出,将插针1的第1、2脚(插针1下面两脚)接跳线帽,DVDD直接连接到电源适配器输入端,即为5V电源适配器供电模式。(2)712V电源适配器供电(开关往上拨、插针1上面两脚接跳线帽) 将开关sw4第2、3脚接通(开关往上拨),电源网络DVDD连接到插针1第2脚的输出,将插针1的第2、3脚(插针1上面两脚)接跳线帽,DVDD连接到稳压芯片7805的输出
13、,而7805的输入端连接到电源适配器输入端,即为712V的电源适配器经7805给学习板供电的模式。(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脚在板
14、上的分布和在原理图上的类似,均为1脚朝上。模拟信号有两种输入方式: (1)两路单端输入。把输入信号电压高的一端接到第1脚,电压低的一端接到同一个接口的第2脚。(2)一路差分输入。把输入信号的两端分别接到CONAIN1和CONAIN2的第1脚。1.4.2 数模转换 ADuC848内部有12位DAC,并有专门的DA输出引脚。DAC信号输出模块原理图如图1.4所示。图1.4 DAC信号输出模块本设计对片内DA的输出配置了运放LM358(该运放在单电源情况下对较低电平仍具有很好跟随效果),以增强其驱动能力或对DA输出做适当放大,其中R56和R57的大小决定放大倍数(A=1+R90/R89)。1.5 R
15、S232串口 串口连接原理图如图1.5所示。图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:外
16、部中断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所示。图1.7 LCD信号连接关键网络名和引脚名解释: (1)DISCTRL04:显示控制信号。(2
17、)D0D7、DB0DB7:数据总线。(3)E:LCD使能信号。(4)RS:数据、指令选择信号。(5)RW:读、写选择信号。(6)CS1、CS2:LCD12864由两部分组成,CS1和CS2为选择信号。板上接口4的上排位LCD12864的接口,下排位LCD1602的接口,排针和排母左对齐插入。切勿插错。1.7.2 数码管 该模块原理如图1.8所示。图1.8 数码管驱动电路关键网络名解释: (1)DS07:数码管段码。(2)BIT07:数码管位码。(3)MOTORAD:步进电机驱动信号。(4)DISCTRL04:显示控制信号,控制数码管低5位。(5)D08:单片机P0口。本设计采用共阴极数码管,段
18、码由PNP三极管驱动,位码由NPN型三极管驱动。引脚复用: 数码管低5位(板上为右边5位)的位码由DISCTRL04控制,可单独使用,高3位的位码控制信号与SPI信号,电机驱动信号,4X4矩阵式键盘复用,使用数码管高3位时参与复用的其他功能则不能使用。插针配置: (1)若要使用数码管第40位(板上为右边5位),可以接通插针8,为减少功耗,不用请断开。(2)若要使用数码管第75位(板上为左边3位),可以分别接通插针57和9,为减少功耗,不用请断开。1.7.3 8路LED 该模块原理如图1.9所示。图1.9 8路LED 8个LED接P0口,低电平时LED亮,这样不会影响P0口逻辑电平。LED限流电
19、阻取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)若要
20、使用蜂鸣器,可以接通插针3,为减少功耗,不用请断开。(2)若要使用红外二极管,可以接通插针4,为减少功耗,不用请断开。1.9 SPI接口、步进电机控制 该模块原理图如图1.11所示。图1.11 步进电机驱动电路本设计中步进电机为5V、70欧姆、4相步进电机。引脚复用: AduC848内部有SPI通信模块,所占用的引脚为P2.0P2.3。同时,P2.0P2.3又复用作步进电机控制信号、4X4矩阵式键盘列扫描信号,P2.1P2.3还复用为数码管第5、6、7位位码控制信号。参与复用的一项功能使用时,其他参与复用的功能则不能使用。插针配置: (1)若要驱动步进电机,可以接通插针9,为减少功耗,不用请断
21、开。1.10 按键输入 该模块原理如图1.12所示。图1.12 按键模块由于P1口(用于行扫描)内部无上拉电阻,为使无键按下时行信号为高电平,故将行信号接上拉电阻,电阻大小10K即可。引脚复用:P2.0P2.3为4X4矩阵式键盘列扫描信号,又复用作步进电机控制信号,SPI信号、P2.1P2.3还复用为数码管第5、6、7位位码控制信号。参与复用的一项功能使用时,其他参与复用的功能则不能使用。插针配置: (1)插针10上面两脚接跳线帽,4X4矩阵式键盘输入,行扫描信号为P1.0P1.3,列扫描信号为P2.02.3。(2)插针10下面两脚接跳线帽,独立按键输入,该模式有4个独立按键可用,按键扫描所用
22、端口为P1.0P1.3。这4个按键为4X4矩阵键盘的左边4个按键。1.11 IIC总线(RTC时钟和EEPROM) 该模块原理图如图1.13所示。图1.13 IIC总线连接AduC848片内有I2C模块,并有独立的引脚SCLOCK和SDATA。板上的RTC时钟芯片DS1307和EEPROM芯片AT24C08均使用了I2C总线。板上设置了I2C接口,方便MCU与板外的I2C设备进行通信。对SCLOCK和SDATA设置了测试点。具体位置参见附图1。1.12 复位与下载 复位与下载电路如图1.14所示。图1.14 复位与下载进入下载或调试模式的步骤为: (1)按住BTN1(down or debug
23、按键)不要放开; (2)按下BTN2(reset按键),然后放开BTN2(reset按键);(3)放开BTN1(down or debug按键)。这样单片机就进入了调试模式,可以下载或调试程序。第二章 基础实验 实验一I/O 口控制实验一、实验目的1、学习P0、P1、P2、P3口的使用方法2、学习延时子程序的编写和使用3、学习Keil uVision4软件的使用二、实验内容及步骤用P0 口做输出口,接八位LED显示,程序功能使发光二极管从右到左轮流循环点亮。1、使用单片机最小应用系统。开关往下拨,使用5VUSB电源模式。若要使用其他电源,开关和插针1的设置请参考1.3节; 2、插针2(LED)
24、用短路帽接通,使能连接板上8路LED。其它插针如下图。3、在线下载和调试程序前请检查硬件配置、电源的连接、RS232通信线的连接、工程设置、通信端口的选择。4、打开Keil uVision4仿真软件,首先建立本实验的项目文件,接着添加源程序,进行编译,直到编译无误。进行软件设置,选择硬件仿真,选择串行口。5、打开电源,点击开始调试按钮,点击RUN 按钮运行程序,观察发光二极管显示情况。发光二极管单只从右到左轮流循环点亮。三、流程图及源程序1流程图2源程序ORG 0000HLOOP:MOV A, #0FEHMOV R2,#08HOUTPUT: MOV P0,ARL AACALL DELAYDJN
25、Z R2,OUTPUTLJMP LOOPDELAY: MOV R6,#00HMOV R7,#00HDELAYLOOP: ;延时程序DJNZ R6,DELAYLOOPDJNZ R7,DELAYLOOPRETEND四、思考题(1)修改程序,使发光二极管的现象发生变化。 例如:全亮 发光二极管一个一个的熄灭 全灭,循环显示(2)对于本实验延时子程序Delay: MOV R6,#00HMOV R7,#00HDelayLoop:DJNZ R6,DelayLoopDJNZ R7,DelayLoopRET假设使用12MHz 晶振,粗略计算此程序的执行时间为多少?实验二 定时器、中断实验一、实验目的1学习CP
26、U内部计数器的使用和编程方法。2掌握中断处理程序的编程方法。3 掌握Proteus软件的使用方法二、实验内容和原理1、实验内容模拟时序控制装置。观测发光二极管现象:L1、3L2、4L5、7L6、8L1、3、5、7L2、4、6、8全亮全灭 2、时间常数的计算。CPU内部定时器,按方式工作,每秒钟溢出中断一次。(假设使用6.144MHz 晶振)机器周期晶振频率()设初值为,则(),三、实验步骤(略,同实验一)四、程序流程图及源程序:1、中断子程序流程图:中断入口关闭计数控制位计数值减1装入时间常数开放计数控制位返回2、主程序流程图入口置首显示代码(A),初始地址偏移量(R1),计数初值(R0)定时
27、器1初始化,设计数初值开放EA,ET1,TR1R0=0装计数初值于R0指向下一个显示代码单元地址偏移=10装入初始偏移量从表中取显示代码显示NNYY3、 程序清单:ORG 0000HLJMP STARTORG 001BHJMP IT11ORG 0030HSTART: MOV A,#0FAHMOV R1,#03HMOV R0,#0AHMOVTMOD,#10HMOV TL1,#00HMOV TH1,#38HORL IE,#88HSETB TR1LOOP1: CJNE R0,#00,DISPMOV R0,#0AHINC R1CJNE R1,#0BH,LOOP2MOV R1,#03LOOP2: MOV
28、 A,R1MOVC A,A+PCLJMP DISPDB 0FAH,0F5H,0AFH,5FH,0AAH,55H,00H,0FFHDISP: MOV P0,AJMP LOOP1IT11: CLR TR1DEC R0MOV TL1,#00HMOV TH1,#38HSETB TR1RETIEND 五、思考题:1、 改变发光二极管闪烁的间隔时间。2 、P1口添加一个暂停按键,当该键按下时显示暂停,保持当前状态;再次按键,继续显示。3、去掉定时与中断,编写延时子程序。4、P1口添加多个按键,分别对应实现不同的显示功能。(例如:暂停键、显示状态顺序执行和逆序执行键)实验三数码显示实验一、实验目的1进一步掌
29、握定时器的使用和编程方法。2了解七段数码显示数字的原理。3熟练掌握Keil uVision4和Proteus联调的方法。二、实验内容做一个电子钟:利用定时器0定时中断,控制电子钟走时;利用单片机上的四位数码管显示分钟和秒钟。 三、程序流程图和源程序初始化程序1、主程序流程图 开始计数取显示单元值,转为段码送段数据口显示缓冲单元首址R0,扫描初值R2扫描值送位数据口显示单元地址加一扫描值带进位位(=0)右移一位N扫描值=0? Y取分、秒计数值,经变换放入相应显示单元2、中断子程序流程图:中断入口定时器置初值时间计时单元加一Y计时单元=10? NY计时单元置0秒加一,十进制调整秒值=60? N Y
30、秒置0,分加一,十进制调整分值=60? NY分置0返 回3、程序清单:ST_ADDR EQU 0000HBUF EQU 23HSBF EQU 22H;存放秒MBF EQU 21H;存放分ORG ST_ADDRLJMP MAINORG ST_ADDR+0BH;定时器0中断入口LJMP CLOCKORG ST_ADDR+200HMAIN: 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
31、TMOD,#01H MOV TL0,#00H MOV TH0,#38H MOV BUF,#00H;清零 MOV SBF,#00H MOV MBF,#00H SETB ET0;开定时器0 SETB EA SETB TR0DS1: MOV R0,#45H MOV R2,#08HDS2: CLR P2.4 MOV A,R2 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,
32、DS2 MOV R0,#45H MOV A,SBF LCALL GET MOV A,MBF LCALL GET SJMP DS1TABLE: INC A MOVC A,A+PC RETDB 03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,19H,0BFHGET: MOV R1,A ANL A,#0FH MOV R0,A DEC R0 MOV A,R1 SWAP A ANL A,#0FH MOV R0,A DEC R0 RETCLOCK:MOV TL0,#00H;定时器中断子程序 MOV TH0,#38H PUSH PSW PUSH ACC INC BUF MOV A,B
33、UF 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 RETIDELAY1: MOV R4,#10;延时程序DEL11: MOV R5,#0AHDEL12: MOV R3,#18HDEL13: DJNZ R3,DEL13 DJNZ R5,DEL12 DJNZ R4,DEL11 RET END
34、四、实验板插针配置: 使用数码管第30位(板上为右边4位),用短路子接通插针8。五、思考题1改变显示内容,使数码管显示小时和分钟。2在第一题的基础上,改写程序,使第二个数码管的小数点做为秒闪,按一秒的周期闪烁。3在原程序的基础上,改写程序,使数码管分时显示小时和分钟、分钟和秒钟。4添加按键,可以调整时钟和分钟。实验四蜂鸣器驱动实验一、实验目的1了解输入/输出端口控制方法。2了解音频发声原理。二、实验原理音阶由不同频率的方波产生,音阶与频率的关系如表一所示。方波的频率由定时器控制。定时器计数溢出后,产生中断,将P2.6口取反即得周期方波。每个音阶相应的定时器初值可按下法计算:晶振为6.144MH
35、Z时,音阶“1”相应的定时器初值为X,则1262*2=(216-X)*12(6.144*106)可得 X=64559D=FC2FH,其它的可同样求得(见下表 单位:HZ,X为16进制)音调45671234567123频率175196220247262294330349392440494523587659XFA49FAE6FB7EFC0CFC2FFC8FFCF8FD23FD73FDBAFDFAFE18FE4CFE94音的节拍由延时子程序实现。延时子程序实现基本延时时间,节拍值只能是它的整数倍。三、实验内容及步骤利用P2.6口输出不同频率的脉冲通过蜂鸣器发出不同频率音调。用短路帽接通插针三。四、程
36、序流程图和源程序1、中断子程序流程图2、主程序流程图3、源程序清单ST_ADDREQU 0000HORGST_ADDRLJMPMAINORGST_ADDR+1BHLJMPINT_0ORGST_ADDR+200HMAIN:ANLTMOD,#0FHORLTMOD,#10HSETBET1SETBEAMOVDPTR,#TONEMOVA,#00HLOP:MOVCA,A+DPTRJZMAINMOVR5,AMOVTH1,AINCDPTRMOVA,#00HMOVCA,A+DPTRMOVR6,AMOVTL1,R6SETBTR1INCDPTRMOVA,#00HMOVCA,A+DPTRMOVR2,ALOOP1:MO
37、VR3,#80HLOOP2:MOVR4,#0FFHLOOP3:DJNZR4,LOOP3DJNZR3,LOOP2DJNZR2,LOOP1INCDPTRMOVA,#00HLJMPLOPINT_0:PUSHDPHPUSHDPLPUSHACCCPLP2.6MOVTH1,R5MOVTL1,R6SETBTR1POPACCPOPDPLPOPDPHRETITONE:DB0FCH,2FH,04H,0FCH,99H,04H,0FCH,0F8H,04H,0FDH,22H,04HDB0FDH,073H,04H,0FDH,0BCH,04H,0FDH,0FAH,04H,0FEH,17H,04HDB0FEH,17H,04H
38、,0FDH,0FAH,04H,0FDH,0BCH,04H,0FDH,73H,04H,0FDH,22H,04H,DB 0FCH,0F8H,04H,0FCH,99H,04H,0FCH,2FH,04H,00H,00H,00HEND五、思考题1、改编一首完整的新的歌曲。实验五 12864 点阵型液晶显示实验一、实验目的1、了解点阵型液晶显示器的工作原理。2、了解点阵型液晶显示器控制方式。二、实验原理1、本实验采用内置控制器、不带字库的图形点阵液晶显示模块,点阵数为12864。它主要由行驱动器/列驱动器及12864 全点阵液晶显示器组成,可完成图形显示也可以显示84 个(1616 点阵)汉字。主要技术参
39、数和性能:1)电源VDD +5V 模块内自带-10V 负压用于LCD 的驱动电压2)显示内容128(列) 64(行)点3)全屏幕点阵4)七种指令5)与CPU 接口采用8 位数据总线并行输入输出和8 条控制线6)占空比1/647)工作温度-10 +55 存储温度-20 +602、模块主要硬件构成说明(结构框图)IC1、IC2 为列驱动器,IC1 控制模块的右半屏,IC2 控制模块的左半屏, IC3 为行驱动器。IC1、IC2、IC3 含有以下主要功能器件,了解如下器件有利于对LCD 模块的编程。1)指令寄存器(IR):IR 是用于寄存指令码,与数据寄存器数据相对应,当D/I=0 时在E 信号下降
40、沿的作用下指令码写入IR2)数据寄存器(DR):DR 用于寄存数据,与指令寄存器寄存指令相对应,当D/I=1 时在下降沿作用下,图形显示数据写入DR,或在E 信号高电平作用下,由DR 读到DB7DB0 数据总线,DR 和DDRAM 之间的数据传输是模块内部自动执行的。3)忙标志BF:BF 标志提供内部工作情况,BF=1 表示模块在内部操作,此时模块不接受外部指令和数据;BF=0 时模块为准备状态,随时可接受外部指令和数据。利用STATUS READ 指令可以将BF 读到数据总线从而检验模块之工作状态。4)显示控制触发器DFF:用于模块屏幕显示开和关的控制,DFF=1 为开显示,DDRAM 的内
41、容就显示在屏幕上;DFF=0为关显示。DDF 的状态是指令DISPLAY ON/OFF 和RST 信号控制的。5)XY 地址计数器:XY 地址计数器是一个9 位计数器高,3 位是X 地址计数器,低6 位为Y 地址计数器。XY 地址计数器实际上是作为DDRAM 的地址指针,X 地址计数器为DDRAM 的页指针,Y 地址计数器为DDRAM 的Y 地址指针。X 地址计数器没有记数功能,只能用指令设置。Y 地址计数器具有循环记数功能,各显示数据写入后 Y 地址自动加1, Y 地址指针从0 到63。6)显示数据RAM DDRAMDDRAM 是存储图形显示数据的,数据为1 表示显示选择,数据为0 表示显示非选择。7)Z 地址计数器:Z 地址计数器是一个6 位计数