单片机数字量输入输出实验

合集下载

单片机数字量输入输出实验

单片机数字量输入输出实验

一、实验目的1.熟悉教学板电路及其结构。

2.掌握利用μVision C51 软件编辑、调试(包括仿真调试、单步调试)、运行单片机程序的步骤和方法,掌握利用STC-ISP V39软件和下载线将程序写入单片机的方法。

3.通过实验熟悉51单片机的并行I/O口,并掌握它们的应用。

4.掌握矩阵键盘、LED动态显示的工作原理。

二、实验设备PC机一台、实验教学板一块。

三、实验内容1.实验线路如附图所示,51单片机的P0口输出接8个发光二极管的阴极,P2.4经NPN 三极管9011控制发光管的阳极。

P3口支持一个8位行列式键盘,其中P3.4~P3.7供键盘扫描输出,P3.2、P3.3作键盘扫描输入。

实验要求:编程实现键盘对发光二极管的控制,每按一个按键,使对应的二极管点亮。

2.51单片机P0口输出同时接4个数码管的阴极,P2.0~P2.3,经NPN三极管9011接数码管的阳极,该端口用于分别控制相应数码管的导通。

实验要求:编程实现对任意按键动作的次数进行计数(最大99次),同时将计数值实时显示。

四、实验步骤1.将实验板与PC机通过COM口连接。

启动PC机,进入μVision软件环境,选择建立新工程文件,即可开始输入源程序。

2.完成汇编、编译、连接,若有错误,则修改源程序,直至编译、连接通过为止。

3.接上实验板上的电源。

4.运行“STC-ISP V39.EXE”,将程序代码下载到实验板的单片机中。

操作的顺序是:1)选择单片机(MCU TYPE)型号。

如:“STC89C51RC”要与实验板上所装单片机的型号一至。

2)打开文件(Open File)。

即把要下载到单片机的程序文件(已通过编译了的机器码文件——二进制(.Bin)或十六进制(.Hex)的)调到“文件缓冲区”,这时可看到右边的“文件缓冲区”有数字变化。

3)选择串行通信口。

选对时,软件上的小灯会变绿。

否则小灯是灰色。

且在左下窗口提示“出错信息”。

4)下载:按“Download/下载”按键下载。

单片机P1口输入输出实验

单片机P1口输入输出实验

单片机P1口输入输出实验
单片机可靠的复位是保证单片机正常运行的关键因素。 因此,在设计复位电路时,通常要使RST引脚保持10ms以上 的高电平。当RST从高电平变为低电平之后,单片机就从 0000H地址开始执行程序。本电路是上电自动复位。 将8个LED接在单片机P1端口的P1.0-P1.7引脚上,注意 LED有长短两个引脚,分别表示正负极,其中较短的负极接 单片机,较长的为正极,通过限流电阻R与Vcc相连。 本实验只需将8个LED与P1口相连。单片机的P0、P1、 P2、P3端口都可以用来控制LED。(反过去再看设备)
单片机I/O口输入输出实验 (或单片机数字量输入输出实验)
单片机P1口输入输出实验
实验重点:硬件设计、程序设计、现象分析 实验难点:实际应用
指导教师:刘美俊 李世军
单片机P1口输入输出实验
单片机端口是集数据输入缓冲、数据输出驱动 及锁存等多项功能一体I/O的电路,特别是把握它 准双向、多功能的特点。单片机4个并行端口是P0、 P1、P2、P3。本实验只讨论P1端口。
8、思考题
1)说明单片机各个引脚的功能及作用,比较P0,P3端口的异同? 2)时钟周期、机器周期的关系是什么?在单片机外部晶振为12M时,下面 的延时子程序延时了多少时间?当晶振为6M时呢? DELAY: MOV R5,#08H DL1: MOV R6,#00H DL2: MOV R7,#80H DJNZ R7,$ DJNZ R6,DL2 DJNZ R5,DL1 RET
单片机4个并行端口P0、P1、P2、P3有着不同 的结构特点和功用。
单片机P1口输入输出实验
4、硬件设计
89C51
C1 C2
图2 P1口某一I/O口线反转输出电路
单片机P1口输入输出实验

单片机STM32实验报告

单片机STM32实验报告

实验报告课程名称:单片微机原理与车载系统学生姓名蒋昭立班级电科1601学号***********指导教师易吉良成绩2018年12 月17 日实验1 GPIO实验1.1 实验目的1)熟悉MDK开发环境;2)掌握STM32单片机的GPIO使用方法。

1.2 实验设备1)一台装有Keil和串口调试软件的计算机;2)一套STM32F103开发板;3)STlink硬件仿真器。

1.3 基本实验内容1)熟悉MDK开发环境,参考《STM32F1开发指南(精英版)-寄存器版本_V1.0》第3章,安装MDK 并新建test工程,运行例程,在串口窗宽观察结果,并记录如下:从图片可以看出,例程运行成功,没有错误。

2)按键输入实验,《STM32F1开发指南(精英版)-寄存器版本_V1.0》第8章。

实现功能:3 个按钮(KEY_UP、KEY0和KEY1),来控制板上的2 个LED(DS0 和DS1)和蜂鸣器,其中KEY_UP 控制蜂鸣器,按一次叫,再按一次停;KEY1 控制DS1,按一次亮,再按一次灭;KEY0 则同时控制DS0 和DS1,按一次,他们的状态就翻转一次。

理解连续按概念及其实现代码。

参数mode 为0 的时候,KEY_Scan 函数将不支持连续按,扫描某个按键,该按键按下之后必须要松开,才能第二次触发,否则不会再响应这个按键,这样的好处就是可以防止按一次多次触发,而坏处就是在需要长按的时候比较不合适。

当mode 为1 的时候,KEY_Scan 函数将支持连续按,如果某个按键一直按下,则会一直返回这个按键的键值,这样可以方便的实现长按检测。

寄存器方法实现不支持连续按的关键代码,以及程序运行后的效果。

由程序可知,给KEY_Scan函数输入的值为0,为不支持连按模式。

寄存器方法实现支持连续按的关键代码,以及程序运行后的效果。

由程序可知,给KEY_Scan函数输入的值为1,为支持连按模式。

