智能仪器实验指导(PROTEUS仿真)_第1页
智能仪器实验指导(PROTEUS仿真)_第2页
智能仪器实验指导(PROTEUS仿真)_第3页
智能仪器实验指导(PROTEUS仿真)_第4页
智能仪器实验指导(PROTEUS仿真)_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验一 智能仪器设计集成环境介绍一、 实验目的1. 掌握利用Proteus仿真平台进行电路设计的基本操作。2. 掌握利用Proteus软件和Keil联合仿真调试的操作。二、 实验仪器计算机一台、Proteus软件三、 实验内容Proteus ISIS是英国Labcenter Electronics公司开发的EDA软件。单片机是现代电子技术的新兴领域,它的出现极大地推动了电子工业的发展,已成为电子系统设计中最为普遍的应用手段。近年来单片机技术得到了突飞猛进的发展,各种单片机开发工具层出不穷。虚拟仿真就是近年来兴起的一种新型应用技术,采用虚拟仿真技术,在原理图设计阶段就可以对单片机应用设计进行评估

2、,验证所设计电路是否达到所要求的技术指标,还可以通过改变元器件参数使整个电路性能达到最优化。这样就无须多次购买元器件及制作印刷电路板,节省了设计时间与经费,提高了设计效率与质量。英国Labcenter公司推出的Proteus软件是一款极好的单片机应用开发平台,它以其特有的虚拟仿真技术很好地解决了单片机及其外围电路的设计和协同仿真问题,可以在没有单片机实际硬件的条件下,利用PC以虚拟仿真方式实现单片机系统的软、硬件同步仿真调试,使单片机应用系统设计变得简单容易。Proteus软件涵盖了PIC、AVR、MCS8051、68HC11、ARM等微处理器模型,以及多种常用电子元器件,包括74系列、CMO

3、S 4000系列集成电路、A/D和D/A转换器、键盘、LCD显示器、LED显示器,还提供示波器、逻辑分析仪、通信终端、电压/电流表、I2C/SPI终端等各种虚拟仪表,这些都可以直接用于仿真设计,极大地提高了设计效率和设计水平。下面以一个“完成每隔1秒钟接在P1口的八个发光二极管循环闪亮”例子来说明实验过程。实验硬件电路(如图1.1所示):图1.1 硬件电路图源程序:ORG0000HLJMPSTARTORG0030HSTART:MOVA,#0FEHLOOP:MOVP1,AMOVR1,#10DLE1: MOVR2,#200DLE2: MOVR3,#126DLE3: DJNZR3, DLE3DJNZ

4、R2, DLE2DJNZR1, DLE1RLALJMPLOOPEND四、 实验步骤1、进入Proteus 系统,画出实验电路图;2、进入Keil C51软件的操作环境,编辑源程序并对源文件进行编译;编译如图1.2所示:图1.2 编译3、对Proteus系统和 Keil C51系统进行联机设置,如图1.3、1.4所示;联机设置:首先要安装Proteus的Keil 驱动,安装好驱动后,进入Keil界面进行设置,单击工具条中的按钮,在弹出的表单中单击选项卡,选择的组合框,在下拉菜单中选中“Proteus VSM Simulator”选项即可,如果是联机进行联调,还要在其后的按钮中进行适当的设置。之后

5、在Proteus界面下单击菜单栏中的按钮,在下拉菜单选中即可,至此完成了联调的基本设置。图1.3 在Keil中的联调的设置图1.4 Proteus中的联调的设置4、在Keil C51系统中运行、调试程序,在Proteus系统中检查输出结果,如图1.5所示。延时时间的计算:执行一条DJNZ Rn,rel指令需要两个机器周期,因此只要计算出执行了多少该指令并结合计算其它处于延时程序中的各条指令的执行次数和周期数,就可以计算出延时程序的延时时间。每个机器周期为12个时钟周期,结合晶振的周期就可以较精确的计算出延时时间。图1.5 联调结果五、思考题: 1、总结 Proteus 系统的使用特点;2、给实

6、验源程序加上注释。3、总结利用Proteus系统和 Keil C51系统进行联机调试的电路设计过程。实验二 程序存储器与数据存储器扩展实验一、 实验目的1. 学习程序存储器的电路的扩展原理。2. 学习数据存储器的电路的扩展原理。3. 掌握利用Proteus软件和Keil联合仿真调试的操作。二、 实验仪器计算机一台、Proteus软件三、 实验内容在8051单片机外部扩展8KB RAM芯片6264,其地址范围为0000H1FFFH,将一些特殊常数信息(如图片数据等)存放在单片机内ROM从1000H地址开始的地方,程序运行时将ROM中从1000H地址开始的内容转存到外部RAM中。ORG 0000H

