实验八单片机液晶显示实验

合集下载

单片机实验指导书

单片机实验指导书

目录实验一系统认识实验 (2)实验二端口I/O输入输出实验 (14)实验三外部中断实验 (17)实验四定时器实验 (21)实验五串行口通信实验 (25)实验六串行通信的调试实验 (29)实验七数码管静态显示实验 (34)实验八数码管动态显示实验 (39)实验一系统认识实验一、实验目的1.学习Keil C51编译环境的使用;2.学习STC单片机的下载软件STC-ISP的使用;3.掌握51单片机输出端口的使用方法。

二、实验内容任选单片机的一组I/O端口,连接LED发光二极管,编写程序实现8个LED按二进制加1点亮。

三、接线方案单片机P10~P17/C51单片机接L0~L7/LED显示,如下图:图1-1实验线路四、实验原理51单片机有4个8位的并行I/O端口:P0、P1、P2、P3,在不扩展存储器、I/O端口,在不使用定时器、中断、串行口时,4个并行端口,32根口线均可用作输入或输出。

作为输出时,除P0口要加上拉电阻外,其余端口与一般的并行输出接口用法相同,但作为输入端口时,必须先向该端口写“1”。

例如P0接有一个输入设备,从P0口输入数据至累加器A中,程序为:MOV P0, #0FFHMOV A, P0若将P0.0位的数据传送至C中,程序为:SETB P0.0MOV C, P0.0五、实验步骤1、连接串行通信电缆和电源线;2、根据图1-1实验线路进行电路连接;3、将C51单片机核心板上的三个开关分别拨到“独立”、“运行”“单片机”;4、打开实验箱上的电源开关。

5、利用Keil C51创建实验程序,并进行编译生成后缀为.HEX的文件;6、利用STC-ISP软件将后缀为.HEX的文件下载到单片机ROM中;7、观察实验现象,并记录。

若实验现象有误请重复第5、6步。

六、参考程序ORG 0000H ;程序的开始LJMP MAIN ;转入主程序ORG 0200H ;主程序的开始MAIN: MOV P1,#00H ;P1口做准备M1: INC P1 ;P1口连接输出计数,LCALL DELAY ;转入延时子程序LJMP M1 ;循环DELAY: MOV R5,#255 ;延时子程序D1: MOV R6,#255DJNZ R6,$DJNZ R5,D1RETEND ;程序体结束七、思考题1、利用其他I/O口实现LED加1点亮功能;2、利用P1端口实现流水灯(左移或右移)功能;3、实现LED其他点亮功能。

实验八 51系列单片机IIC

实验八 51系列单片机IIC
8.3 I2C总线器件的寻址方式
I2C总线上的所有器件连接在一个公共的总线上,因此,主器件在进行数据传输前选择需要通信的从器件,即进行总线寻址。 I2C总线上所有外围器件都需要有惟一的地址,由器件地址和引脚地址两部分组成,共7位。器件地址是I2C器件固有的地址编码,器件出厂时就已经给定,不可更改。引脚地址是由I2C总线外围器件的地址引脚(A2,A1,A0)决定,根据其在电路中接电源正极、接地或悬空的不同,形成不同的地址代码。引脚地址数也决定了同一种器件可接入总线的最大数目。 地址位与一个方向位共同构成I2C总线器件寻址字节。寻址字节的格式如表所示。方向位(R/)规定了总线上的主器件与外围器件(从器件)的数据传输送方向。当方向位R/=1,表示主器件读取从器件中的数据;R/=0,表示主器件向从器件发送数据。
从地址中读取一个字节的数据
INT8U read_random(INT8U RomAddress) { INT8U Read_data; I_Start(); I_Write8Bit(WriteDeviceAddress); I_TestAck(); I_Write8Bit(RomAddress); I_TestAck(); I_Start(); I_Write8Bit(ReadDeviceAddress); I_TestAck(); Read_data=I_Read8Bit(); I_NoAck(); I_Stop(); return (Read_data); }
8.4.1 串行EEPROM存储器简介
串行EEPROM存储器是一种采用串行总线的存储器,这类存储器具有体积小、功耗低、允许工作电压范围宽等特点。目前,单片机系统中使用较多的EEPROM芯片是24系列串行EEPROM。其具有型号多、容量大、支持I2C总线协议、占用单片机I/O端口少,芯片扩展方便、读写简单等优点。 目前,Atmel、MicroChip、National等公司均提供各种型号的I2C总线接口的串行EEPROM存储器。下面以Atmel公司的产品为例进行介绍。 AT24C01/02/04/08系列是Atmel公司典型的I2C串行总线的EEPROM。这里以AT24C08为例介绍。AT24C08具有1024×8位的存储容量,工作于从器件模式,可重复擦写100万次,数据可以掉电保存100年。8引脚DIP封装的AT24C08的封装结构,如图所示。

单片机实验报告

单片机实验报告

单片机实验报告班级:09050541学号:0905054116姓名:王昆鹏实验1 P1口实验一、实验目的:1.学习P1口的使用方法。

2.学习延时子程序的编写和使用。

二、实验设备:CPU挂箱、8051CPU模块三、实验内容:1.P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

四、实验原理:P1口为准双向口,P1口的每一位都能独立地定义为输入位或输出位。

作为输入位时,必须向锁存器相应位写入“1”,该位才能作为输入。

软件延时,如果用c编程时,通过使用keil的软件模拟,调试观察子函数(delay)延时时间。

(具体延时可以自行设定)使用汇编语言的软件延时,可以计算其指令的周期数,大概估算其软件延时。

五、实验原理图:P1口输出、输入实验六、实验步骤:执行程序:P1.0~P1.7接发光二极管L1~L8。

七、程序框图:循环点亮发光二极管(具体延时可以自行设定)八、程序代码NAME T1_1ORG 0000HLJMP STARTORG 0030HSTART: MOV A,#0FEH //将1111 1110赋给A LOOP: RL A //A循环左移MOV P1,A //把A赋给端口P1LCALL DELAY //延时0.16sJMP LOOP //循环;延时函数DELAY: MOV R1,#200DEL1: MOV R2,#200DEL2: DJNZ R2,DEL2DJNZ R1,DEL1RETEND实验2 中断口实验一、实验目的:1.学习外部中断技术的基本使用方法。

2.学习中断处理程序的编程方法。

二、实验设备:CPU挂箱、8051CPU模块三、实验内容:通过设定两个中断使能和触发方式,并编写相应的中断服务子函数,改变led灯的变化情况。

当按下KEYBOARD的按键时8个led都灭,当把k1向上拉再复位后,4个led亮,4个灭。

四、实验原理:参考《单片机原理及接口技术》第三版,北京航空航天大学出版社。

单片机键盘显示实验报告

单片机键盘显示实验报告

单片机的键盘和显示实验报告㈠实验目的1.掌握单片机I/O的工作方式;2.掌握单片机以串行口方式0工作的LED显示;3.掌握键盘和LED显示的编程方法。

㈡实验器材1.G6W仿真器一台2.MCS—51实验板一台3.PC机一台4.电源一台㈢实验内容及要求实验硬件线路图见附图从线路图可见,8051单片机的P1口作为8个按键的输入端,构成独立式键盘。

四个LED显示器通过四个串/并移位寄存器74LS164接口至8051的串行口,该串行口应工作在方式0发送状态下,RXD端送出要显示的段码数据,TXD则作为发送时钟来对显示数据进行移位操作。

编写一个计算器程序,当某一键按下时可执行相应的加、减、乘、除运算方式,在四个显示器上显示数学算式和最终计算结果。

注:①通过按键来选择加、减、乘、除四种运算方式。

②输入两个数字均为一位十进制数,可预先放在内存中。

㈣实验框图(见下页)㈤思考题1.当键盘采用中断方式时,硬件电路应怎样连接?P1.4~P1.7是键输出线,P1.0~P1.3是扫描输入线。

输入与门用于产生按键中断,其输入端与各列线相连,再通过上拉电阻接至+5 V电源,输出端接至8051的外部中断输入端。

2.74LS164移位寄存器的移位速率是多少?实验中要求计算的式子和结果之间相差一秒,移位寄存器的移位速率应该是每秒一位吧。

其实这个问题确实不知道怎么回答。