3)采用库函数方法实现按键输入实验,参考《STM32F1开发指南(精英版)-库函数版本_V1.0》第8章。

单片机核心板实验指导书

单片机核心板实验指导书

实验一独立键盘实验一、实验目的1.学习独立键盘的使用方法。

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

二、实验说明本实验提供了4个按键的小键盘,如果有键按下,则相应输出为低电平,否则输出为高电平。

MCU判断有键按下后,要有一定的延时,防止由于键盘抖动而引起误操作。

编写一个程序,能读出键盘操作的编号,并在数码显示器上显示。

三、实验内容及步骤实验时把AT89S52插到40P锁紧座中,以下不再说明。

1.独立键盘的接口接P1口,P0,P3(S2,S3拨到ON的位置)分别接动态显示的段码、位码口S10的1-4位拨到ON的位置,拨码开关S1打到ON的位置,其他都打到关的位置。

2.用软件将“…\程序\ KEY”文件夹下的“4KEY.hex”下载到单片机中(运行程序,按动键盘,则LED相应显示键码。

四、源程序(光盘中附带)实验二动态扫描显示实验一、实验目的1.掌握数字、字符转换成显示段码的软件译码方法2.动态显示的原理和相关程序的编写二、实验说明动态显示,也称扫描显示。

显示器由8个共阴极数码管构成。

单片机的P0口输出显示段码;P3口输出位码。

三、实验内容及步骤单片机P0输出段码,P3口输出位控码,输出8个字符。

1.S1、S2、S3都打到ON的位置其他开关打到关的位置2.用软件将“…\程序\6LED.hex”文件夹下的“6LED.hex.hex”下载到单片机中。

3.运行程序,LED相应显示“543210”。

四、流程图及源程序(程序光盘中附带)1.流程图五、源程序(光盘中附带)实验三RS232串行口通信实验一、实验目的1.了解8051串行口的工作原理以及发送的方式2.了解PC机通讯的基本要求二、实验说明8051串行口经RS232电平转换后,与PC机串行口相连。

PC机使用串口调试应用程序V2.2.exe,实现上位机与下位机的通讯。

本实验使用查询法接收和发送资料。

上位机发出指定字符,下位机收到后返回原字符。

波特率设为4800。

三、实验内容及步骤1.插上核心板,核心板的S4、S8打到ON的位置,其他都打到关的位置。

数字量输入输出实验

数字量输入输出实验

数字量输入输出实验一、实验目的了解P1口作为输入输出方式使用时,CPU 对P1口的操作方式。

二、实验环境1、软件环境要求Windows XP操作系统以及Keil C51 单片机集成开发环境。

2、硬件环境要求电脑一台,TD-51单片机系统,开关及LED显示单元,单次脉冲单元。

三、实验内容编写实验程序,将P1口的低4位定义为输出,高4位定义为输入,数字量从P1口的高4位输入,从P1口的低4位输出控制发光二极管的亮灭。

提高部分:LED灯控制要求:通过KK1实现LED灯工作方式即时控制,完成LED灯左循环、右循环、间隔闪烁功能。

四、实验分析P1口是8位准双向口,每一位均可独立定义为输入输出,输入位置1。

通过A的左/右移位及赋值55H、0AAH,再将A值送入P1,可实现LED灯左循环、右循环、间隔闪烁功能。

五、实验步骤(一)基础实验程序及实验程序流程图如下。

实验程序:ORG 0000HLJMP MAINORG 0100HMAIN:MOV P1,#0F0H ;将开关状态送入P1高位MOV A,P1 ;送入ASWAP A ;高低位互换MOV P1,A ;将开关状态送入P1低位JMP MAIN ;循环SJMP $END程序流程图:图1 LED开关控制显示功能图图2 实验接线图实验步骤:1. 按图2所示,连接实验电路图,图中“圆圈”表示需要通过排线连接;2. 编写实验程序,编译链接无误后进入调试状态;3. 运行实验程序,观察实验现象,验证程序正确性;4. 按复位按键,结束程序运行,退出调试状态;5. 自行设计实验,验证单片机其它IO 口的使用。

(二)提高实验程序及实验程序流程图如下。

实验程序:实验程序流程图:ORG 0000HLJMP MAINORG 0100HMAIN:KT: ;检查KK1SETB P3.3JNB P3.3,KTCLR P3.3LL1: ;左循环MOV A,#01HX1:MOV P1,ACALL DELAYRL ASETB P3.3JNB P3.3,X1CLR P3.3LL2: ;右循环MOV A,#80HX2:MOV P1,ACALL DELAYRR ASETB P3.3JNB P3.3,X2CLR P3.3LL3: ;间隔闪烁MOV A,#55HMOV P1,ACALL DELAYMOV A,#0AAHMOV P1,ACALL DELAYSETB P3.3JNB P3.3,LL3CLR P3.3JMP KTDELAY: ;延时子程序MOV R2,#00H图3 实验流程图MOV R3,#00HABC:DJNZ R2,ABCDJNZ R3,ABCRETSJMP $END实验步骤:(1)按图4连接实验电路;(2)编写实验程序,编译、链接无误后启动调试;(3)运行实验程序,每按一次KK1+,观察实验现象;(4)验证程序功能,实验结束按复位按键退出调试。

单片机实验报告

单片机实验报告

单片机实验报告班级: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个灭。

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

单片机STM32实验报告

单片机STM32实验报告

实验报告课程名称:单片微机原理与车载系统学生姓名蒋昭立班级电科1601学号16401700119指导教师易吉良成绩2018年12 月17 日实验1 GPIO实验1.1 实验目的1)熟悉MDK开发环境;2)掌握STM32单片机的GPIO使用方法。

1.2 实验设备1)一台装有Keil和串口调试软件的计算机;2)一套STM32F103开发板;3)STlink硬件仿真器。

1.3 基本实验内容1)熟悉MDK开发环境,参考《STM32F1开发指南(精英版)-寄存器版本_V1.0》第3章,安装MDK 并新建test工程,运行例程,在串口窗宽观察结果,并记录如下:从图片可以看出,例程运行成功,没有错误。

2)按键输入实验,《STM32F1开发指南(精英版)-寄存器版本_V1.0》第8章。

