实验报告一-显示程序实验

合集下载

液晶显示器实训实验报告

液晶显示器实训实验报告

一、实验目的1. 理解液晶显示器(LCD)的基本工作原理和组成结构。

2. 掌握液晶显示器驱动电路的设计与调试方法。

3. 熟悉液晶显示器的接口技术及其与单片机的连接方式。

4. 通过实验验证液晶显示器的显示功能,并实现简单图形和文字的显示。

二、实验原理液晶显示器(LCD)是一种利用液晶材料的光学各向异性来实现图像显示的设备。

它主要由液晶层、偏光片、电极阵列、驱动电路等部分组成。

液晶分子在电场作用下会改变其排列方向,从而改变通过液晶层的光的偏振状态,实现图像的显示。

三、实验器材1. 液晶显示器模块(如12864 LCD模块)2. 单片机开发板(如STC89C52单片机)3. 电源模块4. 连接线5. 实验平台(如面包板)四、实验内容1. 液晶显示器模块的识别与检测首先,对所购买的液晶显示器模块进行外观检查,确保无损坏。

然后,根据模块说明书,连接电源和单片机开发板,进行初步的检测。

2. 液晶显示器驱动电路的设计与调试根据液晶显示器模块的技术参数,设计驱动电路。

主要包括以下部分:- 电源电路:将单片机提供的电压转换为液晶显示器所需的电压。

- 驱动电路:负责控制液晶显示器模块的行、列电极,实现图像的显示。

- 接口电路:将单片机的信号与液晶显示器的控制信号进行连接。

在设计电路时,需要注意以下几点:- 电源电压要稳定,避免对液晶显示器模块造成损害。

- 驱动电路的驱动能力要足够,确保液晶显示器模块能够正常显示。

- 接口电路的信号传输要可靠,避免信号干扰。

设计完成后,进行电路调试,确保电路正常工作。

3. 液晶显示器的控制程序编写根据液晶显示器模块的控制指令,编写控制程序。

主要包括以下部分:- 初始化程序:设置液晶显示器的显示模式、对比度等参数。

- 显示程序:实现文字、图形的显示。

- 清屏程序:清除液晶显示器上的显示内容。

在编写程序时,需要注意以下几点:- 控制指令要正确,避免对液晶显示器模块造成损害。

- 程序要简洁,易于调试和维护。

20林淑娟实验一简单GIS地图显示程序建立-student详解

20林淑娟实验一简单GIS地图显示程序建立-student详解

《GIS开发与应用》实验报告实验序号: 1 实验项目名称:简单GIS地图显示程序建立学号1420012120 姓名林淑娟专业、班14空间实验地点实7#301 指导教师花利忠实验时间2016.9.8一、实验目的1.1. 掌握建立桌面GIS 应用程序框架的主要控件;1.2. 熟悉MapControl、ToolbarControl、TOCControl和LicenseControl等各个控件的属性1.3. 熟悉建立GIS地图程序的流程;二、实验设备(环境)及要求2.1. Visual Studio 2010 ;2.2. ArcGIS Engine Developer kit 9.3 ;2.3. 实验数据: Shapefile数据:中国地图.shp。

三、实验内容与步骤3.1 创建地图浏览小程序1)新建项目启动VS2010,选择“文件|新建|项目”,在项目类型中选择Visual C#;,然后点击浏览按钮指定一个存选择Windows 应用程序模板,输入名称“MapViewer”放工程文件的路径。

该工程会自动创建一个名称为Form1的窗体。

属性,输入在窗体上点击鼠标右键选择“属性”,在右边的属性列表中找到“Text”。

窗体的标题变化为MapViewer。

“MapViewer”图 1 新建项目图 2 Form1窗体2)添加控件拖动窗体右下角,使窗体变大,点击左侧的“工具箱”. 在弹出的工具箱中找到“ArcGIS、Windows Forms”选项卡,点击选项卡前面的加号,展开该选项卡,依次双击“ToolBarControl”、“LicenseControl”。

、“MapControl”“TOCControl”图 3 工具箱在Form1 窗体界面上使用鼠标拖动各个控件。

设置ToolBarControl ,TOCControl 和MapControl三个控件的Dock 属性。

窗体顶部是工具栏,左侧是图层列表,主工作区是地图控件。

LCD液晶显示实验实验报告及程序

LCD液晶显示实验实验报告及程序

LCD液晶显⽰实验实验报告及程序实验三 LCD1602液晶显⽰实验姓名专业学号成绩⼀、实验⽬的1.掌握Keil C51软件与proteus软件联合仿真调试的⽅法;2.掌握LCD1602液晶模块显⽰西⽂的原理及使⽤⽅法;3.掌握⽤8位数据模式驱动LCM1602液晶的C语⾔编程⽅法;4.掌握⽤LCM1602液晶模块显⽰数字的C语⾔编程⽅法。

⼆、实验仪器与设备1.微机⼀台 C51集成开发环境仿真软件三、实验内容1.⽤Proteus设计⼀LCD1602液晶显⽰接⼝电路。

要求利⽤P0⼝接LCD1602液晶的数据端,~做LCD1602液晶的控制信号输⼊端。

~⼝扩展3个功能键K1~K3。

参考电路见后⾯。

2.编写程序,实现字符的静态和动态显⽰。

显⽰字符为第⼀⾏:“1.姓名全拼”,第⼆⾏:“2.专业全拼+学号”。

3.编写程序,利⽤功能键实现字符的垂直滚动和⽔平滚动等效果显⽰。

显⽰字符为:“1.姓名全拼 2.专业全拼+学号 EXP8 DISPLAY ”主程序静态显⽰“My information!”四、实验原理液晶显⽰的原理:采⽤的LCD显⽰屏都是由不同部分组成的分层结构,位于最后⾯的⼀层是由荧光物质组成的可以发射光线的背光层,背光层发出的光线在穿过第⼀层偏振过滤层之后进⼊包含成千上万⽔晶液滴的液晶层,液晶层中的⽔晶液滴都被包含在细⼩的单元格结构中,⼀个或多个单元格构成屏幕上的⼀个像素。

当LCD中的电极产⽣电场时,液晶分⼦就会产⽣扭曲,从⽽将穿越其中的光线进⾏有规则的折射,然后经过第⼆层过滤层的过滤在屏幕上显⽰出来。

1.LCD1602采⽤标准的14引脚(⽆背光)或16引脚(带背光)接⼝,各引脚接⼝说明如表:2.1602液晶模块内部的控制器共有11条控制指令,如表所⽰:3.芯⽚时序表:4.1602LCD的⼀般初始化(复位)过程(1) 延时15ms。

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

(3) 延时5ms。

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

单片机的显示实验报告

单片机的显示实验报告

一、实验目的本次实验旨在通过学习单片机显示技术,掌握单片机控制数码管显示的基本原理和方法。

通过实验,加深对单片机基本原理和实际应用的理解,提高动手实践能力。

二、实验内容1. 硬件设备(1)单片机:AT89C51(2)晶振:12MHz(3)电容:22pF(两个)(4)复位电路:10K电阻与10F电容实现自动复位(5)显示器:7段共阳级数码管2. 软件环境(1)仿真软件:Proteus 7.8(2)编程软件:Keil 4.223. 实验步骤(1)搭建实验电路根据实验要求,利用Proteus软件搭建单片机实验电路,包括单片机、晶振、电容、复位电路和7段共阳级数码管。

(2)编写程序利用Keil 4.22编程软件编写控制数码管显示的程序,实现以下功能:1)数码管显示0-9循环显示2)数码管显示自定义字符3)数码管显示时间(小时、分钟、秒)(3)编译程序将编写的程序编译生成HEX文件。

(4)仿真运行在Proteus软件中加载HEX文件,观察数码管显示效果。