7、MOV DPTR,#1000HMOV R7,#0LP:MOV A,#0MOVC A,A+DPTRMOVX DPTR,AINC DPTRDJNZ R7,LPSJMP $ORG 1000HDB 0f0H, 0f8H, 0cH, 0c4H, 0cH, 0f8H, 0f0H, 00H, 03H, 07H, 0cH, 08H, 0cH, 07H, 03H, 00H DB 00H, 10H, 18H, 0fcH, 0fcH, 00H, 00H, 00H, 00H, 08H, 08H, 0fH, 0fH, 08H, 08H, 00H DB 08H, 0cH, 84H, 0c4H, 64H, 3cH, 18H

8、, 00H, 0eH, 0fH, 09H, 08H, 08H, 0cH, 0cH, 00H DB 08H, 0cH, 44H, 44H, 44H, 0fcH, 0b8H, 00H, 04H, 0cH, 08H, 08H, 08H, 0fH, 07H, 00H DB 0c0H, 0e0H, 0b0H, 98H, 0fcH, 0fcH, 80H, 00H, 00H, 00H, 00H, 08H, 0fH, 0fH, 08H, 00H DB 7cH, 7cH, 44H, 44H, 44H, 0c4H, 84H, 00H, 04H, 0cH, 08H, 08H, 08H, 0fH, 07H, 00H

9、DB 0f0H, 0f8H, 4cH, 44H, 44H, 0c0H, 80H, 00H, 07H, 0fH, 08H, 08H, 08H, 0fH, 07H, 00H DB 0cH, 0cH, 04H, 84H, 0c4H, 7cH, 3cH, 00H, 00H, 00H, 0fH, 0fH, 00H, 00H, 00H, 00H DB 0b8H, 0fcH, 44H, 44H, 44H, 0fcH, 0b8H, 00H, 07H, 0fH, 08H, 08H, 08H, 0fH, 07H, 00H DB 38H, 7cH, 44H, 44H, 44H, 0fcH, 0f8H, 00H, 0

10、0H, 08H, 08H, 08H, 0cH, 07H, 03H, 00H DB 00H, 00H, 00H, 30H, 30H, 00H, 00H, 00H, 00H, 00H, 00H, 06H, 06H, 00H, 00H, 00H DB 00H, 00H, 00H, 30H, 30H, 00H, 00H, 00H, 00H, 00H, 08H, 0eH, 06H, 00H, 00H, 00H DB 00H, 80H, 0c0H, 60H, 30H, 18H, 08H, 00H, 00H, 00H, 01H, 03H, 06H, 0cH, 08H, 00H DB 00H, 20H, 20

11、H, 20H, 20H, 20H, 20H, 00H, 00H, 01H, 01H, 01H, 01H, 01H, 01H, 00H DB 00H, 08H, 18H, 30H, 60H, 0c0H, 80H, 00H, 00H, 08H, 0cH, 06H, 03H, 01H, 00H, 00H DB 18H, 1cH, 04H, 0c4H, 0e4H, 3cH, 18H, 00H, 00H, 00H, 00H, 0dH, 0dH, 00H, 00H, 00H END四、 实验步骤1、进入Proteus 系统,画出实验电路图;2、进入Keil C51软件的操作环境,编辑源程序并对源文件进行编

12、译;3、对Proteus系统和 Keil C51系统进行联机调试并保存调试结果(利用软件抓图)。五、 思考题: 1、程序存储器与数据存储器进行扩展扩展时有何异同?2、画出程序流程图。3、程序执行后6264中的内容是什么?实验三 并行IO口扩展实验1.实验目的通过实验掌握8255扩展I/O口的方法。进一步学习了解8255可编程芯片的结构及编程方法,要求编程实现8255的PA、PB和PC口的输入输出。2.实验设备微机1台、PROTEUS软件3.实验线路及实验原理8255的片选信号连到8051的P2.7,端口地址选择信号A1、A2由P2.1、P2.0提供。该电路中8255的PA、PB、PC以及控制口