实现功能:3 个按钮(KEY_UP、KEY0和KEY1),来控制板上的2 个LED(DS0 和DS1)和蜂鸣器,其中KEY_UP 控制蜂鸣器,按一次叫,再按一次停;KEY1 控制DS1,按一次亮,再按一次灭;KEY0 则同时控制DS0 和DS1,按一次,他们的状态就翻转一次。

理解连续按概念及其实现代码。

参数mode 为0 的时候,KEY_Scan 函数将不支持连续按,扫描某个按键,该按键按下之后必须要松开,才能第二次触发,否则不会再响应这个按键,这样的好处就是可以防止按一次多次触发,而坏处就是在需要长按的时候比较不合适。

当mode 为1 的时候,KEY_Scan 函数将支持连续按,如果某个按键一直按下,则会一直返回这个按键的键值,这样可以方便的实现长按检测。

寄存器方法实现不支持连续按的关键代码,以及程序运行后的效果。

由程序可知,给KEY_Scan函数输入的值为0,为不支持连按模式。

寄存器方法实现支持连续按的关键代码,以及程序运行后的效果。

由程序可知,给KEY_Scan函数输入的值为1,为支持连按模式。

3)采用库函数方法实现按键输入实验,参考《STM32F1开发指南(精英版)-库函数版本_V1.0》第8章。

实验二D/A转换实验

实验二D/A转换实验

&实验二D/A转换实验一、实验目的1. 理解D/A转换芯片0832与单片机接口及编程方法。

2. 了解D/A转换的基本原理。

3. 了解单片机系统中扩展D/A转换的基本方法。

二、实验原理及内容1.实验原理DAC0832内部具有输入寄存器和DAC寄存器两级数据寄存器,它不需要外加其它电路便可以与单片机的数据总线相连。

DAC0832引脚说明如下:D0~D7:8位数据输入。

I out1和I out2:DAC电流输出1和DAC电流输出2,I out1和I out2之和为一常量。

R FB:反馈信号输入端。

DAC0832的输出是电流型的,为了取得电压输出需在电压输出端接运算放大器,R FB即为运算放大器的反馈电阻端。

反馈电阻在片内。

ILE:允许输入锁存信号。

1WR:锁存输入数据的写信号和锁存输入寄存器输出数据的写信号。

WR和2XFER:传送控制信号。

CS:片选信号。

DAC0832输出是电流型的,但实际应用中往往需要电压输出信号,所以电路中采用运算放大器来实现电流转换为电压。

本实验系统上,采用参考电压为5V,所以当数字量输入在00H~FFH范围时电压输出量为0~+5V,这种方式称单极型输出,若电压输出为±5V,则称为双极型输出。

实际应用中需要单极性输出,也需要双极型输出,所以电路应用两片运放LM741来实现两种极性的输出。

实验系统中原理图如图8-2所示。

DAC0832与单片机接口:0832的D0~D7接单片机P0口;DAC0832的片选接单片机的P2.7,为了避免模块之间的冲突,P2.7通过跳线J505与DAC0832相连。

DAC0832的WR信号接单片机的写信号WR,U506和U507是单运放LM741完成电流到电压和正负电压的转换。

单片机对DAC0832控制过程:使能CS 、XFER ,向寄存器中写入需转换数据。

2.实验内容1)将扩展板的电源J501与主板的电源接口J2或J14连接起来;将扩展板的信号接口J500与主板的信号接口J15或J13连接起来;将主板上的拨码开关5、6、7、8拨到ON ;2)在keil 编程环境下编写程序,完成实验功能。

单片机输入和输出

单片机输入和输出

2. 状态信息 输入设备的“准备就绪”,输出设备的“忙”信号等。CPU根据外设的状态, 决定是否输入或输出数据。
3.控制信息 控制信息是在传选过程中.CPU发送给外设的命令.用于控制外设的工作。 例如,控制设备的起停
7.1.3
I/O端口的地址分配
首先清楚I/O接口(Interface)和I/O端口(Port)的概念。
扩展I/O口与外部RAM统一编址 使用同样的指令MOVX访问 注意控制总线RD/WR的接法
7.2 微型机与外设之间的数据传送方式 微型机与外设之间的数据传送方式可归纳为三种:程序传送、中断传送和 DMA传送。 7.2.1 程序传送 不是传送程序 程序传送,是指CPU与外设之间的数据传送在程序控制下进行的一种方式, 它又分为无条件传送和条件传送两种。 1.同步传送方式(无条件传送) 当外设速度和单片机的速度相比拟时,常采用同步传送方式,最典型的同 步传送就是单片机和外部数据存储器之间的数据传送。 适用于对简单的I/O设备(如开关、LED显示器、继电器等)的操作,或 者I/O设备的定时固定或已知的场合。 2.查询传送方式(条件传送,异步式传送) 查询外设“准备好”后,再进行数据传送。 优点:通用性好,硬件连线和查询程序十分简单, 缺点:效率不高。 为提高效率,通常采用中断传送方式。
(2)模拟量 当微型机用于控制、检测或数据采集时.大量的现场信息是连续变化的物理量 (如温度、压力、流量.位移等).这些物理量经过传感器变换成电量,并经放大 得到模拟电压或电流.这些模拟量必须再经过A/D转换后.把它们变成数字量 才能输入计算机。计算机的输出也必须先经过D/A转换,把数字量变成模拟量 后再控制执行机构。
3.信息转换
4.通信联络
7.1.2 I/O接口的构成

实验三P3.3口输入、P1口输出实验

实验三P3.3口输入、P1口输出实验

实验三 4.1 P3.3口输入、P1口输出实验系别专业:电子系12级电信2班学号:3121003210姓名:李书杰指导老师:刘志群老师4.1.1 实验要求1. 复习Keil C51调试硬件的操作方法。

2. 复习单片机作为通用I/O口的注意事项。

3. 复习单片机操作I/O口的程序设计方法。

4.1.2 实验设备PC 机一台,TD-NMC+教学实验系统4.1.3 实验目的1. 熟悉单片机仿真实验软件Keil C51调试硬件的方法。

2. 了解P3、P1口作通用I/O口的使用方法。

3. 掌握延时子程序的编写和使用方法。