LED 显示用的段码与教科书所提供的不同,本实验采用如下段码:显示数符段码显示数符段码0BBH A DBH109H B F1H2EAH C B2H36BH D E9H459H E F2H573H F D2H否有否P1口置输入读P1口开 始显示“0000”是否有键按下?延迟消抖是否有键按下?是读键码加法运算减法运算除运算6F3H—40H70BH.04H8FBH┗┛A1H97BH┗┛1AH灭00H P DAH实验代码:ORG 0000HAJMP MAINORG 0030HMAIN:MOV 41H,#0BBH ;对几个存放地址进行初始化MOV 42H,#0BBHMOV 43H,#0BBHMOV 44H,#0BBHMOV SCON,#00H ;初始化串行口控制寄存器,设置其为方式0 LCALL DISPLAY ;初始化显示KEY:MOV R3,#08H;用来存放两个数据MOV R4,#02HMOV P1,#0FFH ;初始化P1口MOV A,P1 ;读取按键状态CPL A ;取正逻辑,高电平表示有键按下JZ KEY ;A=0时无键按下,重新扫描键盘LCALL DELAY1;消抖MOV A,P1 ;再次读取按键状态CPL AJZ KEY ;再次判别是否有键按下PUSH AKEY1:MOV A,P1CPL AANL A,#0FH ;判别按键释放JNZ KEY1 ;按键未释放,等待LCALL DELAY1;释放,延时去抖动POP AJB ACC.0,ADD1 ;K1按下转去ADD1JB ACC.1,SUB1 ;K1按下转去SUB1JB ACC.2,MUL1 ;K1按下转去MUL1JB ACC.3,DIV1 ;K1按下转去DIV1LJMP KEYADD1:LCALL BUFFER ;显示加数和被加数MOV 43H,#049HLCALL DISPLAY ;显示加号MOV A,R3ADD A,R4DA AMOV R3,A ;相加结果放入R6ANL A,#0FHMOV R4,A ;结果个位放入R7MOV A,R3SWAP A ;半字节交换,高四位放入低四位ANL A,#0FHMOV R3,A ;结果的高位放入R6LCALL L;显示缓存区设置LCALL DELAY2;延时一秒后显示LCALL DISPLAYLJMP KEYSUB1:LCALL BUFFER ;显示减数和被减数MOV 43H,#40HLCALL DISPLAY ;显示减号MOV A,R3CLR CY ;CY清零SUBB A,R4 ;做减法PUSH ARLC A ;带进位循环左移,最高位放入CYJC F ;判断最高位,若为1则跳转到负数ZHENG: POP AMOV R4,AMOV R3,#00H ;高位清零SJMP OUTFU:POP ACPL A ;取绝对值INC AMOV R4,AMOV R3,#11H ;显示负号OUT: LCALL L ;显示缓存区设置LCALL DELAY2 ;延时1s后显示LCALL DISPLAYLJMP KEYMUL1:LCALL BUFFER ;显示两位乘数MOV 43H,#99HLCALL DISPLAY ;显示乘号MOV A,R3MOV B,R4MUL AB ;结果放入AB,A中是低8位,B中是高8位MOV B,#0AHDIV AB ;十进制转换MOV R4,B ;结果个位放入R7MOV R3,A ;结果的十位放入R6LCALL LLCALL DELAY2LCALL DISPLAY ;延时1s后显示LJMP KEYDIV1:LCALL BUFFER ;显示除数和被除数MOV 43H,#62HLCALL DISPLAY ;显示除号MOV A,R3MOV B,R4DIV AB ;A除以BMOV R4,B ;余数放在R4中MOV R3,A ;商放在R3中MOV A,R4MOVC A,@A+DPTR ;调用段选号MOV 41H,A ;显示余数MOV A,R3MOVC A,@A+DPTRMOV 43H,A ;显示商MOV 42H,#00HMOV 44H,#00HLCALL DELAY2 ;延时1S后显示LCALL DISPLAYLJMP KEYBUFFER: MOV 41H,#22H ;显示初始化,在做计算之前显示两个操作数,显示等号MOV DPTR,#TABLMOV A,R4MOVC A,@A+DPTRMOV 42H,AMOV A,R3MOVC A,@A+DPTRMOV 44H,ARETDISPLAY:MOV R5,#04H;共四位需要显示MOV R0,#41HDISPLAY1:MOV A,@R0MOV SBUF,ADISPLAY2:JNB TI,DISPLAY2;是否传完了CLR TIINC R0DJNZ R5,DISPLAY1RETL:MOV A,R4MOVC A,@A+DPTRMOV 41H,A ;R4对应的段码MOV A,R3MOVC A,@A+DPTRMOV 42H,A ;R3对应的段码MOV 43H,#00HMOV 44H,#00HRETDELAY1: ;普通延时MOV R1,#20HDS1:MOV R2,#0FFHDS2:DJNZ R2,DS2DJNZ R1,DS1RETDELAY2:MOV R6,#14H ;定时1SMOV TMOD,#01HDS3:MOV TH0,#3CHMOV TL0,#0B0H ;50msSETB TR0LOOP:JNB TF0,LOOPCLR TF0CLR TR0DJNZ R6,DS3 ;1s到,中断返回RETTABL:DB 0BBH 09H 0EAH 6BH ;段码表DB 59H 73H 0F3H 0BHDB 0FBH 7BH 00H 0DBHDB 0F1H 0B2H 0E9H 0F2HDB 0D2H 40H实验结果及分析按键1:8+2= 结果:10按键2:8-2= 结果: 6按键3:8*2= 结果:16按键4:8/2= 结果:4从上面的结果可以看出,本次实验基本完成了实验要求。

单片机八段数码管显示实验原理及分析报告

单片机八段数码管显示实验原理及分析报告

八段数码管显示实验原理及分析报告学 院 计算机工程学院 专 业 计算机科学与技术 年级班别 09计算机科学与技术1班 学 号 2009404010123 学生姓名 郑伟伟 指导教师 李 永2011年 1月18 日JINGCHU UNIVERSITY OF TECHNOLOGY目录一、实验项目的目标 (3)二、八段数码管显示实验原理及分析 (3)1、实验线路 (3)2、实验器材 (3)3、实验工作原理 (4)4、实验步骤 (5)5、实验现象的分析说明 (5)6、程序框架图 (6)7、实验所用芯片的使用介绍 (7)(1)、8155IO/RAM扩展芯片说明 (7)(2)、74ls164芯片说明 (8)8、实验代码分析 (8)三、调试 (16)四、心得体会 (17)一、实验项目的目标:1、了解数码管动态显示的原理。

2、了解74LS164扩展端口的方法。

3、利用实验仪提供的显示电路,动态显示一行数据。

二、实验项目的原理1实验线路:这里只是显示草图,详细原理参见第一章的1.1.15 “8155键显模块”。

2、实验器材:1、超想-3000TC综合实验仪 1 台2、KEIL仿真器 1 台3、计算机 1 台3、实验工作原理:(1)、本实验仪提供了8段码数码管LED显示电路,只要按地址输出相应数据,就可以实现对显示器的控制。

显示共有6位,采用动态方式显示。

8段数码管是由8155的PB0、PB1经74LS164“串转并”后输出得到。

6位位码由8155的PA0口输出,经uA2003反向驱动后,选择相应显示位。

74LS164是串行输入并行输出转换电路,串行输入的数据位由8155的PB0控制,时钟位由8155的PB1控制输出。

写程序时,只要向数据位地址输出数据,然后向时钟位地址输出一高一低两个电平就可以将数据位移到74LS164中,向显示位选通地址输出高电平就可以点亮相应的显示位。

本实验仪中数据位输出地址为0e102H ,时钟位输出地址为0e102H ,位选通输出地址为 0e101H 。

八段数码管显示实验总结

八段数码管显示实验总结

八段数码管显示实验总结以下是一篇关于八段数码管显示实验总结的文章,旨在详细介绍实验的步骤和结果。

引言:在现代电子技术领域中,七段数码管是一种常见的数字显示装置,常用于计时器、电子表、计数器等设备中。

而八段数码管则是七段数码管的进化版,它增加了一个小数点显示位,可以显示更多的数码和字符。

本篇文章将围绕八段数码管显示实验展开,介绍实验过程及实验结果。