13、的地址分别为7CFFH、7DFFH、7EFFH、7FFFH。编程实现8255的PA口按方式0输出,PB口按方式0输入,将PB口外接8个开关的状态通过PA口外接的LED灯反映出来。4.实验内容复习思考题1 若要求用8255的PB口作输出,PA口作输入,应如何修改实验程序?2 利用8255的方式1可实现与单片机的查询或中断方式接口,设计一个通过查询8255的PC1(IBF B)和PC7(OBF A)实现从PB口输入,从PA口输出的实验程序。3 如果需要采用8255的PC7输出连续方波,如何利用PC口的置位/复位控制命令来实现?ORG0000HPORTAEQU7CFFH ;A口PORTBEQU7DF

14、FH ;B口PORTCEQU7EFFH ;C口CADDREQU7FFFH ;控制字地址SJMPSTARTORG0030HSTART:MOVA,#82H ;方式0,PA,PC输出,PB输入MOVDPTR,#CADDRMOVX DPTR,Aloop:MOV DPTR,#PORTBMOVX A, DPTR ;读入B口MOV DPTR,#PORTAMOVX DPTR,A ;输出到A口 LCALLDELAY LJMPloopDELAY:MOVR6,#0DELAY1: MOVR7,#0DELAY2:DJNZR7,DELAY2DJNZR6,DELAY1RETEND实验四 I2C总线扩展实验采用8051单片机

15、的P1.6和P1.7作为I2C总线的SCL和SDA,扩展一片24C02存储器,用软件模拟方式实现I2C总线操作时序,向24C02内部从00H开始的字节中写入16个数据。ACKBIT10H;应答标志位SLADATA50H;器件地址字SUBADATA51H;器件子地址NUMBYTEDATA52H;读/写字节数SDABITP1.7SCLBITP1.6;I2C总线定义MTDEQU30H;发送数据缓存区首地址(30H-3FH)MRDEQU40H;接收数据缓存区首地址(40H-4FH)ORG 0000HAJMPMAINORG0030H;*;名称:IWRNBYTE;描述:向器件指定子地址写N个数据;入口参数

16、:器件地址字SLA,子地址SUBA,发送数据缓冲区MTD,发送字节数NUMBYTE;*IWRNBYTE:MOVR3,NUMBYTELCALLSTART;启动总线MOVA,SLALCALLWRBYTE;发送器件地址字LCALLCACKJNBACK,RETWRN;无应答则退出MOVA,SUBA;指定子地址LCALLWRBYTELCALLCACKMOVR1,#MTDWRDA:MOVA,R1LCALLWRBYTE;开始写入数据LCALLCACKJNBACK,IWRNBYTEINCR1DJNZR3,WRDA;判断是否写完RETWRN:LCALLSTOPRET;*;名称:IRDNBYTE;描述:从器件指定

17、子地址读取N个数据;入口参数:器件地址字SLA,子地址SUBA,接收数据缓存区MRD,接收字节数NUMBYTE;*IRDNBYTE:MOVR3,NUMBYTELCALLSTARTMOVA,SLALCALLWRBYTE;发送器件地址字LCALLCACKJNBACK,RETRDNMOVA,SUBA;指定子地址LCALLWRBYTELCALLCACKLCALLSTART;重新启动总线MOVA,SLAINCA;准备进行读操作LCALLWRBYTELCALLCACKJNBACK,IRDNBYTEMOVR1,#MRDRON1:LCALLRDBYTE;读操作开始MOVR1,ADJNZR3,SACKLCALL

18、MNACK;最后一字节发非应答位RETRDN:LCALLSTOPRETSACK:LCALLMACKINCR1SJMPRON1;*;名称:STRRT;描述:启动I2C总线子程序发送I2C总线起始条件;*START:SETBSDA;发送起始条件数据信号NOP;起始条件建立时间大于4.7us SETBSCL;发送起始条件的时钟信号NOPNOPNOPNOPNOP;起始条件锁定时间大于4.7us CLR SDA;发送起始信号NOPNOPNOPNOP;起始条件锁定时间大于4.7us CLRSCL;钳住I2C总线,准备发送或接收数据 NOP RET;*;名称:STOP;描述:停止I2C总线子程序发送I2C总