4. 了解单片机对简单I/O的扩展方法。

4.1.4 实验内容实验1根据TD-NMC+实验平台的单元电路,构建一个硬件系统,并编写实验程序实现如下功能:将P1口的低4位定义为输出,高4位定义为输入,数字量从P1口的高4位输入,从P1口的低4位输出控制发光二极管的亮灭。

程序如下:KEY:MOV P1,#0F0H ;令所有行为低电平KEY1:MOV R7,#0FFH ;设置计数常数DJNZ R7,KEY1 ;延时MOV A, P1 ;读取P1口的列值ANL A,#0F0H ;判别有键值按下吗?CPL A ;求反后,有高电平就有键按下JZ EKEY ;无键按下时退出LCALL DEL20 ms ;延时20 ms去抖动SKEY:MOV A,#00 ;下面进行行扫描,1行1行扫MOV R0,A ;R0作为行计数器,开始为0MOV R1,A ;R1作为列计数器,开始为0MOV R3 #0FEH ;R3暂存行扫描字,低4位为行扫描字SKEY2:MOV A,R3MOV P1,A ;输出行扫描字,高4位全1NOPNOPNOPMOV A,P1 ;读列值MOV R1,A ;暂存列值ANL A,#0F0H ;取列值CPL A ;高电平则有键闭合S123:JNZ SKEY3 ;有键按下转SKEY3INC R0 ;行计数器加1SETB C ;准备将行扫描左移1位,;形成下一行扫描字,C=1保证输出行扫描字中高4位全为1,;为列输入作准备,低4位中只有1位为0MOV A,R3 ;R3带进位C左移1位RLC AMOV R3,A ;形成下一行扫描字→R3MOV A,R0CJNE A,#04H,SKEY1 ;最后一行扫(4次)完了吗?EKEY:RET;列号译码SKEY3:MOV A,R1JNB ACC.4,SKEY5JNB ACC.5,SKEY6JNB ACC.6,SKEY7JNB ACC.7,SKEY8AJMP EKEYSKEY5:MOV A,#00HMOV R2,A ;存0列号AJMP DKEYSKEY6:MOV A,#01HMOV R2,A ;存1列号AJMP DKEYSKEY7:MOV A,#02HMOV R2,A ;存2列号AJMP DKEYSKEY8:MOV A,#03HMOV R2,A ;存3列号AJMP DKEY;键位置译码DKEY:MOV A,R0 ;取行号ACALL DECODEAJMP EKEY;键值(键号)译码DECODE:MOV A,R0 ;取行号送AMOV B,#04H ;每一行按键个数MUL AB ;行号×按键数ADD A,R2 ;行号×按键数+列号=键值RET实验2根据TD-NMC+实验平台的单元电路,构建一个硬件系统,并编写实验程序实现如下功能:将P3.3口作状态输入口(接一个逻辑开关,即拨码开关),P1口做输入口(接八只发光二极管D0~D7)。

实验六 单片机DA输出实验

实验六 单片机DA输出实验

实验五单片机DA输出实验一、实验目的1、了解D/A转换的基本原理。

2、了解D/A转换芯片0832的性能及编程方法。

3、了解单片机系统中扩展D/A转换的基本方法。

二、实验说明利用DAC0832,编制程序产生锯齿波、三角波、正弦波。

三种波轮流显示,用示波器观看。

三、实验仪器计算机伟福实验箱(lab2000P )示波器四、实验内容1、D/A转换是把数字量转换成模拟量的变换,实验台上D/A电路输出的是模拟电压信号。

要实现实验要求,比较简单的方法是产生三个波形的表格,然后通过查表来实现波形显示。

2、产生锯齿波和三角波的表格只需由数字量的增减来控制,同时要注意三角波要分段来产生。

要产生正弦波,较简单的方法是造一张正弦数字量表。

即查函数表得到的值转换成十六进制数填表。

D/A转换取值范围为一个周期,采样点越多,精度越高些。

本例采用的采样点为256点/周期。

3、8位D/A转换器的输入数据与输出电压的关系为U(0∽-5V)=Uref/256×NU(-5V∽+5V)=2·Uref/256×N-5V(这里Uref为+5V)五、思考题1、改变输出波形的周期和幅度,缩小或者提高;2、程序改为查表方式输出;如何计算出数据表;六、源程序修改原理及其仿真结果思考题一:改变输出波形的周期和幅度,缩小或者提高CS0832 equ 0a000hSTART: MOV A, #00HMOV DPTR, CS0832 ; 0832 的地址送DPTRMOV R1, #64H; 台阶数为64LP: MOVX @DPTR, A ; 送数据至0832CALL DELAY ; 1 ms延时DJNZ R1, NEXT ; 不到10 台阶转移SJMP START ; 产生下一个周期NEXT: ADD A, #20 ; 台阶增幅CALL DELAYSJMP LP ; 产生下一台阶DELAY: MOV 20H, #249 ; 1 ms延时程序上述程序修改了三处,第一,台阶数,当台阶数较多且每个台阶的持续时间减小时输出波形更平滑,更接近钜齿波;第二,台阶增幅,台阶数和台阶增幅都能影响输出波形的振幅,且都与振幅成正比关系,即其他不变台阶数增多振幅增大或者其他不变台阶增幅增大振幅也增大;第三,增加延时,在台阶增幅和产生下一台阶之间增加延时,可以改变钜齿波的周期。

单片机原理实验报告

单片机原理实验报告

实验一:系统认识实验一、设计目的:1. 学习 Keil C51 集成开发环境的操作;2. 熟悉 TD-51 系统板的结构及使用。

二、设计内容:编写程序,将 00H~0FH 共 16 个数写入单片机内部 RAM 的 30H~3FH 空间。

三、设计步骤:1. 创建 Keil C51 应用程序(1)运行 Keil C51 软件,进入 Keil C51 集成开发环境。

(2)选择工具栏的 Project 选项,弹出下拉菜单,选择 NewProject 命令,建立一个新的μVision2 工程。

这时会弹出文件保存对话框,选择工程目录并输入文件名 Asm1 后,单击保存。

(3)工程建立完毕后,μVision2 会马上弹出器件选择窗口。