三、实验结果与分析1. 数码管显示0-9循环显示通过编写程序,实现数码管显示0-9循环显示的功能。

程序中,首先定义一个数组,存储0-9的数字编码;然后通过循环遍历数组,控制数码管显示对应的数字。

2. 数码管显示自定义字符为了实现数码管显示自定义字符,需要设计字符编码。

根据字符形状,将字符编码存储在数组中。

程序中,通过改变数组指针,控制数码管显示不同的字符。

3. 数码管显示时间实现数码管显示时间功能,需要设计一个计时器。

程序中,通过定时器中断,更新时间数据。

当定时器溢出时,更新数码管显示的时间。

四、实验总结通过本次实验,掌握了单片机控制数码管显示的基本原理和方法。

具体收获如下:1. 熟悉了Proteus和Keil软件的使用,提高了编程能力。

2. 加深了对单片机基本原理和实际应用的理解。

3. 学会了数码管显示程序的设计和调试。

4. 提高了动手实践能力。

五、拓展实验1. 实现多个数码管的连接和显示2. 设计一个可编程的字符编码表,实现更多字符的显示3. 利用数码管显示复杂图形,如动画效果4. 将数码管显示与其他功能结合,如温度、湿度显示等通过以上拓展实验,可以进一步提高单片机显示技术的应用水平。

数码显示控制实验报告(3篇)

数码显示控制实验报告(3篇)

第1篇一、实验目的1. 熟悉数码显示模块的结构和工作原理;2. 掌握51单片机控制数码显示模块的方法;3. 学会使用移位寄存器实现数码显示的动态扫描;4. 提高单片机编程能力和实践操作能力。

二、实验原理数码显示模块是一种常见的显示器件,主要由7段LED组成,可以显示0-9的数字以及部分英文字符。

51单片机通过控制数码显示模块的段选和位选,实现数字的显示。

移位寄存器是一种常用的数字电路,具有数据串行输入、并行输出的特点。

在本实验中,使用移位寄存器74HC595实现数码显示的动态扫描。

三、实验仪器与材料1. 51单片机实验板;2. 数码显示模块;3. 移位寄存器74HC595;4. 电阻、电容等电子元件;5. 电路连接线;6. 编译软件Keil uVision;7. 仿真软件Proteus。

四、实验步骤1. 电路连接(1)将51单片机的P1口与数码显示模块的段选端相连;(2)将74HC595的串行输入端Q(引脚14)与单片机的P0口相连;(3)将74HC595的时钟端CLK(引脚11)与单片机的P3.0口相连;(4)将74HC595的锁存端LR(引脚12)与单片机的P3.1口相连;(5)将数码显示模块的位选端与74HC595的并行输出端相连。

2. 编写程序(1)初始化51单片机的P1口为输出模式,P3.0口为输出模式,P3.1口为输出模式;(2)编写数码显示模块的段码数据表;(3)编写74HC595的移位和锁存控制函数;(4)编写数码显示模块的动态扫描函数;(5)编写主函数,实现数码显示模块的循环显示。

3. 编译程序使用Keil uVision编译软件将编写的程序编译成hex文件。

4. 仿真实验使用Proteus仿真软件进行实验,观察数码显示模块的显示效果。

五、实验结果与分析1. 编译程序后,将hex文件下载到51单片机实验板上;2. 使用Proteus仿真软件进行实验,观察数码显示模块的显示效果;3. 通过实验验证,数码显示模块可以正常显示0-9的数字以及部分英文字符;4. 通过实验,掌握了51单片机控制数码显示模块的方法,学会了使用移位寄存器实现数码显示的动态扫描。

字符显示实验报告

字符显示实验报告

一、实验目的1. 熟悉计算机字符显示的基本原理。

2. 掌握字符显示编程的基本方法。

3. 了解字符显示在计算机图形界面设计中的应用。

二、实验原理计算机字符显示是计算机输出设备的基本功能之一。

它通过将字符编码转换为字符图形,并在屏幕上显示出来,实现信息的输出。

字符显示主要包括以下三个步骤:1. 字符编码:将字符转换为计算机可识别的编码,如ASCII码、GB2312等。

2. 字模转换:将字符编码转换为字符图形,即字模。

3. 显示输出:将字符图形输出到屏幕上。

三、实验内容1. 实验环境:Windows操作系统、C++编程环境。

2. 实验步骤:(1)创建一个新的C++项目。

(2)编写字符显示程序,实现以下功能:① 输入字符编码。

② 将字符编码转换为字符图形。

③ 在屏幕上显示字符图形。

3. 实验代码:```cpp#include <iostream>#include <windows.h>using namespace std;// 定义字模数组,存储字符图形unsigned char font[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 空格 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, // 字母A // ... 其他字符的字模数据};// 字符显示函数void DisplayChar(unsigned char ch) {int width = 8; // 字模宽度int height = 16; // 字模高度int i, j;// 创建位图BITMAP bmp;bmp.bmWidth = width;bmp.bmHeight = height;bmp.bmWidthBytes = width;bmp.bmBits = new BYTE[bmp.bmWidthBytes bmp.bmHeight];// 初始化位图for (i = 0; i < bmp.bmHeight; i++) {for (j = 0; j < bmp.bmWidthBytes; j++) {bmp.bmBits[i bmp.bmWidthBytes + j] = 0;}}// 绘制字符图形for (i = 0; i < height; i++) {for (j = 0; j < width; j++) {if (font[(ch - 32) height + i] & (0x80 >> j)) {bmp.bmBits[i bmp.bmWidthBytes + j] = 0xFF;}}}// 创建设备上下文HDC hdc = GetDC(NULL);HDC memDC = CreateCompatibleDC(hdc);// 创建位图句柄HBITMAP hBitmap = CreateCompatibleBitmap(hdc, width, height); SelectObject(memDC, hBitmap);// 绘制位图BitBlt(memDC, 0, 0, width, height, hdc, 0, 0, SRCCOPY);// 清理资源DeleteObject(hBitmap);DeleteDC(memDC);ReleaseDC(NULL, hdc);// 输出字符cout << ch << endl;}int main() {unsigned char ch;cout << "请输入一个字符:";cin >> ch;DisplayChar(ch);return 0;}```4. 运行程序,输入一个字符,观察屏幕上是否显示对应的字符图形。

数字显示器实验报告

数字显示器实验报告

一、实验目的1. 了解数字显示器的基本原理和分类。

2. 掌握数字显示器的设计方法和应用。

3. 学会使用数码管和LCD显示器进行数字显示。

4. 提高动手实践能力和问题解决能力。

二、实验内容1. 数码管显示实验2. LCD显示器显示实验三、实验原理1. 数码管显示原理:数码管是一种半导体发光器件,由若干个发光二极管(LED)组成,每个LED代表一个数码管的笔画。

通过控制LED的亮灭,可以显示不同的数字和字符。

2. LCD显示器显示原理:LCD显示器是一种液晶显示器,通过液晶分子的旋转控制光的透过与阻挡,实现图像的显示。

LCD显示器主要由液晶面板、背光源、偏振片、驱动电路等组成。

四、实验步骤1. 数码管显示实验(1)搭建电路:将数码管与AT89C51单片机连接,连接方式包括共阴极和共阳极两种。

(2)编写程序:使用C语言编写程序,实现数码管显示数字和字符。

(3)调试程序:使用Keil软件对程序进行编译和调试,观察数码管显示效果。

2. LCD显示器显示实验(1)搭建电路:将LCD显示器与AT89C51单片机连接,连接方式包括并行和串行两种。

(2)编写程序:使用C语言编写程序,实现LCD显示器显示数字和字符。

(3)调试程序:使用Keil软件对程序进行编译和调试,观察LCD显示器显示效果。

五、实验结果与分析1. 数码管显示实验结果:通过编写程序,数码管能够显示数字和字符,实现了实验目的。