19、线停止条件;*STOP:CLR SDA ;发送停止条件的数据信号NOP NOPSETB SCL ;发送停止条件的时钟信号NOPNOPNOPNOPNOP;起始条件建立时间大于4.7usSETB SDA ;发送I2C总线停止信号NOPNOPNOPNOPNOP;延迟时间大于4.7usRET;*;名称:MACK;描述:发送应答信号子程序;*MACK:CLRSDA;将SDA置0NOPNOPSETBSCLNOPNOPNOPNOPNOP;保持数据时间,大于4.7usCLRSCLNOPNOPRET;*;名称:MNACK;描述:发送非应答信号子程序;*MNACK:SETBSDA;将SDA置1NOPNOPSETB

20、SCLNOPNOPNOPNOPNOPCLRSCL;保持数据时间,大于4.7usNOPNOPRET;*;名称:CACK;描述:检查应答位子程序,返回值:ACK=1时表示有应答;*CACK:SETBSDANOPNOPSETBSCLCLRACKNOPNOPMOVC,SDAJCCENDSETBACK;判断应答位CEND:NOPCLRSCLNOPRET;*;名称:WRBYTE;描述:发送字节子程序,字节数据放入ACC;*WRBYTE:MOVR0,#08HWLP:RLCA;取数据位JCWRISJMPWRO;判断数据位WLP1:DJNZR0,WLPNOPRETWRI:SETBSDA;发送1NOPSETBSC

21、LNOPNOPNOPNOPNOPCLRSCLSJMPWLP1WRO:CLRSDA;发送0NOPSETBSCLNOPNOPNOPNOPNOPCLRSCLSJMPWLP1;*;名称:RDBYTE;描述:读取字节子程序,读出的数据存放在ACC;*RDBYTE:MOVR0,#08HRLP:SETBSDANOPSETBSCL;时钟线为高,接收数据位NOPNOPMOVC,SDA;读取数据位MOVA,R2CLRSCL;将SCL拉低,时间大于4.7usRLCA;进行数据位的处理MOVR2,ANOPNOPNOPDJNZR0,RLP;未够8位,继续读入RETMAIN:MOVR4,#0F0H;延时,等待其它芯片复位

22、完成DJNZR4,$;发送数据缓存区初始化,将16个连续字节分别赋值为00H到0FHMOVA,#00HMOVR0,#30HS1:MOVR0,AINCR0INCACJNER0,#40H,S1;向24C02C中写数据,数据存放在24C02C中50H开始的16个字节中MOVSLA,#0A0H;24C02C地址字,写操作MOVSUBA,#50H;目标地址MOVNUMBYTE,#16;字节数LCALLIWRNBYTE;写数据DELAY:MOVR5,#20D1:MOVR6,#248D2:MOVR7,#248DJNZR7,$DJNZR6,D2DJNZR5,D1;从24C04C中读数据,数据送AT89C51中

23、40H开始的16个字节中MOVSLA,#0A0H;24C02C地址字,伪写入操作MOVSUBA,#50H;目标地址MOVNUMBYTE,#16;字节数LCALLIRDNBYTE;读数据SJMP $END实验五 DAC接口实验采用DAC0832和单片机8051连接实现波形发生器电路,为了识别按键,对8051单片机的外部中断INT0进行扩展,可通过不同的按键产生阶梯波、三角波、方波和正弦波。ORG 0000HSTART:LJMP MAINORG 0003H ;外部中断 入口LJMP INSER ;转到中断服务程序ORG 0030HMAIN:MOV DPTR,#7FFFH ;DAC0832地址SET

24、B EX0 ;允许 中断 SETB IT0 ;负边沿触发方式 SETB EA ;开中断HERE: JB 20H.0,ST ;阶梯波处理JB 20H.1,TRI ;三角波处理JB 20H.2,SQ ;方波处理JB 20H.3,SIN ;正弦波处理SJMP HERE ;等待中断INSER:JNB P1.0, LL1 ;中断服务程序,查询按键SJMP L1LL1: MOV 20H,#00H SETB 20H.0 ;设置阶梯波标志SJMP RTL1: JNB P1.2, LL2SJMP L2LL2: MOV 20H,#00HSETB 20H.1 ;设三角梯波标志 SJMP RTL2: JNB P1.4

25、, LL3SJMP L3LL3: MOV 20H,#00HSETB 20H.2 ;设置方波标志 SJMP RTL3: JNB P1.6, LL4SJMP RTLL4: MOV 20H,#00HSETB 20H.3 ;设置正弦波标志 RT: RETI ;中断返回ST: MOV A,#00H ;阶梯波LOOPP: MOVX DPTR,A ;启动D/A转换 INC A JB 20H.0,LOOPP ;连续输出波形 LJMP HERE TRI: MOV A,#00H ;三角波UP: MOVX DPTR,A ;启动D/A转换 INC A ;上升沿 CJNE A,#0FFH,UPDOWN: MOVX DP