器件选择的目的是告诉μVision2 使用的 80C51 芯片的型号是哪一个公司的哪一个型号,不同型号的 51 芯片内部资源是不同的。

此时选择 SST 公司的 SST89E554RC。

(4)到此建立好一个空白工程,现在需要人工为工程添加程序文件,如果还没有程序文件则必须建立它。

选择工具栏的 File 选项,在弹出的下拉菜单中选择 New 目录。

(5)输入程序,完毕后点击“保存”命令保存源程序,将 Text1 保存成Asm1.asm。

Keil C51 支持汇编和 C 语言,μVision2 会根据文件后缀判断文件的类型,进行自动处理,因此保存时需要输入文件名及扩展名.ASM 或.C。

保存后,文件中字体的颜色会发生一定变化,关键字会变为蓝色。

(6)程序文件建立后,并没有与 Asm1.Uv2 工程建立任何关系。

此时,需要将 Asm1.asm 源程序添加到 Asm1.Uv2 工程中,构成一个完整的工程项目。

在Project Window 窗口内,选中Source Group1 点击鼠标右键,选择 Add Files to Group‘Source Group1’命令,此时弹出添加源程序文件对话框,选择文件Asm1.asm,点击 Add 命令按钮即可将源程序文件添加到工程中。

单片机实验报告范文

单片机实验报告范文

单片机实验报告范文单片机(Microcontroller)是指一种封装了微处理器(Microprocessor)、存储器和各种输入输出接口电路功能的集成电路。

单片机在电子设计与开发中有广泛应用,可以用于控制和监测各种系统和设备。

本实验报告将介绍在实验中使用单片机所进行的实验步骤和实验结果。

实验目的:1.理解单片机的基本工作原理和功能。

2.掌握单片机的编程和调试方法。

3.应用单片机实现简单的控制功能。

实验仪器和材料:1.单片机开发板2.计算机B数据线4.电源适配器5.LED灯6.麦克风模块7.温度传感器实验步骤:1.准备工作:将单片机开发板与计算机连接,接通电源适配器。

2.熟悉开发工具:安装单片机开发软件,并了解软件的基本功能。

3.学习编程语言:了解单片机的编程语言,例如C语言或汇编语言,并编写简单的程序。

4.硬件连接:将LED灯、麦克风模块和温度传感器连接至开发板的相应引脚。

5.编程实现:根据实验要求,编写相应的程序,控制LED灯、获取麦克风模块的声音信号或获取温度传感器的温度值。

7.实验结果:根据实验要求,记录LED灯的亮灭状态、麦克风模块的声音信号强度或温度传感器的温度数值。

实验结果:通过实验,我们成功地控制了LED灯的亮灭状态,获取了麦克风模块的声音信号强度和温度传感器的温度数值。

在编程实现过程中,我们学会了使用单片机编程语言,了解了一些常用的语法和函数。

在调试测试中,我们可以通过相关的输出或显示结果来判断程序的正确性,及时发现和修复错误。

实验总结:本实验通过单片机开发板和相应的硬件以及编程实现了简单的控制和监测功能。

通过实验,我们深入了解了单片机的基本工作原理和功能,并掌握了一些基本的编程和调试方法。

实验结果表明,我们成功实现了实验要求,并对单片机的应用有了更加深入的理解。

通过这次实验,我们不仅提高了动手实践能力,也增加了对科技发展的看法。

单片机实训模拟量输入输出设计与实现

单片机实训模拟量输入输出设计与实现
单片机具有强大的控制功能,广泛应用于智能 仪表、工业自动化、智能家居等领域。
单片机可以通过编程实现各种数字和模拟信号 的处理和控制,具有灵活性和可编程性。
单片机的应用领域
智能仪表
01
单片机可以用于实现各种仪表的智能化,如温度计、压力计、
流量计等。
工业自动化
02
单片机可以用于控制各种工业设备的运行,如电机、阀门、灯
光等。
智能家居
03
单片机可以用于实现家居智能化,如智能照明、智能安防、智
能家电等。
单片机的发展历程
单片机的起源
单片机的发展可以追溯到20世纪70年代,当时出现了一 些简单的集成电路芯片,集成了少量的逻辑门电路,可以 用于简单的控制和计算。
8位单片机的普及
8位单片机是目前应用最广泛的单片机类型,它们具有丰 富的外设接口和强大的计算能力,可以满足各种应用需求 。
02 03
单片机
对数字信号进行处理和控制。
显示模块
将液位值实时显示出来,并设定液位 上下限,当液位超过或低于设定值时, 触发报警。
05
04
执行机构
根据单片机输出的控制信号,驱动电 动阀或水泵等执行机构,调节液位高 度。
06 总结与展望
单片机在模拟量输入输出方面的优势与局限性
低成本
单片机价格相对较低,适合于需要大量使用模拟量输入输出 功能的项目。
根据单片机型号和需求,设计合适的输出驱动电 路,包括功率放大、信号调制等部分。
数字模拟转换
利用DAC(数模转换器)将数字信号转换为模拟 信号,满足输出信号的精度和稳定性要求。
输出控制与调节
将转换后的模拟信号进行控制和调节,实现与外 部设备的通信和控制。

《单片机技术》实验(2022级自动化1201~02电气1201~02)教案

《单片机技术》实验(2022级自动化1201~02电气1201~02)教案

《单片机技术》实验(2022级自动化1201~02电气1201~02)教案课程教案课程名称:单片机技术实验任课教师:王韧所属院部:电气与信息工程学院教学班级:自动化1201~02、电气1201~02教学时间:2022—2022学年第二学期湖南工学院课程基本信息湖南工学院教案用纸实验一数据传送实验一、本次实验主要内容1、Keil软件的使用方法和调试。

2、存储器之间数据传送的方法和循环程序设计。

3、MCS-51系列单片机堆栈的使用。

二、实验目的与要求1、掌握单片机的汇编指令系统及汇编语言程序设计方法。

2、掌握单片机的存储器体系结构。

3、熟悉Keil软件的功能和使用方法。

4、掌握单片机应用程序的调试方法。

三、实验重点难点MOV、MOV某指令的用法特点。

四、实验方法和手段讲授、演示、操作、仿真、提问。

五、作业与习题布置写出实验报告。

