单片机实验报告书
- 格式:doc
- 大小:2.59 MB
- 文档页数:21
关于单片机实训报告万能【六篇】【篇1】单片机实训报告万能通过今次单片机实训,使我对单片机的认识有了更深刻的理解。
系统以51单片机为核心部件,利用汇编软件编程,通过键盘控制和数码管显示实现了基本时钟显示功能、时间调节功能,能实现本设计题目的基本要求和发挥部分。
由于时间有限和本身知识水平的限制,本系统还存在一些不够完善的地方,要作为实际应用还有一些具体细节问题需要解决。
例如:不能实现只用两个按键来控制时钟时间,还不能实现闹钟等扩展功能。
踉踉跄跄地忙碌了两周,我的时钟程序终于编译成功。
当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。
我相信其中的酸甜苦辣最终都会化为甜美的甘泉。
但在这次实训中同时使我对汇编语言有了更深的认识。
当我第一次接触汇编语言就感觉很难,特别是今次实训要用到汇编语言,尽管困难重重,可我们还是克服了。
这次的实训使培养了我们严肃认真的做事作风,增强了我们之间的团队合作能力,使我们认识到了团队合作精神的重要性。
这次实训的经历也会使我终身受益,我感受到这次实训是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。
希望这次的经历能让我在以后学习中激励我继续进步。
【篇2】单片机实训报告万能通过这一个学期的单片机学习,我收获了很多关于单片机的知识,并且这些知识和日常的生活息息相关。
了解了一些简单程序的录入,LED显示器、键盘、和显示器的应用和原理。
LED显示器:LED显示器是由发光二管组成显示字段的器件。
通常的8段LED显示器是由8个发光二极管组成,LED显示器分共阳极和共阴极两种。
有段选码和和位选码。
当LED显示器每段的平均电流位5MA时,就有较满意的亮度,一般选择断码5-10MA 电流;位线的电流应选择40-80MA。
LED显示器的显示方式有动态和静态两种。
7289A芯片是具有SPI串行接口功能的显示键盘控制芯片,它可同时取得8位共阴极数码管和64个键的键盘矩阵。
单片机实验报告1单片机实验报告1一、实验目的本实验的目的是通过学习单片机的基本知识和原理,了解单片机的工作原理,熟悉编写单片机程序并进行实验验证。
二、实验器材和软件实验器材:单片机开发板、USB数据线、LCD液晶屏、面包板、电缆线、电阻、LED等。
实验软件:KEIL C51开发软件、Proteus电路仿真软件。
三、实验原理单片机是一种集成度很高的微处理器芯片,本实验使用的单片机开发板中集成了一款8051系列的单片机。
这款单片机具有强大的数据处理能力和丰富的接口资源,可以用来实现各种功能。
四、实验内容本实验主要分为两个部分:第一部分是通过LED灯的亮灭来实现二进制数的计数;第二部分是通过LCD液晶屏显示温度和湿度数值。
1.二进制数计数利用单片机的IO口,将LED灯连接到P2口,通过对P2口的输出信号进行控制,实现二进制数的计数。
2.温湿度显示利用单片机的ADC(模数转换)功能,将温湿度传感器与单片机相连,通过ADC模块将温湿度信号转换成数字信号,并通过LCD屏幕显示出来。
五、实验步骤1.硬件连接将开发板与电脑连接,使用数据线将开发板上的USB接口与电脑的USB接口相连。
然后将LCD液晶屏和温湿度传感器连接到开发板上的相应接口,并将LED灯连接到P2口。
2.编写程序使用KEILC51软件编写程序,通过编写相应的代码,实现LED灯计数和温湿度显示功能。
4.运行实验将开发板上的拨码开关打开,开启单片机的电源。
LED灯开始计数并显示在开发板上,LCD屏幕同时显示温度和湿度的数值。
六、实验结果经过实验,LED灯能够正常进行二进制数的计数,LCD屏幕也能够准确地显示温度和湿度的数值。
七、实验总结通过本实验,我对单片机的工作原理和编程有了更深入的了解。
实验中遇到的问题,我通过查找资料、请教老师和同学进行了解决,提高了我的解决问题的能力。
通过实验,我进一步认识了单片机在各个领域中的重要性和应用价值,对未来的学习和工作有了更加明确的方向。
单片机实训报告优选范文5篇分享单片)是一种集成电路芯片,是具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器计数器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。
下面就是小编给大家带来的单片机实训报告优选范文5篇分享,希望大家喜欢!单片机实训报告范文(一)前言一周的单片机实训很快就结束咯,在这一周的时间里,我学到了很多关于单片机各方面的知识。
老师在实训课中也教会咯我们很多关于单片机软件编程与硬件设施的知识。
一周的实训中我们一共实训咯好几个项目,通过这几个项目的实训,我们掌握咯一些单片机的汇编语言和硬件调试,达到了很好的效果。
一周时间实训过后,我把之前在课堂上不懂的知识点,通过实际操作的练习,我都搞明白咯。
当然在实训过程中也遇到咯很多问题,就是有时在调试方面不能调试成功,有时程序是没有错误,但是就是调试不好,一直找原因也找不出是什么原因。
希望以后能够拥有更多的实训时间和机会学习单片机。
实训任务一一、实验目的熟悉Keil C51集成开发环境的使用方法二、实验设备及器件IBM PC机三、实验内容按照本书的第2章的2.1节到2.4节内容进行Keil C51集成开发环境的安装和使用练习。
然后按照以下内容建立文件并编译产生HEX文件。
ORG 8000HLJMP MainORG 80F0HMain:MOV R7,#0LOOP:MOV R6,#0DJNZ R6,$DJNZ R6,$DJNZ R6,$DJNZ R6,$DJNZ R7,LOOP ;延时一台CPL P1.0CPL P1.1CPL P1.2CPL P1.3CPL P1.4CPL P1.5CPL P1.6CPL P1.7SJMP MainEND ;P1.0取反 ;P1.1取反 ;P1.2取反 ;P1.3取反 ;P1.4取反 ;P1.5取反 ;P1.6取反 ;P1.7取反通过该程序实现八盏灯的同时亮和同时灭的功能,更好的掌握汇编指令。
单片机实验报告一、实验目的本次单片机实验的主要目的是通过实际操作和编程,深入了解单片机的工作原理和应用,掌握单片机系统的设计、开发和调试方法,提高自身的动手能力和解决问题的能力。
二、实验设备1、单片机开发板2、计算机3、编程软件(如 Keil)4、下载器5、示波器6、万用表三、实验内容1、点亮 LED 灯通过编写简单的程序,控制单片机的引脚输出高低电平,从而点亮或熄灭连接在该引脚上的 LED 灯。
这是单片机最基础的操作之一,旨在熟悉单片机的编程环境和引脚控制方式。
2、数码管显示利用单片机驱动数码管,实现数字的显示。
需要了解数码管的工作原理和驱动方式,通过编程控制数码管的段选和位选信号,显示不同的数字。
3、按键输入设计按键电路,通过读取按键的状态,实现对单片机系统的输入控制。
例如,通过按键切换不同的显示模式或控制其他外部设备。
4、定时器/计数器应用使用单片机的定时器/计数器功能,实现定时、计数等操作。
例如,设计一个定时闪烁的 LED 灯,或者通过计数器统计外部脉冲的个数。
5、串口通信实现单片机与计算机之间的串口通信,将单片机采集到的数据发送到计算机上进行显示和处理,或者接收计算机发送的指令对单片机系统进行控制。
四、实验原理1、单片机的基本结构单片机通常由中央处理器(CPU)、存储器(包括程序存储器和数据存储器)、输入输出接口(I/O 口)、定时器/计数器、中断系统等部分组成。
2、编程语言本次实验采用 C 语言进行编程。
C 语言具有简洁、高效、可移植性强等优点,非常适合单片机的开发。
3、引脚功能单片机的引脚分为电源引脚、时钟引脚、复位引脚、I/O 引脚等。
通过对这些引脚的合理配置和控制,可以实现各种功能。
4、数码管驱动原理数码管分为共阴极和共阳极两种类型。
通过控制数码管的段选和位选信号,可以使数码管显示不同的数字和字符。
5、按键检测原理按键通常采用上拉电阻或下拉电阻的方式连接到单片机的I/O 引脚。
51单片机实验报告(共五则)第一篇:51单片机实验报告51单片机实验报告实验一点亮流水灯实验现象 Led灯交替亮,间隔大约10ms。
实验代码#include 〈reg51、h> void Delay10ms(unsigned int c);voidmain(){)1(elihwﻩ{ ﻩP0= 0x00;Delay10ms(50);;ffx0 =0Pﻩﻩ;)05(sm01yaleDﻩ } } void Delay10ms(unsigned int c){unsigned char a,b;for(;c>0;c-—){)——b;0〉b;83=b(rofﻩ{ ﻩﻩfor(a=130;a〉0;a--);}ﻩﻩ}} 实验原理W W hi i le(1)表示一直循环。
循环体内首先将P0 得所有位都置于零,然后延时约5 5 0*10=500ms,接着 0 P0 位全置于 1 1,于就是 D LED 全亮了。
接着循环,直至关掉电源..延迟函数就是通过多个for r 循环实现得。
实验 2 流水灯(不运用库函数)实验现象起初 led 只有最右面得那一个不亮,半秒之后从右数第二个led也不亮了,直到最后一个也熄灭,然后 led 除最后一个都亮,接着上述过程 #includemain(){unsigned char LED;LED = 0xfe;while(1){ ﻩ;DEL = 0PﻩDelay10ms(50);00x0 == 0P(fiﻩ {;1〈〈 DEL = DELﻩ)ﻩ;efx0 = DELﻩ} ﻩ}ﻩ} void Delay10ms(unsigned int c){unsigned char a,b;for(;c>0;c-—){)—-b;0〉b;83=b(rofﻩ{ ﻩﻩﻩ;)--a;0>a;031=a(rofﻩ} ﻩ} ﻩ} 实验原理这里运用了C语言中得位运算符, , 位运算符左移, , 初始值得二进制为1111 1 110, 之后左移一次变成1111 1 100 0,当变成00000 0000 时通过 f if 语句重置 1 1 11 1 11110、延迟函数在第一个报告已经说出了,不再多说..实验 3 流水灯(库函数版)实验现象最开始还就是最右边得一个不亮,然后不亮得灯转移到最右边得第二个,此时第一个恢复亮度,这样依次循环.实验代码#include 〈reg51、h> #include 〈intrins、h〉void Delay10ms(unsigned int c); void main(void){unsigned char LED;;EFx0 = DELﻩ)1(elihwﻩ{ ﻩP0 = LED;;)05(sm01yaleDﻩﻩ;)1,DEL(_lorc_ = DELﻩ} ﻩ} void Delay10ms(unsigned in t c){unsigned chara, b;for(;c〉0;c——){ ﻩfor(b=38;b〉0;b—-){ ﻩﻩ;)-—a;0〉a;031=a(rofﻩ} ﻩ}}实验原理利用头文件中得函数,_cro l_(,), 可以比位操作符更方便得进行 2 2 进制得移位操作, , 比位操作符优越得就是,该函数空位补全时都就是用那个移位移除得数据, , 由此比前一个例子不需要f if 语句重置操作..数码管实验实验现象单个数码管按顺序显示0-9与 A-F。
第一章 DICE-5208K开发型单片机综合实验仪概述一、系统简介DICE-5208K型单片机实验系统由DICE-5208K开发型单片机综合实验箱、DICE-3000型仿真器、扩展卡和DICE-51仿真开发系统软件等组成。
是《MCS-51单片机原理与接口》、《单片机控制技术》、《C8051Fxxx高速SOC单片机原理及应用》、《EDA》、《VHDL硬件描述语言》、《CPLD/FPGA应用基础》等课程教学的配套实验设备。
新增加了几乎所有最实用、新颖的接口电路(如1 WIRE /I2C/SPI总线等)和通讯类接口实验(如USB2.0通讯/TCP/IP网络通讯/CAN总线/红外线收发等)。
可进行MCS-51、C8051F嵌入式单片机、CPLD/FPGA等课程的开放式实验教学。
二、主要特点1.该实验系统配置DICE-3000型高性能MCS-51硬件仿真器,64K数据空间,64K程序空间全部开放,不占用CPU资源,采用双CPU模式,仿真CPU和用户CPU独立运行,上位仿真软件支持汇编、C语言、PL/M语言。
可运行于WIN98/2000/NT/XP操作系统平台。
2.实验系统带有ISP在线下载电路,学生在完成实验后可脱离仿真机和PC机独立运行学生自行设计的单片机系统。
(可在线编程AT89S51/52/53系列单片机)。
3.该实验系统可扩展C8051F020嵌入式实验开发模块, 并配有DICE-EC5型USB高速通讯仿真器,通过4脚的JTAG接口可以进行非侵入式、全速的在线系统调试、仿真;集成开发环境支持Silicon Labs IDE和KEIL C软件。
4.该实验系统可扩展CPLD/FPGA模块,并配有相应的并口下载电路,轻松变成一台EDA实验开发平台。
5.该实验系统可扩展“数控式电子演示装置”,该装置是本公司的专利产品,结合上位演示软件和USB接口,可为该实验系统扩展多达十五个生动、形象、复杂的实验,其中大部分是闭环实验,实验践性非常强。
学生姓名:学号:专业班级:实验类型:□ 验证□ 综合□ 设计□ 创新实验日期:实验成绩:实验一 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.课程设计⽬的 1)巩固单⽚机基础知识,串联知识点。
2)学会绘制PCB板,学会⼿⼯制板的⼀般⽅法。
3)使⽤Protel等EDA⼯具进⾏单⽚机硬件系统设计的能⼒。
4)基于KeilIDE开发单⽚机应⽤程序的能⼒。
5)写技术报告和编制技术资料的能⼒。
6)独⽴⼯作能⼒和创造⼒。
7)综合运⽤专业及基础知识,解决实际⼯程技术问题的能⼒。
2.课程设计题⽬描述和要求 旋转电⼦时钟的设计与制作 实现的功能要求:(1)实现单⽚机最⼩系统;(2)四只LED数码管显⽰当前时分;(3)每隔⼀秒钟周边的60只LED发光管旋转⼀格,装饰⽤的LED每隔⼀秒旋转⼀次;(4)实现整点报时;(5)实现按键调整;(6)停(掉)电保护,年计时误差⼩于30秒;(7)其他功能。
3.课程设计报告内容 3.1⽅案论证 3.1.1单⽚机定时器做电⼦时钟 优点:考虑到单⽚机货源充⾜、价格低廉,可软硬件结合使⽤,能够⽅便的实现系统的多功能性,故采⽤单⽚机作为本设计的硬件基础。
故其优点是外围电路简单,只需要⼀个单⽚机最⼩系统,和⼀个显⽰模块。
缺点:定时不是很准确,计时误差较⼤,并且程序的编写较繁琐。
3.1.2数字电路做电⼦时钟 优点:具有⾛时准确、显⽰直观、⽆机械传动装置。
与传统的机械钟先⽐,电⼦钟具有更优异的优点。
由于电⼦钟采⽤数字集成电路的发展和采⽤了先进的⽯英技术,使电⼦钟具有⾛时准确、性能稳定、携带⽅便等优点,电⼦钟⽤于定时⾃动报警、按时⾃动打铃、时间程序⾃动控制、定时⼴播及⾃动控制等各个领域。
缺点:因为电⼦钟毕竟是电⼦产品,电⼦产品都有辐射,不过电⼦钟危害极低,对⼈体够不成任何危害,不象⼿机的辐射那么⼤。
应⽤:⽬前,在国内,电⼦钟因数码管数字显⽰效⽤直接有效,所以⼤多运⽤在城市的主要营业场所,以及车站、码头等公共场所。
一、实验目的1. 熟悉单片机的硬件组成和基本工作原理。
2. 掌握单片机最小系统的搭建方法。
3. 学习使用单片机编程软件进行程序编写和调试。
4. 通过实际操作,加深对单片机应用的理解。
二、实验环境1. 实验设备:MCS-51单片机实验板、电源模块、面包板、连接线、LED灯、蜂鸣器、按键等。
2. 软件环境:Keil uVision5、Proteus仿真软件。
三、实验内容1. 点亮LED灯(1)实验目的:掌握单片机I/O口的使用,实现LED灯的点亮。
(2)实验步骤:① 将LED灯的阳极连接到单片机的P1.0口,阴极连接到GND。
② 在Keil uVision5中新建工程,编写程序如下:```cvoid main() {while (1) {P1 = 0xFF; // 点亮LED灯delay(500000); // 延时P1 = 0x00; // 熄灭LED灯delay(500000); // 延时}}③ 将程序编译并下载到单片机中,观察LED灯的点亮效果。
2. 蜂鸣器控制(1)实验目的:掌握单片机I/O口的使用,实现蜂鸣器的控制。
(2)实验步骤:① 将蜂鸣器的正极连接到单片机的P1.1口,负极连接到GND。
② 在Keil uVision5中编写程序如下:```cvoid main() {while (1) {P1 = 0x02; // 使能蜂鸣器delay(100000); // 延时P1 = 0x00; // 禁止蜂鸣器delay(100000); // 延时}}```③ 将程序编译并下载到单片机中,观察蜂鸣器的鸣叫效果。
3. 按键扫描(1)实验目的:掌握单片机I/O口的使用,实现按键的扫描和识别。
(2)实验步骤:① 将两个按键分别连接到单片机的P1.2和P1.3口。
② 在Keil uVision5中编写程序如下:void main() {while (1) {if (P1 & 0x04) { // 检测按键1是否按下// 执行按键1按下后的操作}if (P1 & 0x08) { // 检测按键2是否按下// 执行按键2按下后的操作}}}```③ 将程序编译并下载到单片机中,观察按键的扫描和识别效果。
软件实验实验一拆字程序实验一、实验目的:掌握汇编语言设计方法。
二、实验内容:把8000H地址上的内容拆开,高位送8001H地址的低位,低位送8002H地址的低位,8001H、8002H地址的高位清零.本程序通常在把数据送显示缓冲区时使用。
三、实验器材:计算机 1台四、实验步骤:1、按流程图编写程序,以下是通过计算机交叉汇编得到的.LST文件清单,供参考。
2、文件编译连接、装载,用鼠标点击[项目/重建所有目标文件],系统自动进行编译,并弹出信息窗口,若有错误则重新修改再编译;若无错误,点击[调试/启动/停止调试]后进入调试状态。
3、设置观察窗口:(1)用鼠标点击[视图/存储器窗口],在地址栏中输入[0X8000];(2)在8000H中写入数据(任意);(3)单步执行观察寄存器和8000H—8002H的变化。
五、程序框图:七、实验程序(51asm\A8051.ASM);把指定字节的高低位拆开分别存放,多用于显示子程序ORG 0000HMOV DPTR,#8000H ;指定的字节MOVX A,@DPTRMOV B,A ;暂存SWAP A ;交换ANL A,#0FH ;屏敝高位INC DPTRMOVX @DPTR,AINC DPTRMOV A,BANL A,#0FH ;指定字节的内容屏敝高位MOVX @DPTR,ALOOP: SJMP LOOPEND实验二拼字程序实验一、实验目的:1、进一步掌握汇编语言设计;2、熟悉软件调试方法。
二、实验内容:把8000H、8001H两个字节的低位分别送入8002H的高位和低位。
本程序一般用于把显示缓冲区数据取出拼装成一个字节。
三、实验器材:计算机 1台四、实验步骤:1、编写程序并编译成机器代码。
2、用断点或单步方式运行程序,检查8000H-8002H,A,B中內容变化情况。
查看内部RAM、外部RAM、断点运行方式、单步操作等请参阅有关章节。
3、打开AP6264.asm程序(1)文件、编译、连接、装载:点击[项目/重建所有目标文件],系统进行自动编译,并弹出信息窗口,点击[调试/启动/停止调试]进入调试状态。
软件实验实验一拆字程序实验一、实验目的:掌握汇编语言设计方法。
二、实验内容:把8000H地址上的内容拆开,高位送8001H地址的低位,低位送8002H地址的低位,8001H、8002H地址的高位清零.本程序通常在把数据送显示缓冲区时使用。
三、实验器材:计算机 1台四、实验步骤:1、按流程图编写程序,以下是通过计算机交叉汇编得到的.LST文件清单,供参考。
2、文件编译连接、装载,用鼠标点击[项目/重建所有目标文件],系统自动进行编译,并弹出信息窗口,若有错误则重新修改再编译;若无错误,点击[调试/启动/停止调试]后进入调试状态。
3、设置观察窗口:(1)用鼠标点击[视图/存储器窗口],在地址栏中输入[0X8000];(2)在8000H中写入数据(任意);(3)单步执行观察寄存器和8000H—8002H的变化。
五、程序框图:七、实验程序(51asm\A8051.ASM);把指定字节的高低位拆开分别存放,多用于显示子程序ORG 0000HMOV DPTR,#8000H ;指定的字节MOVX A,@DPTRMOV B,A ;暂存SWAP A ;交换ANL A,#0FH ;屏敝高位INC DPTRMOVX @DPTR,AINC DPTRMOV A,BANL A,#0FH ;指定字节的内容屏敝高位MOVX @DPTR,ALOOP: SJMP LOOPEND实验二拼字程序实验一、实验目的:1、进一步掌握汇编语言设计;2、熟悉软件调试方法。
二、实验内容:把8000H、8001H两个字节的低位分别送入8002H的高位和低位。
本程序一般用于把显示缓冲区数据取出拼装成一个字节。
三、实验器材:计算机 1台四、实验步骤:1、编写程序并编译成机器代码。
2、用断点或单步方式运行程序,检查8000H-8002H,A,B中內容变化情况。
查看内部RAM、外部RAM、断点运行方式、单步操作等请参阅有关章节。
3、打开AP6264.asm程序(1)文件、编译、连接、装载:点击[项目/重建所有目标文件],系统进行自动编译,并弹出信息窗口,点击[调试/启动/停止调试]进入调试状态。
(2)用鼠标点击[视图/存储器窗口],在地址栏中输入[0X8000],将地址定位于8000H。
(3)在8000H中写入任意数据,单步执行观察寄存器和数据存储区的变化。
五、程序框图:六、思考问题:修改8000H、8001H内容重复上述实验。
七、实验程序:(51asm\Ap6264.ASM);把两字节的低位合拼成一个字节,多用于显示子程序ORG 0000hMOV DPTR,#8000HMOVX A,@DPTRANL A,#0FH ;屏敝高位SWAP AMOV B,A ;保存INC DPTRMOVX A,@DPTRANL A,#0FHORL A,B ;合拼INC DPTRMOVX @DPTR,A ;送8002H存放LOOP: SJMP LOOPEND硬件基础性实验实验一八段数码管显示实验一、实验目的:1、了解数码管动态显示的原理。
2、了解74LS164扩展端口的方法。
二、实验要求:利用实验仪提供的显示电路,动态显示一行数据。
三、实验器材:1、超想-3000TB综合实验仪 1 台2、KEIL仿真器 1 台3、计算机 1 台四、实验说明:1、本实验仪提供了8段码数码管LED显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。
显示共有6位,采用动态方式显示。
8段数码管是由8155的PB0、PB1经74LS164“串转并”后输出得到。
6位位码由8155的PA0口输出,经uA2003反向驱动后,选择相应显示位。
74LS164是串行输入并行输出转换电路,串行输入的数据位由8155的PB0控制,时钟位由8155的PB1控制输出。
写程序时,只要向数据位地址输出数据,然后向时钟位地址输出一高一低两个电平就可以将数据位移到74LS164中,向显示位选通地址输出高电平就可以点亮相应的显示位。
本实验仪中数据位输出地址为0e102H,时钟位输出地址为0e102H,位选通输出地址为 0e101H。
本实验涉及到了2五、程序框图:六、实验步骤:1、将KEIL 仿真器上40芯排线一端和实验箱上51CPU 板上的40芯排针连接起来,将仿真器连接的USB 或串口线与PC 机对应的USB 或串口连接起来,打开实验箱电源。
2、进入KEIL 软件界面,点击项目/打开项目在C:\KEIL\UV2\3000TB51配套实验例程中选择实验一,内有ASM 和C51两种程序,进入ASM 文件夹打开LED 项目文件进入如图所示界面点击“调试/启动/停止调试”,进入调试界面,点击“调试/运行”可看到8段数码管交替显示0—F七、实验程序:OUTBIT equ 0e101h ; 位控制口是是返回否开始 初始化显示参数 关所有位显示取显示数据 数据移位输出到164输出时钟脉冲到164 8段码完成输出位选通信号延时位选通信号移位指向下一个显示数据6位完成否CLK164 equ 0e102h ; 段控制口(接164时钟位)DAT164 equ 0e102h ; 段控制口(接164数据位)IN equ 0e103h ; 键盘读入口LEDBuf equ 60h ; 显示缓冲Num equ 70h ; 显示的数据DelayT equ 75h ;org 0000hljmp StartLEDMAP: ; 八段管显示码db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h Delay: ; 延时子程序mov r7, #0DelayLoop:djnz r7, DelayLoopdjnz r6, DelayLoopretDisplayLED:mov r0, #LEDBufmov r1, #6 ; 共6个八段管mov r2, #00100000b ; 从左边开始显示Loop:mov dptr, #OUTBITmov a, #00hmovx @dptr, a ; 关所有八段管mov a, @r0mov B, #8 ; 送164DLP:rlc amov r3, amov acc.0, cANL A, #0FDHmov dptr, #DAT164movx @dptr, amov dptr, #CLK164orl a,#02hmovx @dptr, aanl a,#0fDhmovx @dptr, amov a, r3djnz B, DLPmov dptr, #OUTBITmov a, r2movx @dptr, a ; 显示一位八段管mov r6, #1call Delaymov a, r2 ; 显示下一位rr amov r2, ainc r0djnz r1, Loopmov dptr, #OUTBITmov a, #0movx @dptr, a ; 关所有八段管retStart: mov dptr,#0e100hmov a,#03hmovx @dptr,amov sp, #40hmov Num, #0MLoop:inc Nummov a, Nummov b, amov r0, #LEDBufFillBuf:mov a, banl a, #0fhmov dptr, #LEDMapmovc a, @a+dptr ; 数字转换成显示码mov @r0,a ; 显示在码填入显示缓冲inc r0inc bcjne r0, #LEDBuf+6, FillBufmov DelayT,#30DispAgain:call DisplayLED ; 显示djnz DelayT,DispAgainljmp MLoopEND实验二键盘扫描显示实验一、实验目的:1、掌握键盘和显示器的接口方法和编程方法。
2、掌握键盘扫描和LED八段数码管显示器的工作原理。
二、实验要求:在上一个实验的基础上,利用实验仪提供的键盘扫描电路和显示电路,做一个扫描键盘和数码显示实验,把按键输入的键码在六位数码管上显示出来。
实验程序可分成三个模块。
1、键输入模块:扫描键盘、读取一次键盘并将键值存入键值缓冲单元。
2、显示模块:将显示单元的内容在显示器上动态显示。
3、主程序:调用键输入模块和显示模块。
三、实验器材:1、超想-3000TB 综合实验仪1台2、KEIL 仿真器 1台3、计算机1 台 四、实验电路:这里只是键盘草图,详细原理参见“8155键显模块”。
五、实验说明:本实验仪提供了一个6×4的小键盘,向列扫描码地址(0e101H)逐列输出低电平,然后从行码地址(0e103H)读回,如果有键按下,则相应行的值应为低,如果无键按下,由于上拉的作用,行码为高.这样就可以通过输出的列码和读取的行码来判断按下的是什么键。
在判断有键按下后,要有一定的延时,防止键盘抖动。
列扫描码还可以分时用作LED 的位选通信号。
六、实验框图:主程序框图读键输入子程序框图显示程序框图见上个实验列码(0e101H)行码 (0e103H) 显示缓冲区初始化LED 显示 读取键值键值转换为显示数据有键输入? 否是 否是否开始输出列扫描信号列扫描信号移位该列有键输入?读入行信号6列扫描完?初始化地址参数按照行列计算键值查表得键码等待键盘释放返回七、实验程序:;键盘扫描实验OUTBIT equ 0e101h ; 位控制口CLK164 equ 0e102h ; 段控制口(接164时钟位)DAT164 equ 0e102h ; 段控制口(接164数据位)IN equ 0e103h ; 键盘读入口ORG 0000HLJMP STAR;========================================================================== KEY1: MOV 13H,#06HMOV 12H,#20HKEY2: MOV A,12HCPL AMOV R7,AMOV DPTR,#0E101HMOV A,R7MOVX @DPTR,AMOV A,12HCLR CRRC AMOV 12H,AMOV DPTR,#0E103HMOVX A,@DPTRMOV R7,AMOV A,R7CPL AMOV R7,AMOV A,R7ANL A,#0FHMOV 14H,ADEC 13HMOV R7,13HMOV A,R7JZ KEYDISMOV A,14HJZ KEY2KEYDIS: MOV A,14HJZ TESTKEY5MOV A,13HADD A,ACCADD A,ACCMOV 13H,AMOV A,14HJNB ACC.1,TESTKEYINC 13HSJMP TESTKEY2;;=================================================;键盘扫描TESTKEY: MOV A,14HJNB ACC.2,TESTKEY1INC 13HINC 13HSJMP TESTKEY2TESTKEY1: MOV A,14HJNB ACC.3,TESTKEY2MOV A,#03HADD A,13HMOV 13H,ATESTKEY2: MOV DPTR,#0E101HCLR AMOVX @DPTR,ATESTKEY3: MOV R7,#0AHLCALL MLOOPLCALL MLOOP4MOV A,R7JNZ TESTKEY3MOV R7,13HMOV A,R7MOV DPTR,#0134HMOVC A,@A+DPTRMOV R7,ARET;========================================================================== TESTKEY4: DB 22H ;";========================================================================== TESTKEY5: MOV R7,#0FFHRET;========================================================================== GETKEY: MOV 10H,#20HMOV 0EH,#00HGETKEY1: MOV A,0EHCLR CSUBB A,#06HJNC GOON2MOV DPTR,#0E101HCLR AMOVX @DPTR,AMOV R7,0EHMOV A,#08HADD A,R7MOV R0,AMOV A,@R0MOV R7,AMOV 11H,R7MOV 0FH,#00HGETKEY2: MOV A,0FHJNC GOON1MOV A,11HJNB ACC.7,KLOOPMOV DPTR,#0E102HMOV A,#01HMOVX @DPTR,ASJMP KLOOP1;;========================================== KLOOP: MOV DPTR,#0E102HCLR AMOVX @DPTR,AKLOOP1: MOV DPTR,#0E102HMOVX A,@DPTRMOV R7,AMOV A,R7ORL A,#02HMOV R7,AMOV A,R7MOVX @DPTR,AMOV DPTR,#0E102HMOVX A,@DPTRMOV R7,AMOV A,R7ANL A,#0FDHMOV R7,AMOV A,R7MOVX @DPTR,AMOV A,11HADD A,ACCMOV 11H,AINC 0FHSJMP GETKEY2GOON1: MOV DPTR,#0E101HMOV A,10HMOVX @DPTR,AMOV R7,#01HLCALL MLOOPMOV A,10HCLR CRRC AMOV 10H,AINC 0EHSJMP GETKEY1GOON2: RET;========================================================================== WAIT: MOV DPTR,#0E100HMOV 08H,#0FFHMOV 09H,#0FFHMOV 0AH,#0FFHMOV 0BH,#0FFHMOV 0CH,#00HMOV 0DH,#00HWAIT1: LCALL GETKEYLCALL MLOOP4MOV A,R7JZ WAIT1LCALL KEY1MOV R6,#00HMOV R6,#00HMOV A,R7ANL A,#0FHMOV R7,AMOV A,#24HADD A,R7MOV DPL,AMOV A,#01HADDC A,R6MOV DPH,ACLR AMOVC A,@A+DPTRMOV R7,AMOV 0DH,R7SJMP WAIT1RET;========================================================================== TAB:Q0124: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H ;?.[Ofm}.Q012C: DB 7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 71H ;•ow|9^yqQ0134: DB 00H, 01H, 04H, 07H, 0FH, 02H, 05H, 08H ;........Q013C: DB 0EH, 03H, 06H, 09H, 0DH, 0CH, 0BH, 0AH ;........Q0144: DB 10H, 11H, 12H, 13H, 14H, 15H, 16H ;.......;========================================================================== MLOOP: MOV 15H,R7MLOOP1: MOV R7,15HDEC 15HMOV A,R7JZ MLOOP3MOV 16H,#64HMLOOP2: MOV A,16HJZ MLOOP1DEC 16HSJMP MLOOP2MLOOP3: RET;==========================================================================MLOOP4: MOV DPTR,#0E101HCLR AMOVX @DPTR,AMOV DPTR,#0E103HMOVX A,@DPTRMOV R7,AMOV A,R7CPL AMOV R7,AMOV A,R7ANL A,#0FHMOV R7,ARET;==========================================================================STAR: MOV R0,#7FHCLR ASTAR1: MOV @R0,ADJNZ R0,STAR1MOV SP,#16HLJMP WAITEND;==================================================================实验三步进电机控制实验一、实验目的:了解步进电机工作原理,掌握用单片机的步进电机控制系统的硬件设计方法,熟悉步进电机驱动程序的设计与调试,提高单片机应用系统设计和调试水平。