2. LCD显示器显示实验结果:通过编写程序,LCD显示器能够显示数字和字符,实现了实验目的。

3. 分析:(1)数码管显示实验:在实验过程中,发现数码管的共阴极和共阳极连接方式不同,需要根据实际连接方式编写程序。

此外,为了提高显示效果,需要对数码管进行动态扫描显示。

(2)LCD显示器显示实验:在实验过程中,发现LCD显示器的并行和串行连接方式不同,需要根据实际连接方式编写程序。

此外,为了提高显示效果,需要对LCD显示器进行初始化和设置显示模式。

单片机实验报告——LED数码管显示实验

单片机实验报告——LED数码管显示实验

单⽚机实验报告——LED数码管显⽰实验(此⽂档为word格式,下载后您可任意编辑修改!)《微机实验》报告LED数码管显⽰实验指导教师:专业班级:姓名:学号:联系⽅式:⼀、任务要求实验⽬的:理解LED七段数码管的显⽰控制原理,掌握数码管与MCU的接⼝技术,能够编写数码管显⽰驱动程序;熟悉接⼝程序调试⽅法。

实验内容:利⽤C8051F310单⽚机控制数码管显⽰器基本要求:利⽤末位数码管循环显⽰数字0-9,显⽰切换频率为1Hz。

提⾼要求:在4位数码管显⽰器上依次显⽰当天时期和时间,显⽰格式如下:yyyy (年份)mm.dd(⽉份.⽇).asm;Description: 利⽤末位数码管循环显⽰数字0-9,显⽰切换频率为1Hz。

;Designed by:gxy;Date:2012117;*********************************************************$include (C8051F310.inc)ORG 0000H ;复位⼊⼝AJMP MAINORG 000BH ;定时器0中断⼊⼝AJMP TIME0MAIN: ACALL Init_Device ;初始化配置MOV P0,#00H ;位选中第⼀个数码管MOV R0,#00H ;偏移指针初值CLR PSW.1 ;标志位清零SETB EA ;允许总中断SETB ET0 ;允许定时器0中断MOV TMOD,#01H ;定时器0选⼯作⽅式1MOV TH0,#06HMOV TL0,#0C6H ;赋初值,定时1sLOOP: MOV A,R0ADD A,#0BH ;加偏移量MOVC +PC ;查表取,段码MOV P1,A ;段码给P1显⽰SETB TR0 ;开定时LOOP1: JNB PSW.1,LOOP1 ;等待中断CLR PSW.1INC R0 ;偏移指针加⼀CJNE R0,#0AH,LOOP3MOV R0,#00H ;偏移指针满10清零AJMP LOOP ;返回DB 0FCH,60H,0DAH,0F2H,66H ;段码数据表:0、1、2、3、4 DB 0B6H,0BEH,0E0H,0FEH,0F6H; 5、6、7、8、9 ;***************************************************************** ; 定时器0中断;***************************************************************** TIME0: SETB PSW.1 ;标志位置⼀MOV TH0,#06H ;定时器重新赋值MOV TL0,#0C6HLOOP3: CLR TR0 ;关定时RETI;***************************************************************** ;初始化配置;***************************************************************** PCA_Init:anl PCA0MD, #0BFhmov PCA0MD, #000hretTimer_Init:mov TMOD, #001hmov CKCON, #002hretPort_IO_Init:; P0.0 - Unassigned, Open-Drain, Digital ; P0.1 - Unassigned, Open-Drain, Digital ; P0.2 - Unassigned, Open-Drain, Digital ; P0.3 - Unassigned, Open-Drain, Digital ; P0.4 -Unassigned, Open-Drain, Digital ; P0.5 - Unassigned, Open-Drain, Digital ; P0.6 - Unassigned, Open-Drain, Digital ; P0.7 - Unassigned, Open-Drain, Digital ; P1.0 - Unassigned, Open-Drain, Digital ; P1.1 - Unassigned, Open-Drain, Digital ; P1.2 - Unassigned, Open-Drain, Digital ; P1.3 - Unassigned, Open-Drain, Digital ; P1.4 - Unassigned, Open-Drain, Digital ; P1.5 - Unassigned, Open-Drain, Digital ; P1.6 - Unassigned, Open-Drain, Digital ; P1.7 - Unassigned, Open-Drain, Digital ; P2.0 - Unassigned, Open-Drain, Digital ; P2.1 -Unassigned, Open-Drain, Digital ; P2.2 - Unassigned, Open-Drain, Digital ; P2.3 - Unassigned, Open-Drain, Digital mov XBR1, #040hretInterrupts_Init:mov IE, #002hretInit_Device:lcall PCA_Initlcall Timer_Initlcall Port_IO_Initlcall Interrupts_Initretend提⾼部分:;*********************************************************;Filename: shumaguan2.asm;Description:在4位数码管显⽰器上依次显⽰当天时期和时间,显⽰格式如下:; 2012 (年份); 12.07(⽉份.⽇); 12.34(⼩时.分钟);Designed by:gxy;Date:2012117;*********************************************************$include (C8051F310.inc)ORG 0000HAJMP MAINORG 000BHAJMP TIME0MAIN: ACALL Init_DeviceMOV R0,#00H ;⽤于位选MOV R1,#00H ;⽤于段选MOV R2,#22H ;置偏移量,⽤于控制模式MOV R4,#8MOV R5,#250CLR PSW.1 ;标志位清零SETB EA ;允许总中断SETB ET0 ;允许定时器0中断MOV TMOD,#01H ;定时器0选⼯作⽅式1MOV TH0,#0FFHMOV TL0,#0C0H ;定时器赋初值1msBACK: MOV P0,R0 ;位选MOV A,R0ADD A,#40H ;选下⼀位MOV R0,AMOV A,R1ADD A,R2 ;加偏移量MOVC +PC ;查表取段码MOV P1,A ;段码给P1显⽰LOOP: SETB TR0 ;开定时HERE: JNB PSW.1,HERE ;等待中断CLR PSW.1DJNZ R5,BACKMOV R5,#250DJNZ R4,BACKMOV R4,#8 ;循环2000次(2s)MOV A,R2ADD A,#04H ;偏移量加04H,到下⼀模式段码初值地址 MOV R2,ACJNE R2,#2EH,LOOP2MOV R2,#22H ;加三次后偏移量回到初值LOOP2: AJMP BACK ;返回进⼊下⼀模式;段码数据表:DB 0DAH,60H,0FCH,0DAH ; 2102DB 0E0H,0FCH,61H,60H ; 701. 1DB 66H,0F2H,0DBH,60H ; 432. 1;*****************************************************************; 定时器0中断;***************************************************************** TIME0: MOV TH0,#0FFH MOV TL0,#0C0HCLR TR0SETB PSW.1INC R1 ;偏移指针加⼀CJNE R1,#04H,LOOPMOV R1,#00H ;偏移指针满04H清零RETI;***************************************************************** ; 初始化配置;***************************************************************** PCA_Init:anl PCA0MD, #0BFhmov PCA0MD, #000hretTimer_Init:mov TMOD, #001hmov CKCON, #002hretPort_IO_Init:; P0.0 - Unassigned, Open-Drain, Digital; P0.1 - Unassigned, Open-Drain, Digital; P0.2 - Unassigned, Open-Drain, Digital; P0.3 - Unassigned, Open-Drain, Digital; P0.4 - Unassigned, Open-Drain, Digital; P0.5 - Unassigned, Open-Drain, Digital; P0.6 - Unassigned, Open-Drain, Digital; P0.7 - Unassigned, Open-Drain, Digital; P1.0 - Unassigned, Open-Drain, Digital; P1.1 - Unassigned, Open-Drain, Digital; P1.2 - Unassigned, Open-Drain, Digital; P1.3 - Unassigned, Open-Drain, Digital; P1.4 - Unassigned, Open-Drain, Digital; P1.5 - Unassigned, Open-Drain, Digital; P1.6 - Unassigned, Open-Drain, Digital; P1.7 - Unassigned, Open-Drain, Digital; P2.0 - Unassigned, Open-Drain, Digital; P2.1 - Unassigned, Open-Drain, Digital; P2.2 - Unassigned, Open-Drain, Digital; P2.3 - Unassigned, Open-Drain, Digitalmov XBR1, #040hretInterrupts_Init:mov IE, #002hretInit_Device:lcall PCA_Initlcall Timer_Initlcall Port_IO_Initlcall Interrupts_Initretend六、程序测试⽅法与结果、软件性能分析软件调试总体截图:基础部分:软件运⾏时,我们发现P0端⼝为00H,P1端⼝以依次为FCH、60H、DAH、F2H、66H、B6H、BEH、E0H、FEH、F6H。