P1湖南工学院教案用纸一、实验内容或原理1、实现单片机内部RAM之间,外部RAM之间以及内部RAM与外部RAM之间的数据传送。

2、利用Keil软件编辑、汇编、调试、运行实验程序并记录实验数据。

二、设计要求1、编写程序将00H~0FH16个数据分别送到单片机内部RAM30H~3FH单元中。

2、编写程序将片内RAM30H~3FH的内容传送至片内RAM40~4FH单元中。

3、编写程序将片内RAM40H~4FH单元中的内容传送到外部RAM4800H~480FH单元中。

4、编写程序将片外4800H~480FH单元内容送到外部RAM5800H~580FH单元中。

5、编写程序将片外RAM5800H~580FH单元内容传送回片内RAM50H~5FH单元中。

三、实验报告要求1、实验目的和要求。

2、设计要求。

3、实验程序流程框图和程序清单。

4、实验总结。

5、思考题。

四、思考题1、说明MCS-51系列单片机对片内RAM和片外RAM存贮器各有哪些寻址方式?2、说明指令MOVA,20H和MOVC,20H中的20H含义有什么不同?传送指令中的助记符MOV,MOV某,MOVC各适用于访问哪个存储器空间?P2湖南工学院教案用纸实验后记:P3湖南工学院教案用纸实验二单片机并行I/O口的应用实验一、本次实验主要内容1、利用单片机并行I/O口控制流水灯。

单片机实验报告概要

单片机实验报告概要

微控制器技术实验报告专业班级:学号:姓名:指导老师:时间: 2014.04目录一、实验目的及要求 (1)二、实验基本内容 (1)三、实验设备 (5)四、实验设计思想和结果分析 (8)4.1清零程序与拆字程序设计 (8)4.2拼字程序与数据传送程序 (10)4.3 排序程序与散转程序 (12)4.4 数字量输入输出实验 (14)4.5定时器/计数器实验 (16)4.6 A/D、D/A转换实验 (22)4.7 串行通讯实验 (31)五、结束语 (40)一、实验目的及要求:1、学习Keil C51集成开发工具的操作及调试程序的方法,包括:仿真调试与脱机运行间的切换方法;2、熟练使用SST89C554RC单片机核心板及I/O扩展实验系统;3、熟练掌握在Keil C51与Proteus仿真软件虚拟联机环境下,基于51单片机控制器数字接口电路的硬件、软件设计与功能调试;4、完成MCS51单片机指令系统软件编程设计和硬件接口功能设计题;二、实验基本内容(TD-51单片机实验系统实现)实验一清零程序与拆字程序设计根据实验指导书之“第二章单片机原理实验”(P17~P23页)内容,熟悉实验环境及方法,完成思考题1、2(P23)基础实验项目。

实验二拼字程序与数据传送程序设计汇编语言完成实验指导书P24思考题3、4题的基础实验项目。

实验三排序程序与散转程序设计汇编语言完成实验指导书P24思考题5、6题的基础实验项目。

实验四数字量输入输出实验基本部分:阅读、验证C语言程序功能。

使用汇编语言编程,完成实验指导书之“3.1 数字量输入输出实验”基本实验项目(P36),。

提高部分:(任选一题)题目一:LED交通灯控制(使用8255接口芯片)要求:使用汇编语言编程,功能为:通过开关实现LED灯工作方式即时控制,完成LED交通灯的开关控制显示功能和LED交通灯自动循环显示功能。

题目二:LED灯控制(使用8255接口芯片)要求:使用汇编语言编程,功能为:通过KK1实现LED灯工作方式即时控制,完成LED开关控制显示和LED灯左循环、右循环、间隔闪烁功能。

单片机中数字量输入与接口设计方法研究

单片机中数字量输入与接口设计方法研究

单片机中数字量输入与接口设计方法研究数字量输入是单片机中常见的输入方式之一,它能够实现对外部电路信号的检测与采集。

在单片机应用中,数字量输入接口的设计方法对于整体系统的性能和稳定性至关重要。

本文将研究单片机中数字量输入与接口设计方法,探讨其原理与优化方案。

一、数字量输入的原理及特点数字量输入是指将外部电路的高低电平信号转换为数字信号输入到单片机中,其工作原理基于二进制码表示。

常见的数字量输入接口有两种类型,分别为TTL 电平和CMOS电平。

TTL电平是一种基于晶体管的数字电平标准,其特点是高电平为5V,低电平为0V。

CMOS电平则是一种基于MOS管的数字电平标准,其特点是高电平为VCC,低电平为地。

数字量输入的主要特点是采用非连续的离散信号表示,能够判断电路输入的高低电平状态。

具有抗干扰能力强、精度高和可靠性好的优点。

二、数字量输入接口设计方法1.电平转换电路设计数字量输入接口的关键在于实现外部电路信号的电平转换。

常用的电平转换电路有电阻分压电路、电平缓冲电路、比较器电路等。

电阻分压电路是一种简单有效的电平转换方法,通过合适的电阻数值将高电平转换为单片机能够接受的电压范围。

电平缓冲电路则通过使用缓冲器将外部信号进行放大和锁定,增强信号的稳定性和抗干扰能力。

比较器电路则通过比较外部信号与参考电压的大小,输出判断结果。

2.输入端口配置在单片机中,数字量输入通常通过GPIO口(通用输入输出口)实现。

在设计数字量输入接口时,需要首先配置相应的GPIO口的工作模式和电平状态。

通常,可以通过设置GPIO口的输入模式、上下拉电阻和中断模式来实现数字量输入接口的配置。

输入模式分为浮空输入和上下拉输入,其中上下拉输入通过设置内部上拉电阻或下拉电阻,使得GPIO口的电平状态稳定。

中断模式则可以实现在产生相应输入时触发中断服务程序,提高响应速度。

3.消抖技术应用在数字量输入接口设计中,由于外部电路信号可能存在抖动问题,为了确保输入信号的可靠性,需要应用消抖技术。

单片机实训 模拟量输入输出设计与实现