26、TR,A ;启动D/A转换 DEC A ;下降沿 CJNE A,#00H,DOWN JB 20H.1, UP ;连续输出波形 LJMP HERESQ: MOV A,#00H ;方波 MOVX DPTR,A ;DAC输出低电平 ACALL DELAY ;延时1 MOV A,#0FFH MOVX DPTR,A ;DAC输出高电平 ACALL DELAY ;延时2 JB 20H.2, SQ ;连续输出波形 LJMP HERESIN: MOV DPTR,#SINTAB ;正弦波MOV R0,#6DHLOOP: CLR AMOVC A,A+DPTRMOV R0,AINC DPTRINC R0CJNE R

27、0,#80H,LOOPMOV DPTR,#7FFFH ;DAC0832端口地址MOV R0,#6DHLOOP1: MOV A,R0 ;取得第一个1/4周期的数据MOVX DPTR,A ;送往DAC0832INC R0CJNE R0,#7FH,LOOP1LOOP2: MOV A,R0 ;取得第二个1/4周期的数据MOVX DPTR,A ;送往DAC0832DEC R0CJNE R0,#6DH,LOOP2LOOP3: MOV A,R0 ;取得第三个1/4周期的数据CPL A ;数据取反MOVX DPTR,A ;送往DAC0832INC R0CJNE R0,#7FH,LOOP3LOOP4: MOV

28、A,R0 ;取得第四个1/4周期的数据CPL A ;数据取反MOVX DPTR,A ;送往DAC0832DEC R0CJNE R0,#6DH,LOOP4JB 20H.3, LOOP1 ;输出连续波形LJMP HERESINTAB: DB 7FH,89H,94H,9FH,0AAH,0B4H,0BEH,0C8H,0D1H,0D9HDB 0E0H,0E7H,0EDH,0F2H,0F7H,0FAH,0FCH,0FEH,0FFHDELAY: MOV R4,#0FH ;延时子程序LOOP11: MOV R5,#10HLOOP22: NOPNOPNOPDJNZ R5,LOOP22DJNZ R4,LOOP11

29、RET END实验六 ADC接口实验ADC0808与单片机8051的中断方式接口电路。采用线选法规定其端口地址,用单片机的P2.7引脚作为为选信号,因此端口地址为7FFFH。片选信号和信号一起经或非门产生ADC0808的启动信号START和地址锁存信号ALE;片选信号和信号一起经或非门产生ADC0808输出允许信号OE,OE=1时选通三态门,使输出锁存器中的转换结果送入数据总线。ADC0808的EOC信号经反相后接到8051的引脚,用于产生转换完成的中断请求信号。ADC0808芯片的3位模拟量输入通道地址码输入端A、B、C分别接到8051的P0.0、P0.1和P0.2,故只要向端口地址7FFF

30、H分别写入数据00H07H,即可启动模拟量输入通道07进行A/D转换。ORG 0000H ;主程序入口AJMP MAINORG 0013H ;外中断 入口AJMP BINT1 ;转至ADC0809中断服务子程序MAIN: MOV R0,#30H ;数据区首地址MOV R4,#08H ;八路模拟信号MOV R2,#00H ;模拟通道0SETB EA ;开中断SETB EX1 ;允许外中断1SETB IT1 ;边沿触发MOV DPTR,#7FFFH ;ADC0809端口地址MOV A,#00HMOVX DPTR,A ;启动ADC0809LOOP: MOV A,30HMOV P1,ASJMP LOO

31、P ;等待BINT1: PUSH ACCMOVX A,DPTR ;输入转换结果MOV R0,A ;存入内存INC R0 ;数据区地址加1INC R2 ;修改模拟输入通道MOV A,R2 ; MOVX DPTR,A ;启动下一路模拟通道进行转换DJNZ R4,LOOP1 ;八路未完,循环MOV R0,#30H ;八路输入转换完毕MOV R4,#08H ;MOV R2,#00H ;MOV A,#00HMOVX DPTR,A ;重新启动ADC0809LOOP1: POP ACCRETI ;中断返回END实验七 键盘与显示接口实验单片机8051与8279组成键盘显示器接口电路,8051的P2.7(A1