单片机LCD显示实验报告

单片机LCD显示实验报告

单片机LCD显示实验报告实验目的:本实验旨在通过使用单片机控制LCD进行显示,掌握单片机与外围设备的交互操作,学习并理解LCD显示原理。

实验器材:1. 单片机开发板2. LCD1602液晶显示屏3. 杜邦线若干4. 电阻若干实验原理:液晶显示原理是在液晶材料施加电场的作用下,通过改变传输光的偏振状态来实现图像显示。

本实验使用的LCD1602是一种16×2的字符型液晶显示模块,其中每个字符由5×8的点阵构成。

实验步骤:1. 连接电路:将LCD1602与单片机开发板通过杜邦线连接。

一般来说,液晶显示屏的引脚布局如下:- VSS: 接地- VDD: 供电(一般为5V)- V0:对比度控制端(通过电位器调节)- RS:数据/指令选择端(通常连接到单片机的I/O口)- RW:读写选择端(连接至地)- E:使能端(通常连接到单片机的I/O口)- D0-D7:数据线(连接到单片机的I/O口)- A:背光灯正极(连接5V)- K:背光灯负极(连接至地)2. 编写程序:根据实验要求,使用相应的单片机编程语言编写程序。

在程序中,需要调用相关的LCD1602命令来实现字符的显示。

3. 烧录程序:使用相应的烧录工具将编写好的程序下载到单片机开发板中。

4. 实验验证:将开发板上电,通过观察LCD1602的显示情况来验证程序的正确性。

实验结果与分析:在本次实验中,我使用单片机控制LCD1602成功实现了字符的显示。

实验结果表明,编写的程序能够正确地将字符显示在液晶屏上,并且显示效果良好。

实验中遇到的问题及解决方法:在实验过程中,我遇到了一些问题,例如LCD1602无显示、乱码或显示异常等情况。

针对这些问题,我采取了以下解决方法:1. 检查接线是否正确:确保LCD1602的引脚与单片机开发板之间的连接准确无误。

2. 检查电源供应:确认LCD1602的电源供应是否正常,电源电压是否稳定。

3. 调整对比度:通过旋转电位器调整LCD1602的对比度,以适应不同环境下的显示效果要求。

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

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

51单片机数码管显示实验实验内容:1)编写程序让8只数码管初始显示0,每隔大约1s加1显示(可以用延时函数实现),到数码管显示9后,再从0开始显示,如此循环反复。

2)C语言程序#include<reg52.h>#define uint unsigned intvoid display();void num();int i;unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e}; //共阳极数码管0-F编码表void delayms(uint);void main(){while(1){num();display();}}void display(){P2=0xff;//消隐P0连接段选,P1节位选P1=0x00;//8个数码管同时显示P2=table[i];//数码管显示数码0 delayms(1000);//延时5ms}void num(){if(i<9)i++;elsei=0;}void delayms(uint x){uint i,j;for(i=0;i<x;i++)for(j=0;j<110;j++);}3)汇编语言:ORG 0000HLJMP MAINORG 0100H;P2连接段选,P1节位选MAIN: MOV P1,#00H ;所有的数码管都显示MOV R2,#00H ;从0开始显示LOOP: MOV A,R2 ;为下面的基址加变址寄存器寻址方式做准备MOV DPTR,#TAB1 ;把数组的首地址赋给DPTRMOVC A,@A+DPTR ;取数组中的数字MOV P2,A ;把取得的值送给P0口显示ACALL DELAY ;延时一会INC R2 ;为取下一个数加一CJNE R2,#10,LOOP ;只要数小于10就继续循环显示MOV R2,#00H ;如果加到10后重新从0开始LJMP LOOP ;进入循环函数;****************************************** TAB1: DB 0C0H,0F9H,0A4H,0B0H,99H; 数组DB 92H,82H,0F8H,80H,90HRET;****************************************** DELAY: MOV R3,#3 ;延时函数DE1: MOV R4,#0FFHDE2: MOV R5,#0FFHDJNZ R5,$DJNZ R4,DE2DJNZ R3,DE1RET;*************************************************END(3)编写程序学习数码管的动态显示,让8只数码管从从左往右显示1、2、3……8。

lcd的显示实验报告

lcd的显示实验报告

lcd的显示实验报告LCD的显示实验报告概述:本次实验旨在研究液晶显示屏(LCD)的原理和显示效果。

通过搭建实验装置,观察和分析不同输入信号对LCD显示效果的影响,以及了解液晶分子的排列和光学特性。

实验装置:1. 液晶显示屏:使用一块常见的LCD显示屏,尺寸为10英寸。

2. 驱动电路:使用专业的LCD驱动电路板,可提供不同的输入信号。

3. 信号发生器:用于产生不同频率和幅度的信号,以模拟不同图像和视频场景。

实验步骤:1. 连接实验装置:将LCD显示屏和驱动电路连接,确保电路正常工作。

2. 设置信号发生器:根据实验要求,设置信号发生器的频率和幅度。

3. 观察LCD显示效果:通过改变信号发生器的输入信号,观察LCD显示屏上显示的图像和视频场景的变化。

实验结果:1. 彩色显示效果:通过调整信号发生器的输入信号,我们观察到LCD显示屏可以呈现丰富多彩的图像和视频场景。

不同的颜色通过液晶分子的排列方式和光学特性实现。

2. 对比度和亮度:通过改变信号发生器的幅度,我们发现LCD显示屏的对比度和亮度也会相应改变。

较大的幅度可以增加对比度和亮度,但过大的幅度可能导致图像失真。

3. 响应时间:我们还观察到LCD显示屏的响应时间对快速移动图像的显示效果有影响。

较短的响应时间可以减少运动模糊,提高图像的清晰度。

讨论与分析:1. 液晶分子排列:液晶显示屏的显示效果是通过液晶分子的排列方式来实现的。

液晶分子在电场的作用下,可以改变其排列方式,从而改变透光性。

这种特性使得液晶显示屏可以呈现不同的图像和颜色。

2. 优点与缺点:与传统的CRT显示器相比,液晶显示屏具有体积小、重量轻、功耗低等优点。

然而,液晶显示屏的响应时间相对较长,可能导致快速移动图像的模糊。

此外,液晶显示屏的视角范围有限,需要保持正对屏幕才能获得最佳视觉效果。

3. 应用领域:液晶显示屏已广泛应用于电子产品领域,如电视、计算机显示器、智能手机等。

其轻薄便携的特点使得液晶显示屏成为现代生活中不可或缺的一部分。

LCD1602液晶显示实验实验报告及程序

LCD1602液晶显示实验实验报告及程序

LCD1602液晶显示实验实验报告及程序一、实验目的本次实验的主要目的是熟悉并掌握 LCD1602 液晶显示屏的工作原理和编程方法,能够成功实现字符在液晶屏幕上的显示和控制。