第一步:材料准备进行八段数码管显示实验前,需要准备以下材料:1. 八段数码管:这是实验中的核心组件,用于显示数字和字符。

2. 转接板:用于连接八段数码管和单片机,实现电路的连接。

3. 单片机:本实验中我们选择XXXX型号的单片机,它具备足够的输入输出引脚,方便实验开展。

4. 面包板:用于搭建电路,连接各个组件。

5. 连接线:用于连接数码管、转接板和单片机。

第二步:电路连接1. 将转接板插入面包板中心位置,确保其稳固。

2. 将八段数码管插入转接板对应位置,并通过连接线将其与转接板上的引脚相连。

3. 将单片机插入转接板上的插槽,并通过连接线将其与转接板上的引脚相连。

4. 连接线的连接需要按照电路连接图进行,确保连线正确无误。

第三步:程序编写1. 打开XXXX软件,创建一个新的工程。

2. 在新的工程中,编写程序代码来控制八段数码管显示。

可以根据自己的需求,编写数字、字符等不同的显示内容。

3. 在程序代码中,通过设置不同的数位选择引脚和段选引脚的高低电平来实现不同位上的显示。

第四步:烧录程序1. 将单片机与电脑通过USB线连接。

2. 打开软件,选择对应的单片机型号和烧录方式。

3. 将程序烧录至单片机中,确保烧录成功。

第五步:实验结果在将程序烧录到单片机后,即可观察八段数码管的显示结果。

根据实验编写的程序,数码管将会显示相应的数字和字符。

可以通过改变程序代码中的内容,实现不同的显示效果。

比如,可以设置不同的数值、字符以及使用动态显示等功能。

结论:通过本次实验,我们成功地搭建了一个八段数码管的显示电路,并利用单片机编写了相应的程序进行控制。

LCD显示实验

LCD显示实验

单片机实验报告班级:姓名:学号:指导教师:实验三 LCD显示实验(2学时)一、实验目的:学习液晶显示的编程方法,了解液晶显示模块的工作原理。

掌握液晶显示模块与单片机的接口方法。

学习和掌握8255扩展通用I/O的方法。

基于扩展I/O口,实现LCD显示器的控制。

二、实验设备:CPU挂箱、8031CPU模块三、实验内容:在掌握8255扩展I/O口的基础上,实现LCD的显示,并显示“中北大学1105064102 姓名”。

四、实验原理说明LCD显示电路点阵式LCD显示电路是在系统板上外挂电正式液晶显示模块,模块的数据线、状态、控制线都通过插孔引出。

可直接与系统相连。

1、OCMJ2×8液晶模块介绍及使用说明OCMJ中文模块系列液晶显示器内含 GB 2312 16*16点阵国标一级简体汉字和ASCII8*8(半高)及8*16(全高)点阵英文字库,用户输入区位码或 ASCII 码即可实现文本显示。

也可用作一般的点阵图形显示器之用。

提供位点阵和字节点阵两种图形显示功能,用户可在指定的屏幕位置上以点为单位或以字节为单位进行图形显示。

完全兼容一般的点阵模块。

OCMJ中文模块系列液晶显示器可以实现汉字、ASCII 码、点阵图形和变化曲线的同屏显示,并可通过字节点阵图形方式造字。

本系列模块具有上/下/左/右移动当前显示屏幕及清除屏幕的命令。

一改传统的使用大量的设置命令进行初始化的方法,OCMJ 中文模块所有的设置初始化工作都是在上电时自动完成的,实现了“即插即用”。

同时保留了一条专用的复位线供用户选择使用,可对工作中的模块进行软件或硬件强制复位。

规划整齐的10个用户接口命令代码,非常容易记忆。

标准用户硬件接口采用REQ/BUSY 握手协议,简单可靠。

硬件接口接口协议为请求/应答(REQ/BUSY)握手方式。

应答BUSY 高电平(BUSY =1)表示 OCMJ 忙于内部处理,不能接收用户命令;BUSY 低电平(BUSY =0)表示 OCMJ 空闲,等待接收用户命令。

单片机数码管动态显示实验报告

单片机数码管动态显示实验报告

单片机数码管动态显示实验报告单片机数码管动态显示实验程序(汇编)单片机数码管动态显示实验程序org 00hajmp headorg 0030hhead:mov sp,#0070hnum equ p0 ;p0口连接数码管reset:mov dptr ,#tabmov r0,#4sh:acall show_tabcall dptr_adddjnz r0,shmov r0 ,#4sjmp resetdptr_add:inc dptrinc dptrinc dptrinc dptrrettab :db0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH;;;;;;;;;;;;;;;;;;;;; 函数的功能是用来动态显示dptr上的四个数据 ;;;;;;;;;;;;;;;;;;;;;; show_tab:clr amov r2,#0mov r3,#148mov p2,#238loop:movc a,@a+dptrmov num ,aacall delay_5msinc r2mov a,r2;调用片选函数前注意A的变化acall select_movcjne r2,#4,loopmov r2,#0clr adjnz R3,loopret;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;select_mov:;p2的初值238push 0e0hmov a,p2rl amov p2,apop 0e0hretdelay_5ms:mov r6,#5signed_5ms:call delay_1msdjnz r6,signed_5msret篇二:单片机动态数码显示设计实验报告微机原理与接口技术实验报告实验题目:指导老师:班级:计算机科学与技术系姓名:动态数码显示设计2014年 12月3日实验十三动态数码显示设计一、实验目的1.掌握动态数码显示技术的设计方法。

实验要求通过电位器提供模拟量的输...

实验要求通过电位器提供模拟量的输...

单片机实验实验一顺序结构程序实验二数据区传送子程序实验三简单I/O口控制实验实验四信号灯控制实验五脉冲计数实验实验六并口扩展芯片8255控制交通灯实验七点阵LED显示实验实验八AD转换实验实验九电脑时钟(定时器,中断综合实验)实验十步进电机控制实验实验十一LCD液晶显示屏实验实验一顺序结构程序设计一、实验目的掌握汇编语言设计和调试方法。

二、实验内容1.拼字程序:把2000H的内容拆开,高位送2001H低位,低位送2002H 低位,2001H、2002H高位清零,一般本程序用于把数据送显示缓冲区时用。

2.拼字程序:把2000H、2001H的低位分别送入2002H高低位,一般本程序用于把显示缓冲区的数据取出拼装成—个字节。

3. 求和程序:将30H和31H单元中存放的2个一字节BCD码组合成一个2位的BCD 码存入32H单元,31H单元中的数为低4位。

三、实验步骤用连续或单步方式运行程序,检查2000—2002H中内容变化情况。

四、思考如何用断点方式调试本程序。

实验二数据传送程序一)实验目的:1)掌握单片机汇编语言程序设计和调试方法2)掌握单片机内部RAM,外部RAM,ROM中数据操作方法二)实验内容及步骤:1)再将内部RAM50H单元开始的十个数传到40H为始址的内部RAM中2)再将内部RAM 50H单元开始的十个数送到1000H为始址的外部RAM中3)再将ROM的2000H单元开始的十个数传送到以70H为始址的内部RAM中实验三简单I/O口控制实验一、实验目的(1)学习P1口的使用方法;(2)学习延时子程序的编写。

二、实验预备知识(1)P1口对准双向口,每一位都可独立地定义为输出线或输入线。

(2)本实验中延时子程序采用指令循环来实现,机器周期(12/6MHz)*指令所需机器周期数*循环次数,在系统时间允许的情况下可以采用此方法。

三、实验内容P1作为输出口,接八只发光二极管,编写程序,使发光二极管左(右)循环点亮。

实验八 LCD1602液晶显示实验

实验八 LCD1602液晶显示实验

电子科技大学中山学院学生实验报告学院:机电工程专业:课程名称:单片机原理与接口技术实验3、芯片时序表:4、LCD数据存储器地址LCD内置了DDRAM,用来寄存待显示的字符代码。

其地址与屏幕的对应关系如下:也就意味着想要在LCD1602的第一行第一列显示一个“A”字符,就要向DDRAM的00H地址写入“A”,但是在实际写入时,还必须将00H加上80H,即0X80+0X00。

以此类推,如果想要在LCD1602的第二行的第二列显示字符内容,则实际写入地址应该为0X80+0X41。