单片机实训  模拟量输入输出设计与实现
共阴数码管 共阳数码管
项目六 模拟量输入输出设计与实现
工程系
单片机实训
• 数码管的编码规则
项目六 模拟量输入输出设计与实现
工程系
单片机实训
项目六 模拟量输入输出设计与实现
工程系
单片机实训
数字电压表程序设计
数码管显示电压值实现分析
模数转换采用的是8位的ADC0808,因此其分辨力为 5*1/2^8 V,即19.6mV。为了得到各位待显示的数字的 大小,采取了除法和取余相结合的方式:
第三种方法直接省略了结构体名,一般不提倡。
项目六 模拟量输入输出设计与实现
工程系
单片机实训
结构体变量的引用
定义了一个结构体变量之后,就可以对它进行引 用,既可以进行赋值、存取和运算。 结构体变量的引用是通过对其成员的引用来实现 的。
引用结构体变量中的成员 格式为:结构体变量名.成员名
结构体数组与以前介绍过的数值型数组不同之处 在于每个数组元素都是一个结构体类型的数据, 它们都分别包括各个成员项。
项目六 模拟量输入输出设计与实现
算 信号 处理 信号 变换 I/O 接口

输出通道
执行 机构 放大 驱动 D/A 转换 输出 接口 00101101

模拟电路的任务
模拟接口电路的任务
项目六 模拟量输入输出设计与实现
工程系
单片机实训
ADC0809模数转换器
ADC0809是8通道8位的,以逐次逼近原理进行模—数转换 的器件; 内部有一个8通道模拟多路开关,它可以根据地址码锁存 译码后的信号,只选通8路模拟输入信号中的一个进行A/D 转换; A/D转换后的数据由 三态锁存器输出; 片内没有时钟,需 外接时钟信号。

输入输出模块设计

输入输出模块设计
设置适当的数量LED灯指示模块工作状态。
通过对单片机编程,能够实现一定的控制功能。
完成原理图绘制及仿真。
扩展任务:完成PCB板设计。
3、实验原理:
1、光耦器件及工作原理
光电耦合器(简称光耦)是以光为媒介把输入端信号耦合到输出端,来传输电信号的器件,通常把发光器(红外线发光二极管LED)与受光器(光敏半导体管)封装在同一管壳内,将它们的光路耦合在一起,当输入端加电信号时发光器发出光线,受光器接受光线之后就产生光电流,从输出端输出,从而实现了“电—光—电”转换。输入和输出之间不共地,因此广泛地应用于需要信号隔离的电路中。由于它具有体积小、寿命长、无触点,工作稳定,输入端与输出端完全实现了电气隔离,信号单向传输,输出信号对输入端无影响,抗干扰能力强,传输信号的效率高等优点,在电路上获得了广泛的应用。光耦一般采用DIP封装,常见的光耦有:TLP521-1、TLP521-2、TLP521-4,分别是1个光耦、2个光耦和4个光耦,如图4.13.1所示。
1光耦器件及工作原理光电耦合器简称光耦是以光为媒介把输入端信号耦合到输出端来传输电信号的器件通常把发光器红外线发光二极管led与受光器光敏半导体管封装在同一管壳内将它们的光路耦合在一起当输入端加电信号时发光器发出光线受光器接受光线之后就产生光电流从输出端输出从而实现了电光电转换
辅导教师成绩
实验日期
2011年5月
开关KeyA和KeyF闭合,LED的显示结果
图4实试验结果
6、实验总结(心得体会):通过此次课程设计,我知道了光电耦合器件的工作原理,及其在电路系统中的作用,同时也学会了如何设计输入模块和输出模块。在电路软件仿真过程中,遇到了不少问题,通过与同学交流和求助学长,自己对仿真软件的操作更加熟练了,学会了许多知识和技巧,受益匪浅!
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、实验目的1.熟悉教学板电路及其结构。

2.掌握利用μVision C51 软件编辑、调试(包括仿真调试、单步调试)、运行单片机程序的步骤和方法,掌握利用STC-ISP V39软件和下载线将程序写入单片机的方法。

3.通过实验熟悉51单片机的并行I/O口,并掌握它们的应用。

4.掌握矩阵键盘、LED动态显示的工作原理。

二、实验设备PC机一台、实验教学板一块。

三、实验内容1.实验线路如附图所示,51单片机的P0口输出接8个发光二极管的阴极,P2.4经NPN 三极管9011控制发光管的阳极。

P3口支持一个8位行列式键盘,其中P3.4~P3.7供键盘扫描输出,P3.2、P3.3作键盘扫描输入。

实验要求:编程实现键盘对发光二极管的控制,每按一个按键,使对应的二极管点亮。

2.51单片机P0口输出同时接4个数码管的阴极,P2.0~P2.3,经NPN三极管9011接数码管的阳极,该端口用于分别控制相应数码管的导通。

实验要求:编程实现对任意按键动作的次数进行计数(最大99次),同时将计数值实时显示。

四、实验步骤1.将实验板与PC机通过COM口连接。

启动PC机,进入μVision软件环境,选择建立新工程文件,即可开始输入源程序。

2.完成汇编、编译、连接,若有错误,则修改源程序,直至编译、连接通过为止。

3.接上实验板上的电源。

4.运行“STC-ISP V39.EXE”,将程序代码下载到实验板的单片机中。

操作的顺序是:1)选择单片机(MCU TYPE)型号。

如:“STC89C51RC”要与实验板上所装单片机的型号一至。

2)打开文件(Open File)。

即把要下载到单片机的程序文件(已通过编译了的机器码文件——二进制(.Bin)或十六进制(.Hex)的)调到“文件缓冲区”,这时可看到右边的“文件缓冲区”有数字变化。

3)选择串行通信口。

选对时,软件上的小灯会变绿。

否则小灯是灰色。

且在左下窗口提示“出错信息”。

4)下载:按“Download/下载”按键下载。

5)把实验板上的供电的直流电源拔掉或关掉3秒钟再插入或打开电源(为单片机上电复位)。

5.观察单片机运行情况,验证程序是否能完成题目给出的控制要求,若不能达到要求,分析原因、查找错误,修改源程序,再次汇编、连接,重新下载、运行,直至达到题目的控制要求。

五、遇到的问题及原因:1.实验一,把程序烧进单片机后,发现按键时,LED灯乱亮,经检查是LED等亮的数组除了问题,修改后可以正常工作。