二、实验原理LCD1602 是一种工业字符型液晶,能够显示 16x2 个字符,即每行16 个字符,共 2 行。

它的工作原理是通过控制液晶分子的偏转来实现字符的显示。

LCD1602 有 16 个引脚,主要引脚功能如下:1、 VSS:接地。

2、 VDD:接电源(通常为+5V)。

3、 V0:对比度调整引脚,通过外接电位器来调节屏幕显示的对比度。

4、 RS:寄存器选择引脚,高电平时选择数据寄存器,低电平时选择指令寄存器。

5、 RW:读写选择引脚,高电平时进行读操作,低电平时进行写操作。

6、 E:使能引脚,下降沿触发。

7、 D0 D7:数据引脚,用于传输数据和指令。

LCD1602 的指令集包括清屏、归位、输入方式设置、显示开关控制、光标或显示移位、功能设置、CGRAM 和 DDRAM 地址设置以及读忙标志和地址等。

三、实验设备与材料1、单片机开发板2、 LCD1602 液晶显示屏3、杜邦线若干4、电脑四、实验步骤1、硬件连接将 LCD1602 的 VSS 引脚接地。

将 VDD 引脚接+5V 电源。

将 V0 引脚通过一个 10K 的电位器接地,用于调节对比度。

将 RS、RW、E 引脚分别连接到单片机的三个 I/O 口。

将 D0 D7 引脚连接到单片机的 8 个 I/O 口。

2、软件编程包含必要的头文件。

定义与 LCD1602 连接的 I/O 口。

编写初始化函数,包括设置显示模式、清屏、输入方式等。

编写写指令函数和写数据函数,用于向LCD1602 发送指令和数据。

编写显示字符串函数,实现字符在屏幕上的显示。

3、编译下载程序使用编译软件对编写的程序进行编译,生成可执行文件。

将可执行文件下载到单片机开发板中。

4、观察实验结果给开发板上电,观察 LCD1602 液晶显示屏上是否正确显示预设的字符。

串行静态显示实验报告(3篇)

串行静态显示实验报告(3篇)

第1篇一、实验目的1. 理解串行静态显示的原理。

2. 掌握串行静态显示的实现方法。

3. 通过实验验证串行静态显示的可行性。

二、实验原理串行静态显示是指通过串行接口向显示模块发送数据,使得显示模块显示相应的信息。

其原理是将需要显示的字符或数字转换成相应的编码,通过串行接口发送到显示模块,由显示模块将接收到的数据显示出来。

三、实验设备1. 电脑一台2. 串行通信模块(如:MAX232)3. 显示模块(如:LCD1602)4. 连接线若干5. 电源四、实验步骤1. 连接设备(1)将电脑的串口与串行通信模块的RXD、TXD、GND引脚连接。

(2)将串行通信模块的VCC引脚连接到电源的正极,GND引脚连接到电源的负极。

(3)将显示模块的RS、RW、EN、DB0-DB7引脚与串行通信模块的相应引脚连接。

2. 编写程序(1)选择合适的编程语言(如:C语言)。

(2)编写程序,实现以下功能:a. 初始化串口参数,如波特率、数据位、停止位、校验位等。

b. 将需要显示的字符或数字转换为相应的编码。

c. 通过串口发送编码到显示模块。

d. 显示模块接收到数据后,将数据显示出来。

3. 运行程序(1)将程序编译并生成可执行文件。

(2)运行程序,观察显示模块是否正常显示信息。

4. 结果分析(1)若显示模块正常显示信息,则实验成功。

(2)若显示模块显示信息不正确或无显示,则检查程序代码和硬件连接,找出问题所在并解决。

五、实验总结1. 通过本次实验,掌握了串行静态显示的原理和实现方法。

2. 在实验过程中,遇到了一些问题,如程序代码错误、硬件连接错误等。

通过查阅资料、分析问题,最终成功解决了这些问题。

3. 本次实验有助于提高自己的动手能力和解决问题的能力。

六、实验报告实验名称:串行静态显示实验实验日期:____年__月__日实验地点:____实验室实验人:____实验设备:电脑、串行通信模块、显示模块、连线、电源实验步骤:连接设备、编写程序、运行程序、结果分析实验结果:显示模块正常显示信息实验总结:掌握了串行静态显示的原理和实现方法,提高了自己的动手能力和解决问题的能力。

LCD显示实验报告

LCD显示实验报告

LCD显示实验报告一.实验目的学会用LCD显示字符和数字,显示学号和姓名。