5、1602LCD的一般初始化(复位)过程(1) 延时15ms。

(2) 写指令38H(不检测忙信号)。

(3) 延时5ms。

(4) 写指令38H(不检测忙信号)。

(5) 延时5ms。

(6) 写指令38H(不检测忙信号)。

(7) 以后每次写指令、读/写数据操作均需要检测忙信号。

(8) 写指令38H:显示模式设置。

(9) 写指令08H:显示关闭。

(10) 写指令01H:显示清屏。

(11) 写指令06H:显示光标移动设置。

(12) 写指令0CH:显示开及光标设置。

6、LCD1602与单片机直接连接典型示意图如图8.1所示。

图8.1 LCD1602液晶显示。

三、实验内容和步骤1、用Proteus设计一LCD1602液晶显示接口电路。

参考实验指导书上的参考程序,编写程序,实现字符的静态显示。

显示字符为:第一行:“姓名全拼(居中)”,第二行:“专业全拼+学号(后3位)”。

将LCD显示截图以及相应的程序保存在下方。

#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar code table[]=" xuzhulin ";uchar code table1[]="zidonghua 031";sbit lcden=P2^7;sbit lcdrw=P2^6;sbit lcdrs=P2^5;uchar num;for(num=0;num<12;num++){write_data(table[num]); //写数据,LCD的第一行显示delay(200);}write_com(0x02); //光标返回write_com(0x80+0x40); //设置数据地址指针,LCD第二行显示for(num=0;num<16;num++){write_data(table1[num]);delay(200);}while(1);}}2、在上一题的基础上,增加两个外部中断,实现不同内容的显示。

单片机LCD显示

单片机LCD显示

目录1、设计题目2、设计要求及实现功能3、硬件电路原路图4、软件流程图5、程序代码6、实验结果7、实验总结8、参考文献一、设计题目题目三:液晶LCD显示二、设计要求及实现功能要求:用实验台上的16列*1行的字符LCD显示器显示两屏字符:Welcome!Design By 姓名实现功能:编写完程序后,运行时可以在LCD字符显示器上显示:Welcome!Design By 姓名三、硬件电路原理图字符LCD 模块是一种专用显示字符、数字或符号的液晶显示模块。

这种模块每一个符号由5×7、5×8 或5×11 的点阵像素排列组成的,字符间隔为一个点距,行间隔为一个行距,模块本身附有显示驱动控制电路,可以与单片机的I/O 口线直接连接,使用方便。

目前广泛使用的字符LCD 模块其显示驱动控制电路多是HD44780 或兼容品,其接口信号、操作指令相同。

本实验选用的字符LCD 模块是香港精电公司生产的规格为16×1 的字符LCD 模块,可以在一行上显示16 个字符。

该模块与8051 单片机I/O 口线直接连接的电路如图1所示。

字符LCD模块的接口信号:①GND、VCC:电源,VCC=+5V。

②Vee:液晶显示对比度调节电压输入。

可以通过调节LCD 左上角的多圈电位器RW2 来调节。

③DB7~ DB0:数据总线,三态。

用于与模块之间传送信息。

这里连接P1.0~P1.7。

以下3 个信号为控制信号:④RS:寄存器选择信号,输入。

这里连接P3.3(INT1)。

模块中有两类寄存器,一类是指令寄存器,用于写入指令;另一类是数据寄存器,用于写入的数据。

RS=0,选择指令寄存器。

RS=1,选择数据寄存器。

⑤R/W :读/写信号,输入。

这里连接P3.4(T0)。

R/W =1,读操作;R/W =0,写操作⑥E:使能信号,输入。

模块的读/写控制信号。

这里连接P3.5(T1)。

读操作时,E 为高电平时,模块的数据或状态输出至DB7~DB0 上,供单片机读取;写操作时,E 信号的下降沿将单片机送至数据总线上的数据或指令写入模块中。

单片机实验报告(相当不错,有具体实验结果分析哦)

单片机实验报告(相当不错,有具体实验结果分析哦)

学生姓名:学号:专业班级:实验类型:□ 验证□ 综合□ 设计□ 创新实验日期:实验成绩:实验一 I/O 口输入、输出实验地点:基础实验大楼A311一、实验目的掌握单片机P1口、P3口的使用方法。

二、实验内容以P1 口为输出口,接八位逻辑电平显示,LED 显示跑马灯效果。

以P3 口为输入口,接八位逻辑电平输出,用来控制跑马灯的方向。

三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。

四、实验说明和电路原理图P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。

由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。

因为内部上拉电阻阻值是20K~40K,故不会对外部输入产生影响。

若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。

本实验需要用到CPU模块(F3区)和八位逻辑电平输出模块(E4区)和八位逻辑电平显示模块(B5区)。

2学生姓名:学号:专业班级:实验类型:□ 验证□ 综合□ 设计□ 创新实验日期:实验成绩:五、实验步骤1)系统各跳线器处在初始设置状态。

用导线连接八位逻辑电平输出模块的K0 到CPU 模块的RXD(P3.0 口);用8 位数据线连接八位逻辑电平显示模块的JD4B 到CPU 模块的JD8(P1 口)。

2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。

编译无误后,下载程序运行。

3)观察发光二极管显示跑马灯效果,拨动K0 可改变跑马灯的方向。

六、实验参考程序本实验参考程序:;//******************************************************************;文件名: Port for MCU51;功能: I/O口输入、输出实验;接线: 用导线连接八位逻辑电平输出模块的K0到CPU模块的RXD(P3.0口);;用8位数据线连接八位逻辑电平显示模块的JD2B到CPU模块的JD8(P1口)。

实验八 智能仪器

实验八   智能仪器

实验内容: (1)熟悉单片机应用系统的设计要领; (2)按图 1 中元器件及参数在 ISIS 中完成电路原理图的绘制; (3)在 uVision3 中,按图 2 及表 1 建立 7 个程序文件; (4)在 ISIS 中运行,实现一路电压信号输入和两路报警开关量输出控制功能。 软件编程: 该项目由 7 个程序文件组成,其中 6 个为 C 语言文件,一个为汇编语言文 件(串口输出功能采用汇编语言与 C51 语言混合编程) ,程序如下: (1)main.c 文件 void ad_init(); void control_thread(); void menu_thread(); void main() { ad_init(); while (1) { menu_thread(); control_thread(); }} (2)control.c 文件 #include<reg51.h> sbit P16=P1^6; sbit P17=P1^7; unsigned char ad(); void print(char name,unsigned int value); extern unsigned char param_value[2]; extern char menu_status; void control_thread() { unsigned char value=ad(); //A/D 转换 if(value>param_value[1]) { //根据采样值控制 LED 灯 P16=0; P17=1; } else if(value<=param_value[1]&& value>=param_value[0]) { P16=0; P17=0; } else { P16=1; P17=0;

单片机原理数码管动态显示实验单片机原理实验报告