2.在实验二中,程序烧进单片机后,有一个数码管很暗,并且有重影,修改了延时之后问题结局。

每按一次按键,显示数值会增加好多,后来发现是键盘扫描程序中,检测到按键按下后,没有等待按键释放。

附件一:参考程序流程图实验内容1流程图实验内容2流程图键盘处理程序流程图附件二:实验程序:实验内容1#include <reg52.h>/***************************************************程序名称:键盘功能:采集2*4键盘键值并在LED灯上显示作者:张俊淼备注:***************************************************//**************************************************/#define uint unsigned int#define uchar unsigned char/**************************************************/sbit feng=P2^5;//蜂鸣器控制sbit deng=P2^4;//LED灯总控制sbit LED1=P2^0;//LED数码管第一位sbit LED2=P2^1;//LED数码管第二位sbit LED4=P2^3;//LED数码管第四位sbit int0=P3^2;//外部中断0管脚sbit int1=P3^3;//外部中断1管脚/**************************************************/uchar Buffer[4] = {0xe0, 0xd0, 0xb0, 0x70};//键盘对比数组uchar LEDBuf[9] = {0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f, 0xff};//LED灯编码uchar Key=8;//键盘数值/**************************************************/void init(void);void delay_ms(uint x);/******************************************************************** * 名称 : main()* 功能 : 主函数* 输入 : 无* 输出 : 无***********************************************************************/ void main(){init();//初始化while(1){P0=LEDBuf[Key];//显示键值}}/******************************************************************** * 名称 : init()* 功能 : 初始化* 输入 : 无* 输出 : 无***********************************************************************/ void init(void){EA=1; //开总中断EX0=1; //开外部中断 0IT0=1; //设置成边沿触发方式EX1=1; //开外部中断 1IT1=1; //设置成边沿触发方式feng=0;//关蜂鸣器deng=1;//开启LED总控制LED2=0;//关闭数码管第二位LED3=0;//关闭数码管第三位LED4=0;//关闭数码管第四位P3&=0x0f;//初始化键盘输入端检测}/*************************************************** 名称 : delay_ms(uint x)* 功能 : 毫秒延时程序,对应C51的11.0592MHZ* 输入 : 欲延时毫秒数* 输出 : 无**************************************************/void delay_ms(uint x) //毫秒延时程序{unsigned char j;while(x--){for(j=0;j<123;j++){;}}}/**************************************************************//******************************************************************** * 名称 : Funint0()* 功能 : 外部中断0。

* 输入 : 无* 输出 : 无***********************************************************************/ void Funint0() interrupt 0{uchar i,x;EX0=0; //关外部中断 0EX1=0; //关外部中断 1delay_ms(30);//延时消抖if(int0==0)//判断按钮是否真的按下{int0=0;P3|=0xf0;//以上两条为进一步检测作准备x=P3&0xf0;//取P3高四位for(i=0;i<4;i++){if(x==Buffer[i])Key=i;//获取键值}while((P3&0xf0)!=0xf0);//等待按键放开}P3=0x0f;//初始化键盘输入端检测EX0=1; //开外部中断 0EX1=1; //开外部中断 1}/******************************************************************** * 名称 : Funint1()* 功能 : 外部中断1。

* 输入 : 无* 输出 : 无***********************************************************************/ void Funint1() interrupt 2{uchar i,x;EX0=0; //关外部中断 0EX1=0; //关外部中断 1delay_ms(30);//延时消抖if(int1==0)//判断按钮是否真的按下{int1=0;P3|=0xf0;//以上两条为进一步检测作准备x=P3&0xf0;//取P3高四位for(i=0;i<4;i++){if(x==Buffer[i])Key=4+i;//获取键值}while((P3&0xf0)!=0xf0);//等待按键放开}P3=0x0f;//初始化键盘输入端检测EX0=1; //开外部中断 0EX1=1; //开外部中断 1}实验内容2#include <reg52.h>/**************************************************/#define uint unsigned int#define uchar unsigned char/**************************************************/sbit feng=P2^5;//蜂鸣器控制sbit deng=P2^4;//LED灯总控制sbit LED1=P2^0;//LED数码管第一位sbit LED2=P2^1;//LED数码管第二位sbit LED3=P2^2;//LED数码管第三位sbit LED4=P2^3;//LED数码管第四位sbit int0=P3^2;//外部中断0管脚sbit int1=P3^3;//外部中断1管脚/**************************************************/uchar LEDBuf[10] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};//LED数码管编码uchar Num=0;//计数值/**************************************************/void init(void);void delay_ms(uint x);void shownum(uchar num);/**************************************************/void main(){init();while(1){shownum(Num);}}/********************************************************************* 名称 : init()* 功能 : 初始化* 输入 : 无* 输出 : 无***********************************************************************/ void init(void){EA=1; //开总中断EX0=1; //开外部中断 0IT0=1; //设置成边沿触发方式EX1=1; //开外部中断 1IT1=1; //设置成边沿触发方式feng=0;//关蜂鸣器deng=0;//关闭LED总控制LED1=0;//关闭数码管第一位LED2=0;//关闭数码管第二位LED3=0;//关闭数码管第三位LED4=0;//关闭数码管第四位P3&=0x0f;//初始化键盘输入端检测}/**************************************************延时程序,对应C51的11.0592MHZ**************************************************/void delay_ms(uint x) //毫秒延时程序{unsigned int i,j;i=0;for(i=0;i<x;i++){j=108;while(j--);}}/******************************************************************** * 名称 : shownum()* 功能 : 数码管显示数字* 输入 : 0~99的要显示的数字* 输出 : 无***********************************************************************/ void shownum(uchar Num){static uchar number[2]={0x00, 0x00};//数码管的个位和十位number[1]=Num/10;number[0]=Num%10;P0=LEDBuf[number[0]];LED3=0;//关闭数码管第三位LED4=1;//开启数码管第四位delay_ms(10);//个位显示延时P0=LEDBuf[number[1]];LED3=1;//开启数码管第三位LED4=0;//关闭数码管第四位delay_ms(10);//十位显示延时}/**************************************************************//******************************************************************** * 名称 : Funint0()* 功能 : 外部中断0。

相关文档
最新文档