二.实验内容:所需要的源程序:;* 占用I/O RB1-RB5,RA5;* 使用RAM 2个字节;* 程序包括:;* - InitLCD 初始化液晶面板函数;* - putcLCD 将字符写入LCD的函数;* - SendCmd 将命令写入LCD的函数;* - clrLCD 清LCD显示函数;* 入口参数WREG;* 出口参数无;*LCD显示RAM地址:第一行0x80~8F;第二行0xC0~CF;************************************************#include p16f877a.inc ;定义所用单片机的头文件COUNT EQU 0X20Count EQU 0X20;COUNT1 EQU 0X21Count1 EQU 0x21;COUNT2 EQU 0X22Count2 EQU 0x22;LCD_TEMP EQU 0X23Byte EQU 0X24BYTE EQU 0X24LCD_DATA1 EQU 0X25BYTESH EQU 0X26;* 定义LCD数据& 控制I/O口;可以用任意的6个普通的I/O管脚定义;实际连线依据该部分定义;********************************************************************** *********#define LCD_DB7 PORTB,5 ;占用的I/O口定义#define LCD_DB6 PORTB,4 ;该行硬件连接:LCD的DB6与RB4连接,其它类推#define LCD_DB5 PORTB,3 ;#define LCD_DB4 PORTB,2 ;#define LCD_E PORTA,5 ;#define LCD_RS PORTB,1 ;#define LCD_DB7_DIR TRISB,5 ;对应的方向寄存器定义#define LCD_DB6_DIR TRISB,4 ;#define LCD_DB5_DIR TRISB,3 ;#define LCD_DB4_DIR TRISB,2 ;#define LCD_E_DIR TRISA,5 ;#define LCD_RS_DIR TRISB,1 ;;********************************************************************** ********; LCD 模块命令#define DISP_ON 0x00C ; 开显示#define DISP_ON_C 0x00E ; 开显示, 开指针#define DISP_ON_B 0x00F ; 开显示, 开指针,开闪烁#define DISP_OFF 0x008 ; 关显示#define CLR_DISP 0x001 ; 清显示的操作数#define ENTRY_INC 0x006 ; 操作数#define ENTRY_INC_S 0x007 ; 操作数#define ENTRY_DEC 0x004 ; 操作数#define ENTRY_DEC_S 0x005 ; 操作数#define DD_RAM_ADDR 0x080 ; 初始化第一行显示的操作数#define DD_RAM_UL 0x0c0 ; 初始化第二行显示的操作数ORG 0X0;NOP;NOP;NOP;clrf INTCONcall InitLCDcall clrLCDmovlw DD_RAM_ADDR ;设置起始地址call SendCmdMOVLW ' ';CALL PUTCLCD;MOVLW 'L';CALL PUTCLCD;MOVLW 'i';CALL PUTCLCD;MOVLW 'a';CALL PUTCLCD;MOVLW 'n';CALL PUTCLCD;MOVLW 's ';CALL PUTCLCD;MOVLW 'o';CALL PUTCLCD;MOVLW ‘n';CALL PUTCLCD;MOVLW 'g';CALL PUTCLCD;MOVLW ' ';CALL PUTCLCD;MOVLW ' ';CALL PUTCLCD;movlw DD_RAM_UL ;设置起始地址call SendCmdMOVLW ' ';CALL PUTCLCD;MOVLW ' ';CALL PUTCLCD;MOVLW '2';CALL PUTCLCD;MOVLW '0';CALL PUTCLCD;MOVLW '0';CALL PUTCLCD;MOVLW '7';CALL PUTCLCD;MOVLW '2';CALL PUTCLCD;MOVLW '1';CALL PUTCLCD;MOVLW '2';CALL PUTCLCD;MOVLW '1';CALL PUTCLCD;MOVLW '0';CALL PUTCLCD;MOVLW ‘1';CALL PUTCLCD;MOVLW '6';CALL PUTCLCD;GOTO $;;InitLCD 初始化LCD模块InitLCDbsf STATUS,RP0 ;Bank 1bcf STATUS,RP1 ;初始化相关I/O引脚MOVLW B'11000001';ANDWF TRISB,F;bcf LCD_E_DIRMOVLW 0X07MOVWF 0X1C;CMCON=7bcf STATUS,RP0 ;Bank 0MOVLW B'11000001';ANDWF TRISB,F;bcf LCD_Ebsf LCD_E ;清数据线bcf LCD_Ebsf LCD_DB5 ;设置LCD工作方式bsf LCD_Ebcf LCD_Ecall LongDelaymovlw 0x28 ;再次设置工作方式call SendCmd ;四位数据总线,两行显示,5X7点阵字符movlw DISP_ON ;开显示call SendCmdmovlw ENTRY_INC ;设置指针移动方式call SendCmdcall clrLCD ;清屏return;*putcLCD 将字符数据送入LCD * ;* 本程序将字符数据分成了高半字节和低半字节分别输入* ;* 先送入的是高半字节*PUTCLCDbsf LCD_RS ;设置为送数据模式movwf Byte ;存WREG 到Byte 寄存器call write ;写入高半字节swapf Byte,F ;送入数据的低字节call write ;接着送低半字节call Delayreturn;******************************************************************* ;* SendCmd - 送命令到LCD * ;* 本程序将命令数据分成了高半字节和低半字节分别输入* ;* 先送入的是高半字节* ;******************************************************************* SendCmdbcf LCD_RS ;设置为送命令模式,与PUTCLCD仅相差此行movwf Byte ;存WREG 到Byte 寄存器call write ;送入命令的高字节swapf Byte,F ;送入命令的低字节call writecall Delayreturn;******************************************************************* ;* clrLCD - 清除LCD 显示* ;******************************************************************* clrLCDmovlw CLR_DISP ;call SendCmdreturn;******************************************************************* ;*write - 送半个字节数据;****************************************************************** writeMOVF BYTE,W;MOVWF BYTESH;BTFSS PORTB,1;JUGDE RS,AND SAVE TO BYTESH,3GOTO BCFRS;BSF BYTESH,3;GOTO GOGOGO;BCFRS BCF BYTESH,3;GOGOGO;MOVLW B'11000011';ANDWF PORTB,F;;bcf LCD_DB7;bcf LCD_DB6;bcf LCD_DB5;bcf LCD_DB4MOVLW 0XF8;ANDWF BYTESH,F;BCF STATUS,C;RRF BYTESH,F;RRF BYTESH,F;MOVF BYTESH,W;MOVWF PORTB;;CALL DELAY;btfsc Byte,7 ;写入半字节;bsf LCD_DB7;btfsc Byte,6;bsf LCD_DB6;btfsc Byte,5;bsf LCD_DB5;btfsc Byte,4;bsf LCD_DB4bsf LCD_E ;发送数据信号bcf LCD_Ereturn;*********************************************************** Delay ; call指令占用2个指令周期clrf Count ; 清Count占用1个指令周期Dloopdecfsz Count,f ; 这两行指令将延时goto Dloop ; (256 * 3) -1 个指令周期return ; return占用2个指令周期LongDelay ; call指令占用2个指令周期clrf Count ; 清Count占用1个指令周期clrf Count1 ; 清Count1占用1个指令周期movlw 0x03 ;占用1个指令周期movwf Count2 ;占用1个指令周期LDloopdecfsz Count,f ; 这两行指令将延时goto LDloop ; (256 * 3) -1 个指令周期decfsz Count1,fgoto LDloopdecfsz Count2,fgoto LDloopreturnEND。

汇编led显示实验报告

汇编led显示实验报告

汇编led显示实验报告实验目的:通过汇编语言编写程序,控制LED灯实现不同的显示模式。

实验原理:1. 汇编语言:汇编语言是一种低级语言,可以直接操作计算机硬件。

在本实验中,我们将使用汇编语言来编写控制LED灯的程序。

2. LED灯:LED灯是一种能够发光的电子元件,可以通过改变电流来控制其亮度和颜色。

实验步骤:1. 连接:将开发板与计算机连接,并将LED灯连接到开发板的相应引脚上。

2. 开发环境:打开汇编语言开发环境,创建一个新的汇编程序文件。

3. 程序编写:根据实验要求,编写控制LED灯显示的程序。

程序中需要包括对引脚的控制命令、延时函数等。

4. 程序调试:将程序下载到开发板上,并通过调试工具进行调试,查看LED灯的显示效果是否符合要求。

5. 实验结果记录:记录LED灯在不同程序模式下的显示效果。

实验结果:在实验过程中,我们编写了几个模式的控制程序来控制LED灯的显示效果,如以下几个模式:1. 单个LED灯闪烁:控制程序将LED灯依次点亮和熄灭,循环进行,实现LED灯的闪烁效果。

2. 交替闪烁:控制程序将两个LED灯交替点亮和熄灭,循环进行,实现两个LED 灯的交替闪烁效果。

3. 跑马灯效果:控制程序将多个LED灯依次点亮和熄灭,形成一个灯在不同位置移动的效果。

通过实验,我们可以看到LED灯在不同的程序控制下有不同的显示效果,通过编写不同的控制程序,可以实现更多样化的LED灯显示效果。

实验总结:通过这次实验,我们学习了如何使用汇编语言编写程序,控制LED灯的显示效果。

通过编写不同的控制程序,可以实现多种多样的LED灯显示效果。

这次实验使我们进一步理解了汇编语言的基本原理和编程技巧,对我们今后的学习和研究有很大的帮助。

同时,实验中我们还学会了如何通过调试工具进行程序调试和验证,提高了我们的实际操作能力。

通过实验,我们对计算机硬件的控制有了更深的了解,并且掌握了一种直接操作硬件的方法,这对我们今后在嵌入式系统开发等方面的研究和应用都具有重要意义。

显示程序实验_实验报告

显示程序实验_实验报告

一、实验目的1. 了解显示程序的基本原理和实现方法。

2. 掌握使用C语言编写显示程序的基本步骤。

3. 熟悉计算机显示系统的组成和功能。

4. 培养实际编程能力,提高动手操作能力。

二、实验环境1. 操作系统:Windows 102. 编译器:Visual Studio 20193. 显示器:普通显示器三、实验原理显示程序是指将计算机中的数据以图形或文字形式展示在显示器上的程序。

在计算机系统中,显示程序主要涉及以下原理:1. 图形显示原理:通过将图像数据转换成显示器可以识别的信号,驱动显示器显示图像。

2. 文字显示原理:通过字符编码将文字信息转换成显示器可以识别的信号,驱动显示器显示文字。

四、实验步骤1. 创建一个新的C语言项目,命名为“显示程序实验”。

2. 在项目文件夹中创建一个名为“display.c”的源文件。