单片机原理数码管动态显示实验单片机原理实验报告
连接图 显示 1-8 显示 33355223
显示时间 13.23.25 时钟自动计时 连接图
红绿灯效果图 1 红绿灯效果图 2
4、创建一个 Keil 应用程序:新建一个工程项目文件;为工程选择目标器件(AT89C52);为工程 项目创建源程序文件并输入程序代码;保存创建的源程序项目文件;把源程序文件添加到项目中。 5、把用户程序经过编译后生成的 HEX 文件添加到仿真电路中的处理器中(编辑元件→文件路径)
入 1-8
void delay(uint x)
{
while(x--);
}
void main()
{
uchar i;
while(1)
{
for(i=0;i<8;i++)
{
P3=1<<i;
//P3 口表示从第一个位开始显示数值
P2=~Ledcode[i]; //P2 口用来显示所需要显示的数值
delay(500);
扩展要求: 结合 LED 显示,实现带数码显示的交通灯;
实验步骤、实验结果及分析: 1 实验步骤:
1、使用 Proteus ISIS 7 Professional 应用程序,建立一个.DSN 文件 2、在“库”下拉菜单中,选中“拾取元件”(快捷键 P),分别选择以下元件:AT89C51、CAP、CAP-ELEC、 CRYSTAL、RESPACK-8。 3、构建仿真电路:
DispBuf[3]=sec2 % 10; DispBuf[2]=sec2 / 10; DispBuf[1]=sec1 % 10; DispBuf[0]=sec1 / 10; } void display() { uchar i; for (i = 0;i < 8;i ++) {

实验八 数码管LED实验报告

实验八 数码管LED实验报告

苏州大学实验报告院、系年级专业姓名学号课程名称成绩指导教师同组实验者实验日期实验名称:数码管LED实验一.实验目的理解8段数码管的基本原理,理解8段数码管的显示和编程方法,理解4连排共阴极8段数码管LG5641AH与MCU的接线图。

二.实验内容理解8段数码管原理,运行与理解各子程序,编制一个4连排8段数码管程序,MCU的PTA7-PTA4接各LED的位选线(自左到右),PTB7-PTB0接LED的数据线hgfedcba,在4连排8段数码管显示MCU复位后的开始到现在的运行时间。

由于只有四个数码管,所以只显示MCU运行到目前为止的分钟和秒,当计时达到一个小时,就重新从00:00开始计时。

另外,也可以通过PC方的串口通信程序,指定计时的开始值。

三.实验过程(一)原理图(二)接线图图8-2数码管外形图8-1 数码管a b c d e f g dp图8-3 MCU与4连排8段数码管的连接(三)基本原理8段数码管一般由8个发光二极管(Llight-emitting diode,LED)组成,每一个位段就是一个发光二极管。

一个8段数码管分别由a、b、c、d、e、f、g位段,外加上一个小数点的位段h(或记为dp)组成。

根据公共端所接电平的高低,可分为共阳极和共阴极两种。

有时数码管不需要小数点,只有7个位段,称7段数码管。

共阴极8段数码管的信号端高电平有效,只要在各个位段上加上相应的信号即可使相应的位段发光,比如:要使a段发光,则在a段加上高电平即可。

共阳极的8段数码管则相反,在相应的位段加上低电平即可使该位段发光。

四.编程(一)流程图第3页(二)所用寄存器名称及其各个位程序中没有使用与LED 显示相关的控制和状态寄存器,仅仅使用了通用I/O 口A 口和B 口。

(三)主要代码段1图8-4 数码管LED 显示流程图(及其中断子程序)2.C第5页五.实验问答(根据实验指导书所列举的问题)1.驱动LED数码管有哪些方法?答:用单片机驱动LED 数码管有很多方法,按显示方式可分静态显示和动态(扫描)显示;按译码方式可分硬件译码和软件译码。

单片机实训心得体会(精选6篇)

单片机实训心得体会(精选6篇)

单片机实训心得体会(精选6篇)单片机实训心得体会1通过这一个学期的单片机学习, 我收获了很多关于单片机的知识, 并且这些知识和日常的生活息息相关。

了解了一些简单程序的录入, LED显示器、键盘、和显示器的应用和原理。

LED显示器: LED显示器是由发光二管组成显示字段的器件。

通常的8段LED显示器是由8个发光二极管组成, LED显示器分共阳极和共阴极两种。

有段选码和和位选码。

当LED显示器每段的平均电流位5MA时, 就有较满意的亮度, 一般选择断码5—10MA电流;位线的电流应选择40—80MA。

LED显示器的显示方式有动态和静态两种。

7289A芯片是具有SPI串行接口功能的显示键盘控制芯片, 它可同时取得8位共阴极数码管和64个键的键盘矩阵。

7289A的控制指令分为两类: 8位宽度的单字节指令和16位宽度双字节指令;还有闪烁指令和消隐指令。

7289A采用串行方式SPI总线与微处理器通信;7289A与AT89C52接口电路, 在实际电路中无论接不接键盘, 电路中连接到其各段上的8个 100千欧的下拉电阻均不可以省去, 如果不接键盘而只接显示器可以省去8个10千欧电阻, 若仅接键盘而不接显示器, 可省去串入DP及SA—SG连线的8个220欧电阻, 7289A还需要外接晶体振荡电路。

液晶显示器简称LCD, 其显示原理是用经过处后的液晶具有能改变光线传输方向的特性, 达到显示字符和图形的目的。

最简单的笔段式液晶显示器类似于LCD显示器, 可以显示简单的字符和数字, 而目前大量使用的'是点阵式LCD显示器, 既可以显示字符和数字也可以显示汉字和图形。

如果把LCD显示屏、背光可变电源、接口控制逻辑、驱动集成芯片等部件构成一个整体, 是的与CPU接口十分方便。

键盘: 键盘是最常见的计算机输入设备, 它广泛应用于微型计算机和各种终端设备上。

计算机操作者通过键盘向计算机输入各种指令、数据, 指挥计算机的工作。

单片机液晶显示实验报告

单片机液晶显示实验报告

单片机液晶显示实验报告篇一:点阵液晶显示实验报告单片机实验课程名称:点阵液晶汉字显示实验授课班级:10自动化三班任课教师:文远熔计划学时:32学时实验组员:张腾耀梁钦赵福亮秦菱蔚郑欢王聪慧摘要本文介绍了PROTEUS与Keil联调开发51系列单片机应用系统的方法以及基于PROTEUS环境下的12864液晶显示的仿真设计。

将Keil C开发的程序用Proteus设计的仿真电路中交互运行调试的方法,设计12864的液晶显示汉字图像。

在基于PROTEUS环境下的12864液晶显示的仿真设计中,使用51芯片控制,然后显示在12864显示屏上,最多可显示4行每行8个汉字,并且可以通过按键随时改变12864显示屏上的内容。

通过Proteus环境下的温度报警器的仿真实验证明,在PROTEUS环境下可以完成单片机系统的硬件设计和软件调试,测试系统的性能,在实际应用中可以降低设计成本,缩短开发周期,提高效率。

关键词:Proteus;仿真;单片机;12864目录第一章绪论1.1实验任务和要求???????????????????????..11.2 基于Proteus的12864显示的研究???????????????.1 . 1.3 实验方案及原理??????????????????????..1第二章点阵液晶汉字显示的硬件部分2.1程序流程图?????????????????????????.2 2.2硬件电路图???????????????????????. 2.3芯片12864的简介?????????????????????第三章点阵液晶汉字显示的软件部分3.1 Keil简介??????????????????????????. 3.2 Proteus简介????????????????????????. 3.3 Proteus与Keil软件联合仿真的建立??????????????.第四章结论4.1实验总结??????????????????????????.附录1:点阵液晶汉字显示的源程序第一章绪论1.1 实验任务和要求用LCD128x64点阵液晶显示器显示指定汉字,最多可以显示4行、8个/行汉字,通过键盘可以随时改变显示的内容。

实验八 单片机液晶显示实验

实验八 单片机液晶显示实验

实验八单片机液晶显示实验一、实验目的1、了解液晶显示屏的控制原理及方法。

2、了解点阵汉字的显示原理。

二、实验说明1、利用实验上的液晶显示屏电路,编写程序控制显示,输出汉字。

2、本实验仪采用的液晶显示屏内置控制器为SED1520,点阵为122x32,需要两片SED1520组成,由E1、E2分别选通,以控制显示屏的左右两半屏。

图形液晶显示模块有两种连接方式。

一种为直接访问方式,一种为间接控制方式。

本实验仪采用直接控制方式。

三、实验仪器计算机伟福实验箱(lab2000P )四、实验内容1、利用实验上的液晶显示屏电路,编写程序控制显示,输出汉字。

2、本实验仪采用的液晶显示屏内置控制器为SED1520,点阵为122x32,需要两片SED1520组成,由E1、E2分别选通,以控制显示屏的左右两半屏。

图形液晶显示模块有两种连接方式。

一种为直接访问方式,一种为间接控制方式。

本实验仪采用直接控制方式。

3、直接控制方式就是将液晶显示模块的接口作为存储器或I/O设备直接挂在计算机总线上。

计算机通过地址译码控制E1和E2的选通;读/写操作信号R/W由地址线A1控制;命令/数据寄存器选择信号AO由地址线A0控制。

实际电路如上图所示。

地址映射如下(地址中的X由LCD CS决定,可参见地址译码部分说明)五、思考题1、显示自己的班级和姓名;2、可以动态显示,上下或者左右移动;六、源程序修改原理及其仿真结果CWADD1 EQU 08000H ;写指令代码地址(E1)DWADD1 EQU 08001H ;写显示数据地址(E1)CRADD1 EQU 08002H ;读状态字地址(E1)DRADD1 EQU 08003H ;读显示数据地址(E1)CWADD2 EQU 08004H ;写指令代码地址(E2)DWADD2 EQU 08005H ;写显示数进地址(E2)CRADD2 EQU 08006H ;读状态字地址(E2)DRADD2 EQU 08007H ;读显示数据地址(E2)PD1 EQU 3DH ;122/2 分成左右两半屏122x32 COLUMN EQU 30HPAGE_ EQU 31H ;页地址寄存器D1,DO:页地址CODE_ EQU 32H ;字符代码寄存器COUNT EQU 33H ;计数器DIR equ 34hdtp1 equ 35hdtp2 equ 36hdtp3 equ 37hCTEMP EQU 38HCOM EQU 20H ;指令寄存器DAT EQU 21H ;数据寄存器ORG 0jmp mainmov dptr, #0f002hmov a,#56hmovx @dptr,amov a,#0movx a,@dptrJMP MAIN;---------------------------------------; 初始化程序INIT: MOV COM, #0E2H ;复位LCALL PROLCALL PR3MOV COM, #0A4H ;关闭休闭状态LCALL PROLCALL PR3MOV COM, #0A9H ;设置1/32占空比LCALL PROLCALL PR3MOV COM, #0A0H ;正向排序设置LCALL PROLCALL PR3MOV COM, #0C0H ;设置显示起始行为第一行LCALL PROLCALL PR3MOV COM, #0AFH ;开显示设置LCALL PROLCALL PR3RET;------------------------------------------------; 清屏CLEAR: MOV R4,#00H ;页面地址暂存器设置CLEAR1: MOV A,R4 ;取页地址值ORL A,#0B8H ;"或"页面地址设置代码MOV COM,A ;页面地址设置LCALL PROLCALL PR3MOV COM,#00H ;列地址设置为"0"LCALL PROLCALL PR3MOV R3,#50H ;一页清80个字节CLEAR2: MOV DAT,#00H ;显示数据为"0"LCALL PR1LCALL PR4DJNZ R3,CLEAR2 ;页内字节清零循环INC R4 ;页地址暂存器加一CJNE R4,#04H,CLEAR1 ;RAM区清零循环RET;-----------------------------------;1.写指令代码子程序(E1)PRO: PUSH DPLPUSH DPHMOV DPTR,#CRADD1 ;设置读状态字地址PR01: MOVX A,@DPTR ;读状态字JB ACC.7,PR01 ;判"忙"标志为句"0",否再读MOV DPTR,#CWADD1 ;设置写指令代码地址MOV A,COM ;取指令代码MOVX @DPTR,A ;写指令代码POP DPHPOP DPLRET;------------------------------------;2.写显示数据子程序(E1)PR1: PUSH DPLPUSH DPHMOV DPTR,#CRADD1 ;设置读状态字地址PR11: MOVX A,@DPTR ;读状态宇JB ACC.7,PR11 ;判"忙"标志为"0",否再读MOV DPTR,#DWADD1 ;设置写显示数据地址MOV A,DAT ;取数据MOVX @DPTR,A ;写数据POP DPHPOP DPLRET;-------------------------------------;3.读显示数据子程序(E1)PR2: PUSH DPLPUSH DPHMOV DPTR,#CRADD1 ;设置读状态字地址PR21: MOVX A,@DPTR ;读状态字JB ACC.7,PR21 ;判"忙"标志为"0"否,否再读MOV DPTR,#DRADD1 ;设置读显示数据地址MOVX A,@DPTR ;读数据MOV DAT,A ;存数据POP DPHPOP DPLRET;-------------------------------------;4.写指令代码子程序(E2)PR3: PUSH DPLPUSH DPHMOV DPTR,#CRADD2 ;设置读状态字地址PR31: MOVX A,@DPTR ;读状态字JB ACC.7,PR31 ;判"忙"陈志为"0"否,否再读MOV DPTR,#CWADD2 ;设置写指令代码地址MOV A,COM ;取指令代码MOVX @DPTR,A ;写指令代码POP DPHPOP DPLRET;-------------------------------------; 5.写显示数据子程序(E2)PR4: PUSH DPLPUSH DPHMOV DPTR,#CRADD2 ;设置读状态字地址PR41: MOVX A,@DPTR ;读状态字JB ACC.7,PR41 ;判"忙"标志为"0"否,否再读MOV DPTR, #DWADD2 ;设置写显示数据地址MOV A,DAT ;取数据MOVX @DPTR,A ;写数据POP DPHPOP DPLRET;---------------------------------------; 6.读显示数据子程序(E2)PR5: PUSH DPLPUSH DPHMOV DPTR,#CRADD2 ;设置读状态字地址PR51: MOVX A,@DPTR ;读状态字JB ACC.7,PR51 ;判"忙"标志为"0",否再读MOV DPTR,#DRADD2 ;设置写显示数据地址MOVX A,@DPTR ;读数据MOV DAT,A ;存数据POP DPHPOP DPLRET; 中文显示子程序CCW_PR: MOV DPTR,#CCTAB ;确定字符字模块首地址MOV A,CODE_ ;取代码MOV B,#20H ;字模块宽度为32个字节MUL AB ;代码×32ADD A,DPL ;字符字模块首地址MOV DPL,A ;字模库首地址+代码×32MOV A,BADDC A,DPHMOV DPH,APUSH COLUMN ;列地址入栈PUSH COLUMN ;列地址入栈MOV CODE_,#00H ;代码寄存器借用为间址寄存器CCW_1: MOV COUNT,#10H ;计数器设置为16MOV A,PAGE_ ;读页地址寄存器ANL A,#03H ;取页地址有效值ORL A,#0B8H ;"或"页地址设置代码MOV COM,A ;设置页地址LCALL PRoLCALL PR3POP COLUMN ;取列地址值MOV A,COLUMN ;读列地址寄存器CLR CSUBB A,#PD1 ;列地址-模块参数JC CCW_2 ;<0为左半屏显示区域(E1)MOV COLUMN,A ;≥0为右半屏显示区域(E2)MOV A,PAGE_SETB ACC.3 ;设置区域标志位。

实验八单片机试验(数码管)

实验八单片机试验(数码管)
数码管共阴极接法
将数码管的公共阴极接至GND,每个数码管的 段选线分别连接到单片机的一个I/O口。
3
数码管动态扫描显示
通过控制I/O口的输出,依次点亮每个数码管, 实现多个数码管的动态显示。
数码管显示编码
0-9的七段数码管编码
根据数码管显示的数字0-9,编写对应的七段数码管编码,用于控制数码管的 显示。
字符编码
对于字母和符号,也需要编写对应的七段数码管编码,以便在数码管上显示。
单片机驱动程序编写
初始化程序
在程序开始运行时,需要编写初 始化程序,设置单片机的I/O口 为输出模式,并设置定时器等必
要的参数。
主程序
在主程序中,根据需要编写的显 示编码,通过控制I/O口的输出, 实现数码管的动态显示。同时, 还需要处理外部输入信号,如按
实验八 单片机实验(数码管
目录
• 数码管介绍 • 单片机与数码管连接 • 实验步骤与操作 • 实验结果分析 • 实验问题与改进
01
数码管介绍
数码管工作原理
数码管是一种由多个LED段组成 的显示器件,通过单片机控制不 同LED段的亮灭来显示数字或字
符。
数码管内部通常有8个LED段, 通过导通不同的LED段组合,可 以显示0-9的数字和某些特定字
数据记录
记录实验过程中数码管显示的数 字,以及对应的I/O端口配置。
数据处理
分析实验数据,总结数码管显示的 规律,以及I/O端口对数码管显示 的影响。
结果分析
根据实验数据和结果,分析实验过 程中可能存在的问题,并提出改进 措施。
04
实验结果分析
数据对比分析
实验数据与理论值对比
将实验测得的数据与理论值进行对比,分析两者之间的差异。

单片机实验指导书

单片机实验指导书

第一章DVCC-52196JH单片机仿真实验系统简介第一节DVCC系列单片机仿真实验系统性能§ 1 . 1 系统性能指标1.仿真、实验相结合。

2.实验模块化结构,互不影响,通过连线又可将各模块有机结合。

3.实验内容设置丰富、合理,满足教学大纲要求。

4.每项实验连线方便,既能满足学生动手能力愿望,又能充分发挥学生的创新能力,提高教学实验的质量和效率。

5.自带集成调试环境,Win9X/NT软件平台,含:源程序库、芯片资料库、原理图库、元器件位置图库、实验说明、动态调试工具库。

6.提供源程序编辑、汇编、链接。

7.电路具有过压保护,确保系统安全、可靠工作。

8.整机采用热风整平工艺基板、波峰焊接,实验连接接口采用圆孔插座,整机可靠性好。

9.自带EPROM写入器,可对27128、2764EPROM进行写入。

10.自带键盘显示器,进口键座,专用彩色键帽,决无按键不可靠现象。

11.系统用串行口、用户用串行口相互独立,在通过RS232与上位机联机状态下,同样可以调试用户串行口程序。

12.系统带有示波器功能,通过RS232口,可将测得的信号显示在上位机的屏幕上。

该系统通过RS232口可连各种上位机,在Win9X/NT软件平台进行仿真开发和实验。

同时系统自带键盘显示器,无须任何外设也能独立工作,支持因陋就简建立单片机实验室。

系统提供实验程序库,均放在系统光盘上,可直接使用。

同时全部实验程序机器码已固化在EPROM中,作为用户程序。

在进入实验前,需将该EPROM中的程序(在固化区)传送到仿真RAM区,以便以单步、断点、连续等方式运行程序。

§ 1.2 系统提供的主要实验项目如下:一、MCS—51部分软件实验1、清零程序实验 6、字符串查找并统计相同字符串个数2、拆字程序实验 7、双字节乘法程序3、拼字程序实验 8、多分支程序设计4、数据块传送实验 9、定时/计数器实验5、数据排序实验 10、电脑时钟实验二、MCS—51部分硬件实验1、8031单片机P3、P1口应用 11、步进电机控制2、工业顺序控制 12、直流电机控制3、并行I/O口8255应用 13、电子音响4、简单I/O口输入、输出扩展 14、继电器控制5、A/D转换0809应用 15、数据存贮器扩展和程序存贮器扩展6、D/A转换0832应用 16、8031串行口应用实验(一)—双机通信实验7、串并转换实验 17、8031串行口应用实验(二)—与PC机通信8、定时计数器8253A应用 18、温度测量实验(5G14433应用)9、可编程键盘显示8279A应用 19、压力测量实验10、打印机接口应用对DVCC—××JH+机型增加下列四个扩展实验一、128×64液晶显示实验二、16×16LED点阵显示实验三、语音录放实验四、IC卡读写实验§ 1.3 实验系统主要机型如下:DVCC—52JH(JH+) 51实验、仿真DVCC—52196JH(JH+) 51、196实验、仿真DVCC—5286JH(JH+) 51实验、仿真,8088实验DVCC—598JH(JH+) 51、196实验、仿真,8088实验第二节 MCS—51实验系统安装与启动§ 2.1 MCS51实验系统安装与启动1. DVCC系列实验系统在出厂时均为51状态对DVCC—52196JH机型:SK1位1—5置ON位置,位6—10置OFF对DVCC—5286JH和DVCC—598JH机型:a.SK1位1—5置ON,位6—10置OFF;b.SK2位1—2置ON;c.SK3置ON;d.SK4置OFFe.卧式KBB置51、96位置,立式KBB1开关置51、88位置(只对DVCC—598JH/JH+);f.DL1—DL4连1、22. 如果系统用于仿真外接用户系统,将40芯仿真电缆一头插入系统中J6插座,另一头插入用户系统的8051CPU位置,注意插入方向,仿真头上小红点表示第一脚,对应用户8051CPU 第一脚。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验八单片机液晶显示实验一、实验目的1、了解液晶显示屏的控制原理及方法。

2、了解点阵汉字的显示原理。

二、实验说明1、利用实验上的液晶显示屏电路,编写程序控制显示,输出汉字。

2、本实验仪采用的液晶显示屏内置控制器为SED1520,点阵为122x32,需要两片SED1520组成,由E1、E2分别选通,以控制显示屏的左右两半屏。

图形液晶显示模块有两种连接方式。

一种为直接访问方式,一种为间接控制方式。

本实验仪采用直接控制方式。

三、实验仪器计算机伟福实验箱(lab2000P )四、实验内容1、利用实验上的液晶显示屏电路,编写程序控制显示,输出汉字。

2、本实验仪采用的液晶显示屏内置控制器为SED1520,点阵为122x32,需要两片SED1520组成,由E1、E2分别选通,以控制显示屏的左右两半屏。

图形液晶显示模块有两种连接方式。

一种为直接访问方式,一种为间接控制方式。

本实验仪采用直接控制方式。

3、直接控制方式就是将液晶显示模块的接口作为存储器或I/O设备直接挂在计算机总线上。

计算机通过地址译码控制E1和E2的选通;读/写操作信号R/W由地址线A1控制;命令/数据寄存器选择信号AO由地址线A0控制。

实际电路如上图所示。

地址映射如下(地址中的X由LCD CS决定,可参见地址译码部分说明)五、思考题1、显示自己的班级和姓名;2、可以动态显示,上下或者左右移动;六、源程序修改原理及其仿真结果CWADD1 EQU 08000H ;写指令代码地址(E1)DWADD1 EQU 08001H ;写显示数据地址(E1)CRADD1 EQU 08002H ;读状态字地址(E1)DRADD1 EQU 08003H ;读显示数据地址(E1)CWADD2 EQU 08004H ;写指令代码地址(E2)DWADD2 EQU 08005H ;写显示数进地址(E2)CRADD2 EQU 08006H ;读状态字地址(E2)DRADD2 EQU 08007H ;读显示数据地址(E2)PD1 EQU 3DH ;122/2 分成左右两半屏122x32COLUMN EQU 30HPAGE_ EQU 31H ;页地址寄存器D1,DO:页地址CODE_ EQU 32H ;字符代码寄存器COUNT EQU 33H ;计数器DIR equ 34hdtp1 equ 35hdtp2 equ 36hdtp3 equ 37hCTEMP EQU 38HCOM EQU 20H ;指令寄存器DAT EQU 21H ;数据寄存器ORG 0jmp mainmov dptr, #0f002hmov a,#56hmovx @dptr,amov a,#0movx a,@dptrJMP MAIN;---------------------------------------; 初始化程序INIT: MOV COM, #0E2H ;复位LCALL PROLCALL PR3MOV COM, #0A4H ;关闭休闭状态LCALL PROLCALL PR3MOV COM, #0A9H ;设置1/32占空比LCALL PROLCALL PR3MOV COM, #0A0H ;正向排序设置LCALL PROLCALL PR3MOV COM, #0C0H ;设置显示起始行为第一行LCALL PROLCALL PR3MOV COM, #0AFH ;开显示设置LCALL PROLCALL PR3RET;------------------------------------------------; 清屏CLEAR: MOV R4,#00H ;页面地址暂存器设置CLEAR1: MOV A,R4 ;取页地址值ORL A,#0B8H ;"或"页面地址设置代码MOV COM,A ;页面地址设置LCALL PROLCALL PR3MOV COM,#00H ;列地址设置为"0"LCALL PROLCALL PR3MOV R3,#50H ;一页清80个字节CLEAR2: MOV DAT,#00H ;显示数据为"0"LCALL PR1LCALL PR4DJNZ R3,CLEAR2 ;页内字节清零循环INC R4 ;页地址暂存器加一CJNE R4,#04H,CLEAR1 ;RAM区清零循环RET;-----------------------------------;1.写指令代码子程序(E1)PRO: PUSH DPLPUSH DPHMOV DPTR,#CRADD1 ;设置读状态字地址PR01: MOVX A,@DPTR ;读状态字JB ACC.7,PR01 ;判"忙"标志为句"0",否再读MOV DPTR,#CWADD1 ;设置写指令代码地址MOV A,COM ;取指令代码MOVX @DPTR,A ;写指令代码POP DPHPOP DPLRET;------------------------------------;2.写显示数据子程序(E1)PR1: PUSH DPLPUSH DPHMOV DPTR,#CRADD1 ;设置读状态字地址PR11: MOVX A,@DPTR ;读状态宇JB ACC.7,PR11 ;判"忙"标志为"0",否再读MOV DPTR,#DWADD1 ;设置写显示数据地址MOV A,DAT ;取数据MOVX @DPTR,A ;写数据POP DPHPOP DPLRET;-------------------------------------;3.读显示数据子程序(E1)PR2: PUSH DPLPUSH DPHMOV DPTR,#CRADD1 ;设置读状态字地址PR21: MOVX A,@DPTR ;读状态字JB ACC.7,PR21 ;判"忙"标志为"0"否,否再读MOV DPTR,#DRADD1 ;设置读显示数据地址MOVX A,@DPTR ;读数据MOV DAT,A ;存数据POP DPHPOP DPLRET;-------------------------------------;4.写指令代码子程序(E2)PR3: PUSH DPLPUSH DPHMOV DPTR,#CRADD2 ;设置读状态字地址PR31: MOVX A,@DPTR ;读状态字JB ACC.7,PR31 ;判"忙"陈志为"0"否,否再读MOV DPTR,#CWADD2 ;设置写指令代码地址MOV A,COM ;取指令代码MOVX @DPTR,A ;写指令代码POP DPHPOP DPLRET;-------------------------------------; 5.写显示数据子程序(E2)PR4: PUSH DPLPUSH DPHMOV DPTR,#CRADD2 ;设置读状态字地址PR41: MOVX A,@DPTR ;读状态字JB ACC.7,PR41 ;判"忙"标志为"0"否,否再读MOV DPTR, #DWADD2 ;设置写显示数据地址MOV A,DAT ;取数据MOVX @DPTR,A ;写数据POP DPHPOP DPLRET;---------------------------------------; 6.读显示数据子程序(E2)PR5: PUSH DPLPUSH DPHMOV DPTR,#CRADD2 ;设置读状态字地址PR51: MOVX A,@DPTR ;读状态字JB ACC.7,PR51 ;判"忙"标志为"0",否再读MOV DPTR,#DRADD2 ;设置写显示数据地址MOVX A,@DPTR ;读数据MOV DAT,A ;存数据POP DPHPOP DPLRET; 中文显示子程序CCW_PR: MOV DPTR,#CCTAB ;确定字符字模块首地址MOV A,CODE_ ;取代码MOV B,#20H ;字模块宽度为32个字节MUL AB ;代码×32ADD A,DPL ;字符字模块首地址MOV DPL,A ;字模库首地址+代码×32MOV A,BADDC A,DPHMOV DPH,APUSH COLUMN ;列地址入栈PUSH COLUMN ;列地址入栈MOV CODE_,#00H ;代码寄存器借用为间址寄存器CCW_1: MOV COUNT,#10H ;计数器设置为16MOV A,PAGE_ ;读页地址寄存器ANL A,#03H ;取页地址有效值ORL A,#0B8H ;"或"页地址设置代码MOV COM,A ;设置页地址LCALL PRoLCALL PR3POP COLUMN ;取列地址值MOV A,COLUMN ;读列地址寄存器CLR CSUBB A,#PD1 ;列地址-模块参数JC CCW_2 ;<0为左半屏显示区域(E1)MOV COLUMN,A ;≥0为右半屏显示区域(E2)MOV A,PAGE_SETB ACC.3 ;设置区域标志位。

MOV PAGE_,A ;"0"为E1,"1"为E2CCW_2: MOV COM,COLUMN ;设置列地址值MOV A,PAGE_ ;判区域标志以确定设置哪个控制器JNB ACC.3,CCW_3LCALL PR3 ;区域E2LJMP CCW_4CCW_3: LCALL PRO ;区域E1CCW_4: MOV A,CODE_ ;取间址寄存器值MOVC A,@A+DPTR ;取汉字字模数据MOV DAT,A ;写数据MOV A,PAGE_JNB ACC.3,CCW_5LCALL PR4 ;区域E2LJMP CCW_6CCW_5: LCALL PR1 ;区域E1CCW_6: INC CODE_ ;间址寄存器加一INC COLUMN ;列地址寄存器加一MOV A,COLUMN ;判列地址是否超出区域范围、CJNE A,#PD1,CCW_7CCW_7: JC CCW_8 ;未超出则继续MOV A,PAGE_ ;超出则判是否在区域E2JB ACC.3,CCW_8 ;在区域E2则退出SETB ACC.3 ;在区域E1则修改成区域E2MOV PAGE_,AMOV COM,#00H ;设置区域E2列地址为"0"LCALL PR3CCW_8: DJNZ COUNT,CCW_4 ;当页循环MOV A,PAGE_ ;读页地址寄存器JB ACC.7,CCW_9 ;判完成标志D7位,"1"则完成退出INC A ;否则页地址加一SETB ACC.7 ;置完成位为"1"CLR ACC.3MOV PAGE_,AMOV CODE_,#10H ;间址寄存器设置为16LJMP CCW_1 ;大循环CCW_9: RET;--------------------------------------;中文字符库CCTAB:DB 0,0,31,17,145,209,191,145,145,159,145,145,145,31,0,0, “罗”DB 0,32,33,33,32,17,18,20,8,8,4,2,1,0,0,0DB 0C0H 70H 0FCH 0FFH 03H 60H 6CH 6CHDB 0,32,170,170,255,170,170,128,170,170,255,170,170,34,0,0, “慧”DB 0,32,24,10,26,42,42,58,42,42,58,10,31,32,0,0DB 0,0,255,137,137,137,137,137,249,137,137,137,143,128,0,0, “民”DB 0,0,63,16,8,0,0,0,0,3,4,8,16,60,0,0DB 0,224,16,8,8,16,224,0,0,112,136,136,136,136,112,0, “08”DB 0,7,8,16,16,8,7,0,0,14,17,16,16,17,14,0DB 0,48,8,8,8,136,112,0,0,48,8,8,8,136,112,0, “22”DB 0,24,20,18,17,16,24,0,0,24,20,18,17,16,24,0DB 0,16,16,248,0,0,0,0,0,16,16,248,0,0,0,0, “11”DB 0,16,16,31,16,16,0,0,0,16,16,31,16,16,0,0;------------------------------------.; 中文演示显示程序段MAIN:LCALL INITLCALL CLEARMOV CTEMP,#0MOV DIR,#0AAA:MOV PAGE_,#02HMOV COLUMN,CTEMPMOV CODE_,#00HLCALL CCW_PRMOV PAGE_,#02HMOV A,CTEMPADD A,#10HMOV COLUMN,AMOV CODE_,#01HLCALL CCW_PRMOV PAGE_,#02HMOV A,CTEMPADD A,#20HMOV COLUMN,AMOV CODE_,#02HLCALL CCW_PRMOV PAGE_,#02HMOV A,CTEMPADD A,#30H ;顺次向后显示,30H表示显示在第四个位置MOV COLUMN,AMOV CODE_,#03H ;取对应的字模03H代表中文字库表中的第四组数据在此对应"8"LCALL CCW_PRMOV PAGE_,#02HMOV A,CTEMPADD A,#40HMOV COLUMN,AMOV CODE_,#04HLCALL CCW_PRMOV PAGE_,#02HMOV A,CTEMPADD A,#50HMOV COLUMN,AMOV CODE_,#04HLCALL CCW_PRLJMP S_DOWN ;选用此句可实现文字循环向下滚动显示;LJMP S_UP ;选用此句可实现文字循环向上滚动显示;LJMP LEFT ;选用此句可实现文字循环向左滚动显示;SJMP $ ;选用此句文字呈现静态显示LCALL DELAY ;若删去上述跳转直接执行以下程序可实现文字循环向右滚动显示LCALL DELAYLCALL DELAYMOV A, DIRCJNE A,#0, LEFTINC CTEMPMOV A,CTEMPCJNE A,#58, AAAMOV DIR,#1LJMP AAALEFT:DEC CTEMPMOV A,CTEMPCJNE A,#0, AAAMOV DIR,#0LJMP AAA;LCALL S_LEFT;LCALL S_UPSJMP $; 示例五滚动演示程序段; 定时间隔地有规律地修改显示起始行地址,将产生显示画面平滑向上或向下滚动的效; 果。

相关文档
最新文档