32、5)接到8279的片选端,P2.0(A8)接到8279的C/(A0)端,命令口地址为7FFFH,数据口地址为7EFFH。图中8279外接44矩阵键盘和6位共阴极LED数码管,采用编码扫描方式,译码器74LS138对扫描线SL0SL3进行译码,译码输出一方面扫描矩阵键盘,同时作为LED数码管的位驱动。ORG 0000HSTART:LJMP MAINORG 0013H LJMP PKEYIORG 0030HMAIN:MOV SP,#60H;主程序MOV 70H,#00;设置显示缓冲区初值MOV 71H,#01MOV 72H,#02 MOV 73H,#03MOV 74H,#04MOV 75H,#05

33、MOV 76H,#06MOV 77H,#07LCALL INI79;调8279初始化子程序LOOP:LCALL RDIR;调8279显示更新子程序SJMP LOOP;8279初始化子程序INI79:MOV DPTR,#7FFFH ;8279命令口地址MOV A,#0D1H;清0命令MOVX DPTR,AWNDU: MOVX A,DPTR ;等待8279清0结束JB ACC.7,WNDUMOV A,#00 ;设置8279为编码扫描方式,两键互锁MOVX DPTR,AMOV A,#34H ;设置8279扫描频率 MOVX DPTR,AMOV IE,#84H ;允许8279中断RET;8279显示更

34、新子程序RDIR:MOV DPTR,#7FFFH ;8279命令口地址 MOV A,#90H;写显示RAM命令MOVX DPTR,AMOV R0,#70H ;显示缓冲器首地址R0MOV R7,#8MOV DPTR,#7EFFHRDLO: MOV A,R0 ;取显示数据ADD A,#5 ;加偏移量MOVC A,A+PC ;查表转换为段码数据MOVX DPTR,AINC R0DJNZ R7,RDLORETSEG: DB 3fH,06H,5BH,4FH ;段码表DB 66H,6DH,7DH,07HDB 7FH,6FH,77H,7CHDB 39H,5EH,79H,71HDB 00H;8279按键输入中

35、断服务程序PKEYI:PUSH PSWPUSH DPLPUSH DPHPUSH ACCPUSH BSETB PSW.3;选工作寄存器1区 MOV DPTR,#7FFFH ;8279命令口地址MOVX A,DPTR;读FIFO状态字ANL A,#0FHJZ PKYR ;判FIFO中是否有数据?MOV A,#40H ;读FIFO命令MOVX DPTR,AMOV DPTR,#7EFFH;8279数据口地址MOVX A,DPTR ;读数据MOV R2,AANL A,#38H;计算键值 RR ARR ARR AMOV B,#04HMUL ABXCH A,R2ANL A,#7ADD A,R2MOV 70H

36、,AMOV 71H,#16MOV 72H,#16 MOV 73H,#16MOV 74H,#16MOV 75H,#16 PKYR:POP BPOP ACCPOP DPHPOP DPLPOP PSWRETIEND实验八 LCD接口实验图示为16字符2行的点阵字符型液晶显示模块与单片机8051接口电路。液晶显示模块的R/W和RS信号由8051单片机的低8位地址线来控制,显示模块的E信号则由单片机的最高地址线P2.7和读(RD)、写(WR)信号线组成的联合逻辑电路来控制,从而可得到该接口电路的命令写入地址为7FF0H,命令读取地址为7FF1H,数据操作地址为7FF2H。初始化内容包括将功能设置(8位字

37、长、2行、57点阵)、清屏、设置输入方式和设置显示方式及光标。每写入一条命令,都应检查忙标志BF,只有当BF=0时才能执行下一条指令。接着调用自定义汉字字符子程序,该子程序中先设定CGRAM首地址,然后依次向CGRAM中写入各个自定义汉字的字模数据;然后设定显示字符在液晶屏上的位置,即DDRAM的地址,最后将要显示的字符代码分别写入DDRAM,对于CGROM中的字符代码可以通过查表得到,而自定义汉字字符的代码为00H07H。ORG 0000HSTART:LJMP MAINORG 0030HMAIN: LCALL INIT ;主程序开始,调用液晶模块初始化子程序LCALL WPAD ;调用自定义汉字字符子程序MOV R2,#81H ;从第1行第2位开始,设置DDRAM地址LCALL WRTC ;写入MOV R4,#14

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论