3. 在“display.c”文件中编写以下代码:```c#include <stdio.h>#include <windows.h>int main() {// 创建一个窗口HWND hwnd = CreateWindow("static", "显示程序实验",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, CW_USEDEFAULT, 640, 480, NULL, NULL, NULL, NULL);ShowWindow(hwnd, SW_SHOW);// 创建一个设备上下文HDC hdc = GetDC(hwnd);// 创建一个画笔HPEN hPen = CreatePen(PS_SOLID, 1, RGB(255, 0, 0));// 选择画笔SelectObject(hdc, hPen);// 绘制矩形Rectangle(hdc, 100, 100, 300, 300);// 绘制文字TextOut(hdc, 50, 50, "Hello, World!", strlen("Hello, World!")); // 释放画笔DeleteObject(hPen);// 释放设备上下文ReleaseDC(hwnd, hdc);// 等待用户关闭窗口MSG msg;while (GetMessage(&msg, NULL, 0, 0)) {TranslateMessage(&msg);DispatchMessage(&msg);}return 0;}```4. 编译并运行程序,观察显示效果。

微机原理 实验报告——显示程序实验与8259应用编程实验

微机原理 实验报告——显示程序实验与8259应用编程实验

北京信息科技大学自动化学院实验报告课程名称微型计算机原理与接口技术实验名称显示程序实验与8259应用编程实验实验仪器 TDN86/88教学实验台专业自动化学院班级/学号自控0801/2008010827学生姓名林明泉实验日期实验地点成绩指导教师北京信息科技大学自动化学院(微机原理)实验报告专业:自动化班级:自控0801 学号:2008010827 姓名:林明泉实验名称显示程序实验与8259应用编程实验实验地点实验楼706 实验时间2010年11月1.实验目的:1.了解INT 10H各功能块的作用及用法。

2.掌握字符方式下PC机显示器显示控制。

3.认识8086系统的中断特性。

4.掌握8259中断控制器的工作原理及其使用方法、应用编程。

2.实验设备:TDN86/88教学实验系统一台,计算机一台3.实验原理及内容:一、显示程序实验显示器I/O功能调用使用说明INT 10入口:AH=00H,AL=01H 功能:清屏入口:AH=01H,AL=数据功能:写AL中的数据到屏幕上入口:AH=06H,DS:BX=字串首地址,且字符串结尾用00H填充功能:显示已字符串直到遇到00H为止。

1、在显示器上显示A-Z 26个英文字母;程序:STACK1 SEGMENT STACKDW 64 (?)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,SS:STACK1 START:MOV CX,001AHMOV BL,41HMOV AH,01HA1:MOV AL,BLINT 10HINC BLPUSH CXMOV CX,0FFFFHA2:LOOP A2POP CXLOOP A1INT 03HCODE ENDS END START2、在显示器上显示‘GOOD AFTERNOON’。

要求分别用AH=01H,AH=06H来完成。

a、STACK1 SEGMENT STACKDW 64 (?)STACK1 ENDSDA TA SEGMENTXIAN DB 'GOOD AFTERNOON',00HDA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,SS:STACK1 START:MOV CX,14MOV AX,DATAMOV DS,AXMOV BX,OFFSET XIANMOV AH,01HA1:MOV AL,[BX]INT 10HINC BXPUSH CXMOV CX,0FFFFHA2:LOOP A2POP CXLOOP A1INT 03HCODE ENDSEND STARTb、STACK1 SEGMENT STACKDW 64 (?)STACK1 ENDSDATA SEGMENTXIAN DB 'GOOD AFTERNOON',00HDA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,SS:STACK1 START:MOV AX,DATAMOV DS,AXMOV BX,OFFSET XIANMOV AH,06HINT 10HINT 03HCODE ENDSEND START二、中断特性以及8259应用编程实验系统中的8259芯片寄存器组编址为20H和21H。

单片机动态显示实验报告

单片机动态显示实验报告

单片机实验报告姓名:林康班级:1120603学号:201120060325实验题目:实验五动态显示一.实验任务及要求(1)使用单片机并行口做动态数码显示,把片内30H~32H单元的内容静态显示来。

二. 编程思路(1)动态显示是一位一位地轮流点亮各位的数码管,因此需要分时送出段选码和位选码,每次控制一个数码管显示,而且是先送段选码锁存后在送位选码点亮相应的数码管。

通过调节延时程序能够控制数码管显示数据的间隔,其余的和静态显示基本相似。

三. 实验电路及连线方法动态显示连线方法:电路由2 片74LS573,1 个六字一体的共阴数码管组成。

由U15 输出段选码,U16做位选码,与单片机的采用I/O 口连接方式,短路片J22 连接P2.0,J23 连接P2.3,做输出信号锁存。

(实际电路连d7-d6-d5-d4-d3-d2-d1-d0→h-c-d-e-g-b-a-f)。

PW12 是电源端。

开始初始化((R0))→A,取A低四位,查其笔型码送入P0口P2.0置1,然后清零通过74LS573输入段选码,把位选码送入P0口P2.1置1,然后清零延时1毫秒((R0))→A,取A高四位,查其笔型码送入P0口P2.0置1,然后清零通过74LS573输入段选码,把位选码送入P0口P2.1置1,然后清零延时1毫秒R0自加1R7自减1R7=0?结束ORG 0000LP3: MOV 32H,#12HMOV 31H,#34HMOV 30H,#56HMOV R0,#30HMOV R6,#0DFHMOV R7,#03MOV DPTR,#TABCLR P2.0CLR P2.1LP0: CLR AMOV A,@R0ANL A,#0FHMOVC A,@A+DPTRMOV P0,ASETB P2.0CLR P2.0MOV P0,#00MOV A,R6MOV P0,ASETB P2.1CLR P2.1RR AMOV R6,ADEL0: MOV R5,#250LP1: NOPNOPDJNZ R5,LP1CLR AMOV A,@R0ANL A,#0F0HSWAP AMOVC A,@A+DPTRMOV P0,ASETB P2.0CLR P2.0 MOV P0,#00MOV A,R6MOV P0,ASETB P2.1CLR P2.1RR AMOV R6,AINC R0DEL1: MOV R5,#250LP2: NOPNOPDJNZ R5,LP2DJNZ R7,LP0SJMP LP3TAB: DB77H,44H,3EH,6EH,4DH,6BH,7BH,46H,7FH,6FH,5FH,79H,33H,7CH,3BH,1BH END六.调试结果30H-32H单元依次输入12,34,56,数码管从左到右依次显示6 5 4 3 2 1 结果与预期符合。

显示姓名程序实验报告

显示姓名程序实验报告

一、实验目的1. 掌握编程语言的基本语法和结构。

2. 学会使用控制台输入输出功能。

3. 提高程序设计能力和逻辑思维能力。

二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.83. 开发工具:PyCharm三、实验内容1. 编写一个程序,用于输入用户姓名并显示。

2. 编写一个程序,用于输入用户姓名和年龄,并显示姓名和年龄。

四、实验步骤1. 创建一个新的Python文件,命名为`display_name.py`。

2. 编写第一个程序,用于输入用户姓名并显示:```python# 输入用户姓名并显示def display_name():name = input("请输入您的姓名:")print("您好,", name)# 调用函数display_name()```3. 编写第二个程序,用于输入用户姓名和年龄,并显示姓名和年龄:```python# 输入用户姓名和年龄,并显示def display_name_and_age():name = input("请输入您的姓名:")age = input("请输入您的年龄:")print("您好,", name)print("您今年", age, "岁。

")# 调用函数display_name_and_age()```五、实验结果1. 输入用户姓名并显示:```请输入您的姓名:张三您好,张三```2. 输入用户姓名和年龄,并显示姓名和年龄:```请输入您的姓名:李四请输入您的年龄:25您好,李四您今年 25 岁。

```六、实验总结1. 通过本次实验,掌握了Python编程语言的基本语法和结构。

2. 学会了使用控制台输入输出功能,实现了简单的用户交互。

3. 提高了程序设计能力和逻辑思维能力,为以后的学习和工作打下了基础。

信息显示程序实验报告

信息显示程序实验报告

实验名称:信息显示程序设计与实现实验日期:2023年4月10日实验地点:计算机实验室实验目的:1. 理解信息显示程序的基本原理和设计方法。

2. 掌握使用编程语言实现信息显示程序的基本技能。

3. 学会使用图形用户界面(GUI)库进行界面设计。

4. 提高程序调试和优化能力。

实验内容:本次实验主要围绕信息显示程序的设计与实现展开,包括以下步骤:一、需求分析1. 确定信息显示程序的功能需求,如显示实时信息、历史信息、警告信息等。

2. 分析用户界面设计,包括信息显示区域、操作按钮、状态栏等。

3. 确定数据来源和存储方式,如数据库、文件等。

二、设计阶段1. 确定程序结构,包括主界面、信息显示模块、数据管理模块等。

2. 设计数据库表结构,存储信息数据。

3. 编写界面设计文档,包括界面布局、颜色搭配、字体选择等。

三、编码阶段1. 使用编程语言(如Python、Java等)实现程序功能。

2. 编写信息显示模块,实现实时信息、历史信息、警告信息的显示。

3. 编写数据管理模块,实现数据的增删改查操作。

4. 编写界面设计代码,实现图形用户界面。

四、测试阶段1. 编写测试用例,验证程序功能是否符合需求。

2. 进行单元测试,确保各个模块独立运行无误。

3. 进行集成测试,验证程序整体功能是否正常。

4. 进行性能测试,评估程序运行效率。

实验结果:1. 成功设计并实现了一个信息显示程序,包括实时信息显示、历史信息查询、警告信息提示等功能。

2. 界面设计简洁美观,符合用户操作习惯。

3. 数据存储和查询功能正常,程序运行稳定。

实验总结:1. 在本次实验中,我们学习了信息显示程序的基本原理和设计方法,掌握了编程语言实现信息显示程序的基本技能。

2. 通过使用图形用户界面库进行界面设计,提高了界面美观度和用户体验。

3. 在程序调试和优化过程中,培养了我们的问题解决能力和团队合作精神。

实验心得:1. 信息显示程序的设计与实现是一个复杂的过程,需要我们充分理解需求、掌握编程技能、注重细节。

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

信息工程学院实验报告
实验项目名称:显示程序实验实验时间:2016.11.10
班级:姓名:学号:
一、实验目的
1、掌握在PC 机上以十六进制形式显示数据的方法
2、掌握部分DOS 功能调用使用方法。

3、熟悉Windows 集成操作软件Tdpit 的操作环境和操作方法。

二、实验设备
PC 微机一台、TD-PITD+实验系统一套。

三、实验原理
一般来说,有很多程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的内容显示在屏幕上。

本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并利用DOS 功能调用完成一些提示信息的显示。

通过本实验,初步掌握实验系统配套操作软件的使用。

实验中所使用DOS 功能调用(INT 21H)说明如下。

(1)显示单个字符输出
入口:AH=02H
调用参数:DL=输出字符
(2)显示字符串
入口:AH=09H
调用参数:DS:DX=串地址,’$’为结束字符
(3)键盘输入并回显
入口:AH=01H
返回参数:AL=输出字符
(4)返回DOS 系统
入口:AH=4CH
调用参数:AL=返回码
程序流程图如图1-1 所示。

实验参考程序如下。

实验程序清单(例程文件名:A1.ASM)
STACK1 SEGMENT STACK
DW 256 DUP(?)
STACK1 ENDS
DATA SEGMENT USE16
MES DB 'Press any key to exit!',0AH,0DH,0AH,0DH,'$' MES1 DB 'Show a as hex:',0AH,0DH,'$'
SD DB 'b'
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET MES ;显示退出提示
MOV AH,09H
INT 21H
MOV DX,OFFSET MES1 ;显示字符串
MOV AH,09H
INT 21H
MOV SI,OFFSET SD
MOV AL,DS:[SI]
AND AL,0F0H ;取高4 位
SHR AL,4
CMP AL,0AH ;是否是A 以上的数
JB C2
ADD AL,07H
C2: ADD AL,30H
MOV DL,AL ;显示字符
MOV AH,02H
INT 21H
MOV AL,DS:[SI]
AND AL,0FH ;取低4 位
图1-1 显示程序实验参考流程图CMP AL,0AH
JB C3
ADD AL,07H
C3: ADD AL,30H
MOV DL,AL ;显示字符
MOV AH,02H
INT 21H
KEY: MOV AH,1 ;判断是否有按键按下?
INT 16H ;(为观察运行结果,使程序有控制的退出)
JZ KEY
MOV AX,4C00H ;结束程序退出
INT 21H
CODE ENDS
END START
四、实验内容与步骤
(1)运行Tdpit 集成操作软件,进入编辑调试集成环境。

(2)根据程序设计使用语言不同,在“语言设置”菜单项中设置所使用的语言。

如图1-2 所示。

该项一经设置,会再下次启动后仍保持不变。

图1-2 设置语言环境
(3)开始新建文件进行编程。

点击“文件”菜单项中的“新建”,可以新建一个空白文档。

默认名为Td-pit1。

如图1-3 所示。

图1-3 新建空白文档
(4)编写程序,如图1-4 所示,并保存,此时软件会提示输入新的文件名,输入文件名后点击保存。

图1-4 程序编辑界面
(5)点击,编译文件,若程序编译无误,然后再点击,连接程序。

编译连接成功会在输出信息栏显示输出信息,如图1-5 所示。

图1-5 编译连接输出信息
(6)编译连接成功后可以点击,运行程序,查看运行结果。

(7)可以点击,调试程序,进入调试界面,进行程序的调试。

五、实验结果及分析:
(1) 直接运行程序,运行结果如图1-6所示。

图1-6 运行程序结果窗口
(2)编译连接无误后,点击,进入调试环境,进行程序的调试。

如图1-7 所示。

图1-7 进入调试环境
(3) 在调试环境中,按F2键选择显示’b’的ASCII码高4位为断点,如图1-8 所示。

并进行程序的调试,调试结果如图1-9 所示。

图1-8 调试环境
图1-9 调试程序结果窗口
(4) 程序需要显示运行的状况和结果,还需要一些提示信息的显示如“Press any key to exit!”。

利用DOS 功能调用完成这些提示信息的显示,程序运行结果,如图1-10所示。

图1-10 运行程序结果窗口
六、实验总结:
通过本实验,我初步掌握实验系统配套操作软件的使用,并利用DOS 功能调用完成一些提示信息的显示。

掌握了如何在PC 机上以十六进制形式显示数据的方法。

并通过实验加深了对理论编程的知识的理解,巩固了我的理论知识。

附录:
;A1.asm
;显示程序实验
STACK1 SEGMENT STACK
DW 256 DUP(?)
STACK1 ENDS
DATA SEGMENT USE16
MES1 DB 'Show a as hex:',0AH,0DH,'$'
SD DB 'b'
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET MES1 ;show message
MOV AH,09H
INT 21H
MOV SI,OFFSET SD
MOV AL,DS:[SI]
AND AL,0F0H
;取高4位
SHR AL,4
CMP AL,0AH ;是否是A以上的数
JB C2
ADD AL,07H
C2: ADD AL,30H
MOV DL,AL ;show character
MOV AH,02H
INT 21H
MOV AL,DS:[SI]
AND AL,0FH ;取低4位
CMP AL,0AH
JB C3
ADD AL,07H
C3: ADD AL,30H
MOV DL,AL ;show character
MOV AH,02H
INT 21H
WAIT1: MOV AH,1 ;判断是否有按键按下
INT 16H
JZ WAIT1 ;无按键则跳回继续等待,有则退出
MOV AX,4C00H ;go back to dos
INT 21H
CODE ENDS
END START
Welcome To Download !!!
欢迎您的下载,资料仅供参考!。

相关文档
最新文档