搜档网
当前位置:搜档网 › C8051F021单片机实验指导

C8051F021单片机实验指导

C8051F021单片机实验指导
C8051F021单片机实验指导

提要:实验项目

1、单片机的IO编程

实验1 IO开关量输入实验

实验2 IO输出驱动继电器(或光电隔离器)实验

实验3 IO输入/输出------半导体温度传感器DS18B20实验2、单片机的中断系统

实验1 外部外部中断----脉冲计数实验

3、单片机的定时器/计数器

实验1 计数器实验

实验2 秒时钟发生器实验

4、单片机的串口特点和编程

实验1 P C机串口通讯实验

实验2 R S485通讯实验

5、存储器

实验1 RAM存储器读写实验

6、PWM发生器

实验1 PWM发生器(模拟)实验

实验1 PWM发生器(内部)实验

7、WDG看门狗

实验1 外扩WDG(MAX813)实验

实验2 WDG(内部)实验

8、SPI总线

实验1 SPI(模拟)实验-----TLC2543 AD转换实验

实验2 SPI(模拟)实验-----TLV5616 DA转换实验

9、I2C总线

实验1 I2C(模拟)实验-----AT24C01读写实验

实验2 I2C(内部)实验-----AT24C01读写实验

10、综合实验

实验1 HD7279LED数码管显示实验

实验2 HD7279键盘实验

实验3 外部中断---电机转速显示实验

11、步进电机正反转实验

12、TFT液晶显示彩色条纹实验

13、16X16LED点阵显示汉字实验

一、单片机的IO编程

实验1 IO开关量输入实验

目的:学习单片机读取IO引脚状态的的方法。

内容:编程读取IO引脚状态。

设备:EL-EMCU-I试验箱、EXP-C8051F021 CPU板。

编程:首先要把相关的引脚设置在IO的输入状态,然后写一个循环,不停地检测引脚的状态。

步骤:

1、将CPU板正确安放在CPU接口插座上,

2、连线:用导线将试验箱上MCU部分的IO1--- IO8分别连接到SWITCH 的8个拨码开关的K1---K8的输出端子K1---K8上,连接好仿真器。

3、试验箱上电,在PC机上打开Keil C环境,打开试验程序文件夹IO_INPUT 下的工程文件IO_INPUT.Uv2编译程序,上电,在函数main()的最后一句设置断点,进入调试状态,打开窗口Peripherals-->IO-Port-->P3,改变开关状态,运行程序到断点处,观察窗口的数值与开关的对应关系。

实验2 IO输出驱动继电器(或光电隔离器)实验

目的:学习IO输出控制方法。

内容:通过单片机的IO引脚驱动继电器动作。

设备:EL-EMCU-I试验箱、EXP-C8051F021 CPU板。

编程:首先要把相关的引脚设置在IO的输出状态,然后写一个循环,依次输出高低电平。

步骤:

1、将CPU板正确安放在CPU接口插座上,

2、连线:用导线将MCU的IO1、IO2分别连接到RELAY的R_IN和光电隔离的输入P_IN上,R_OUT和P_OUT分别连接到发光二极管L1和L2的输入孔L1和L2上,连接好仿真器。

3、试验箱上电,在PC机上打开Keil C环境,打开试验程序文件夹IO_OUTPUT下的工程文件IO_OUTPUT.Uv2编译程序,上电,进入调试状态,打开窗口Peripherals-->IO-Port-->P3,单步运行程序,观察窗口的数值变化。

4、全速运行程序,观察继电器的发光二极管的亮灭变化,同时确定继电器动作(或光电隔离器导通)与IO输出电平的关系。

实验3 IO输入/输出------半导体温度传感器DS18B20实验

目的:学习IO引脚编程实现交替输入、输出的方法。

内容:通过单片机的IO引脚与半导体温度传感器实现单线通讯。

设备:EL-EMCU-I试验箱、EXP-C8051F021 CPU板。

编程:根据18B20的资料(见备注),将IO引脚设置在输出状态,分别模拟出不同的命令时序,例如复位、读寄存器等;再改变IO引脚的为输入状态,接收传感器输出的数据。

步骤:

1、将CPU板正确安放在CPU接口插座上,

2、连线:用导线将MCU的IO1连接到传感器的接口端子DQ上,连接好仿真器。

3、试验箱上电,在PC机上打开Keil C环境,打开试验程序文件夹IO_INOUTPUT下的工程文件IO_INOUTPUT.Uv2编译程序,上电,进入调试状态,打开窗口VIEW-- Watch &Call stack Windows,按照程序注释说明设置断点,全速运行程序到断点处,观察变量i的数据,用手摸住传感器DS18B20芯片,再运行到断点处,观察窗口的变量数值的变化。

4、备注:DSl8B20数字温度计提供9位(二进制)温度读数指示,器件的温度信息经过单线接口送入DSl8B20或从DSl8B20送出,因此从主机CPU到DSl8B20仅需一条线(和地线),DSl8B20的电源可以由数据线本身提供而不需要外部电源。因为每一个DSl8B20在出厂时已经给定了唯一的序号,因此任意多个DSl8B20可以存放在同一条单线总线上,这允许在许多不同的地方放置温度敏感器件。DSl8B20的测量范围从-55到+125增量值为0.5可在l s(典型值)内把温度变换成数字。

二、单片机的中断系统

实验1外部中断----脉冲计数实验

目的:学习单片机的外部中断使用方法。

内容:对外部中断计数显示。

设备:EL-EMCU-I试验箱、EXP-C8051F021 CPU板。

编程:首先第一步设置单片机的IO为输入状态,第二步设置引脚的中断触发方式,一般设置为边沿触发,第三步,设置外部中断的优先级,第四步,编写中断服务程序,包括中断入口跳转等,第五步,设置中断使能,允许外部引脚触发中断。第六步,设置死循环,主程序结束,交给中断服务程序完成计数。

步骤:

1、将CPU板正确安放在CPU插座上,CPU板上跳线J7短接在INT0处;

2、连线:用导线将MCU的INT0连接到单脉冲输出孔P-,连接好仿真器。

3、试验箱上电,在PC机上打开Keil C环境,打开试验程序文件夹EXT_INT1下的工程文件EXT_INT1.Uv2,编译程序,上电,进入调试状态,打开窗口VIEW-- Watch &Call stack Windows,按照程序注释说明设置断点,全速运行程序,每按下一次单脉冲开关Paulse,程序运行到断点处一次,观察变量num的变化。

三、单片机的定时器/计数器

实验1 计数器实验

目的:学习单片机的定时/计数器的计数功能使用方法。

内容:对外部单脉冲信号进行计数,计数10个后产生计数中断。

设备:EL-EMCU-I试验箱、EXP-C8051F021 CPU板。

编程:使用定时/计数器的计数功能,将外部时钟信号加在计数器的计数时钟输入引脚上,当计数10次后,计数器溢出,触发标志位,编程控制分频输出引脚电平翻转,产生分频后的时钟信号。

步骤:

1、将CPU板正确安放在CPU接口插座上,

2、连线:用导线将MCU的T0连接到DDS信号源的OUTPUT上(设置信号源的Vpp=2~5V之间;使之符合TTL电平的要求,高电平约在3~5V之间,低电平约在0~0.8V之间)。此外将跳线J8跳到T1位置,连接好仿真器。

3、试验箱上电,在PC机上打开Keil C环境,打开试验程序文件夹COUNTER 下的工程文件COUNTER.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。

4、上电全速运行程序,用示波器的两个通道观察时钟信号发生器的输出信号OUTPUT和单片机的MCU_IO1的波形,比较二者的频率关系

实验2 秒时钟发生器实验

目的:学习单片机的定时/计数器的定时功能使用方法。

内容:产生频率为0.5Hz的时钟输出。

设备:EL-EMCU-I试验箱、EXP-C8051F021 CPU板。

编程:使用定时/计数器的定时功能,时钟源采用系统时钟,根据时钟源的

频率配置初值寄存器,使能定时器中断,在中断服务程序中翻转一个IO引脚输出,产生0.5Hz的时钟输出。

步骤:

1、将CPU板正确安放在CPU接口插座上,

2、连线:用导线将MCU的IO1连接到发光二极管L1的输入L1上,连接好仿真器。

3、试验箱上电,在PC机上打开Keil C环境,打开试验程序文件夹TIMER_SECOND下的工程文件TIMER_SECOND.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。

4、全速运行程序,观察发光二极管的亮灭情况。

5、备注:现在的单片机系统时钟较高,难于产生1秒的定时中断,所以,可以设置定时时间为50毫秒,在中断服务程序中设置程序计数,当累加到1秒后,控制输出IO引脚电平翻转,驱动发光二极管。

四、单片机的串口特点和编程

实验1 PC机串口通讯实验

目的:学习单片机串口的使用方法。

内容:与PC机实现通讯。

设备:EL-EMCU-I试验箱、EXP-C8051F021 CPU板。

编程:第一步,配置串口工作在8位,波特率可变异步通讯工作方式,波特率由定时器1确定,同时使能其中断并清除其中断标志位;第二步,配置定时器1,工作在8位自动重装入模式,根据波特率计算其初值。第三步,编写串口中断服务程序,只处理接收中断,对发送中断只清除标志,不做其他处理。第四步,设置死循环,交由中断服务程序处理。

步骤:

1、将CPU板正确安放在CPU接口插座上;

2、连线:用导线将MCU的INT0 (TXD)、SOMI (RXD)分别连接到RS232的232TXD、232RXD,用附带的直连串口线连接试验箱的DB9和计算机的串口,接好仿真器。

3、试验箱上电,在PC机上打开Keil C环境,打开试验程序文件夹RS232

下的工程文件RS232.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。

4、打开PC机的超级终端,设置波特率115200、数据位8、无流控、无校验等信息,PC机全速运行试验程序,在超级终端里输入可显示字符,观察超级终端的显示,断开连接的串口线,再输入字符,观察显示有什么不同。

5、备注:在串口中断服务程序中,要清除中断标志位。在发送数据前,要检测发送状态位在发送结束状态。

实验2 RS485通讯实验

目的:学习单片机串口的使用方法以及RS485通讯。

内容:使用Max485芯片进行电平转换,实现差分方式通讯。

设备:EL-EMCU-I试验箱、EXP-C8051F021 CPU板。(需2套)

步骤:

1、将两个实验箱的CPU板正确安放在CPU接口插座上,CPU板上的跳线J7均短接在INT0处。

2、连线:

发送设备:

(1)用导线将MCU的INT0 (TXD)、SOMI (RXD)、IO1、INT0分别连接到RS485的TXD、RXD、E485和单脉冲输出P-孔;CPU板上跳线J7短接在INT0处;

(3)用两根导线顺序连接两个实验箱的UR1差分接口(上、下分别对接)。

接收设备:

(1)用导线将MCU的INT0 (TXD)、SOMI (RXD)分别连接到RS485的TXD、RXD;CPU板上跳线J7短接在INT0处、J11短接在SDA处;

(2)用导线将MCU的SDA连接到RS485的E485;

(3)用导线将MCU的IO1-IO8分别连到LAMP的L1-L8;

(4)用两根导线顺序连接两个实验箱的UR1差分接口(A、B分别对接)。

3、分别连接好仿真器,试验箱上电,在PC机上打开Keil C环境,打开试验程序文件夹RS485下的RS485_TX里的工程,编译程序,将程序下载到“发送设备”的CPU板中。再打开RS485下的RS485_RX里的工程,编译程序,将程序下载到“接收设备”的CPU板中。

4、同时给两个实验箱上电。按下发送设备上的单脉冲按键。观察“接收设备”实验箱上的LED灯变化。再结合程序分析为什么。

5、备注:在该RS485的通讯中,关键是设置RS485的E485端的状态,从

而决定是接收回来数据还是发送出去数据。

五、存储器

实验1 RAM存储器读写实验

目的:学习存储器数据读写方法。

内容:将内部RAM中的一段数据复制到另一RAM空间。

设备:EL-EMCU-I试验箱、EXP-C8051F021 CPU板。

编程:首先设置源的首地址和目的首地址,再设置数据块的长度,设置一个变量,先从源读取一个字节,再写入到目的地址中,如此循环,直至到数据块的长度。

步骤:

1、将CPU板正确安放在CPU接口插座上,

2、连线:接好仿真器。

3、试验箱上电,在PC机上打开Keil C环境,打开试验程序文件夹RAM 下的工程文件RAM.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。

4、按照注释设置断点,打开变量观察窗口,全速运行试验程序到断点处,观察2个数组内容的变化。

5、备注:在汇编中,对内部存储器的操作使用指令MOV,外部存储器的操作使用MOVX和MOVC,其他相同。在C语言中,只需在定义变量时指明位置即可,在操作上二者没有区别。

六、PWM发生器

实验1 PWM发生器(模拟)实验

目的:学习利用定时器和IO产生PWM的方法。

内容:产生占空比变化的PWM波形输出。

设备:EL-EMCU-I试验箱、EXP-C8051F021 CPU板,示波器。

编程:使用定时/计数器的定时功能,分别产生PWM的高电平和低电平。第一步,首先选择使用单片机的定时/计数器0的定时功能,确定工作方式。第二步,根据PWM频率要求确定初值。第三步,使能定时器的中断。第四步,编写定时器中断服务程序,确定PWM波形高低电平的保持时间,控制IO引脚输

出翻转电平。做一个死循环,一切交给中断处理。

步骤:

1、将CPU板正确安放在CPU接口插座上,

2、连线:连接好仿真器。

3、试验箱上电,在PC机上打开Keil C环境,打开试验程序文件夹PWM_IO 下的工程文件PWM_IO.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。

4、全速运行程序,用示波器的单片机的MCU_IO1的波形。

5、备注:定时器产生中断的定时时间是PWM波形占空比调整的最小单位,

即分辨率,在定时器中断服务程序中对中断计数,控制IO电平的翻转。

实验1 PWM发生器(内部)实验

目的:学习产生PWM的方法。

内容:配置PWM的相关寄存器,输出占空比变化的PWM波形。

设备:EL-EMCU-I试验箱、EXP-C8051F021 CPU板,示波器。

编程:配置PWM控制寄存器,设定源时钟和比较寄存器以及死区寄存器,开启中断,在中断服务程序中设定比较寄存器的数值,此寄存器决定了PWM波形的占空比。

步骤:

1、将CPU板正确安放在CPU接口插座上,

2、连线:CPU板上的跳线J14短接在PWM0侧,连接好仿真器。

3、试验箱上电,在PC机上打开Keil C环境,打开试验程序文件夹INT_PWM 下的工程文件INT_PWM.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。

4、全速运行程序,用示波器观察PWM0输出波形,修改比较寄存器的值,用示波器观察PWM波形占空比的变化。

5、备注:PWM一般借助定时器产生,有的资料将它归类在定时器的功能

中。

七、WDG看门狗

实验1 外扩WDG(MAX705)实验

目的:学习外扩看门狗控制器的使用方法。

内容:配置外扩看门狗电路。

设备:EL-EMCU-I试验箱、EXP-C8051F021 CPU板。

编程:配置一个IO输出翻转电平信号喂狗,配置一个IO输出驱动发光二极管显示状态。

步骤:

1、将CPU板正确安放在CPU接口插座上,

2、用导线将MCU的IO1、IO2分别连接到WDG的WDI和发光二极管L1的输入孔L1上,用导线将WDT的RST连接到MCU的RST上。连接好仿真器。

3、试验箱上电,在PC机上打开Keil C环境,打开试验程序文件夹EXT_WDG

下的工程文件EXT_WDG.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。

4、全速运行程序,观察发光二极管在上电时亮一次,然后保持熄灭状态。去除MCU_IO1到WDI的连线,观察发光二极管会重复亮灭。

5、备注:在程序开始处,点亮发光二极管约1秒钟,在程序正常运行中,发光二极管熄灭,如果在设定的时间内不能喂狗,程序回到开始处运行,重新点亮发光二极管。

实验2 WDG(内部)实验

目的:学习内部看门狗控制器的使用方法。

内容:配置内部看门狗。

设备:EL-EMCU-I试验箱、EXP-C8051F021 CPU板。

编程:配置一个IO输入信号控制信号,控制喂狗。

步骤:

1、将CPU板正确安放在CPU接口插座上,

2、连线:用导线将MCU的IO1、IO2分别连接到平推开关K1的输出插孔K1和发光二极管L1的输入孔L1上。连接好仿真器。

3、试验箱上电,在PC机上打开Keil C环境,打开试验程序文件夹INT_WDG

下的工程文件INT_WDG.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。

4、全速运行程序,把平推开关K1拨到H侧,观察发光二极管L1的状态。把平推开关K1拨到L侧,比较发光二极管L1的状态变化。

5、备注:在程序开始处,点亮发光二极管约1秒钟,在程序正常运行中,发光二极管熄灭,如果在设定的时间内不能喂狗,程序回到开始处运行,重新点亮发光二极管。

八、SPI总线

实验1 SPI(模拟)实验-----TLC2543 AD转换实验

目的:学习SPI总线通讯编程方法、串行AD应用。

内容:利用SPI总线配置AD转换芯片,并读取转换结果。

设备:EL-EMCU-I试验箱、EXP-C8051F021 CPU板。

编程:编程3个IO引脚为输出,一个IO为输入,3个输出引脚一个模拟CLK,一个模拟CS,另一个模拟DO。输入模拟DI,根据芯片的技术资料,模拟输出3个输出引脚的时序。

步骤:

1、将CPU板正确安放在CPU接口插座上,

2、用导线将MCU的IO1--IO5分别连接到AD的AD_CS、AD_CLK、AD_IN、AD_OUT、AD_EOC,用导线将ADIN1连接到ANOUT.。连接好仿真器。

3、试验箱上电,在PC机上打开Keil C环境,打开试验程序文件夹EXT_ADC 下的工程文件EXT_ADC.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。

4、上电,运行程序,按照注释设置断点,全速运行程序到断点,观察变量value的数值是否与插孔ANOUT的电压一致。

实验2 SPI(模拟)实验-----TLV5616 DA转换实验

目的:学习SPI总线通讯编程方法、串行DA应用。

内容:利用SPI总线配置DA转换芯片,并用示波器观察输出波形。

设备:EL-EMCU-I试验箱、EXP-C8051F021 CPU板。

编程:编程4个IO引脚为输出,4个输出引脚一个模拟CLK,一个模拟CS,一个模拟DATA,另一个模拟FS。根据芯片的技术资料,模拟出4个输出引脚的时序。

步骤:

1、将CPU板正确安放在CPU接口插座上,

2、用导线将MCU的IO1--IO4分别连接到DA的DA_CS、DA_CLK、DA_IN、DA_FS,用导线将DA_REF连接到插孔Vref 2.5V.。连接好仿真器。

3、试验箱上电,在PC机上打开Keil C环境,打开试验程序文件夹EXT_DAC 下的工程文件EXT_DAC.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。

4、上电,全速运行程序,用示波器观察插孔DA_OUT的波形。

九、I2C总线

实验1 I2C(模拟)实验-----IC卡(AT24C01)读写实验

目的:学习I2C总线通讯编程方法。

内容:利用I2C总线读取存储器IC卡(AT24C01)的数据。

设备:EL-EMCU-I试验箱、EXP-C8051F021 CPU板。

编程:编程2个IO引脚模拟I2C总线,按照AT24C01的操作时序,访问AT24C01存储器的内容。

步骤:

1、将CPU板正确安放在CPU接口插座上,

2、连线:用导线将MCU的IO1--IO4分别连接到IC_CARD的SCK、SDA、DET、PWR。连接好仿真器。

3、试验箱上电,在PC机上打开Keil C环境,打开试验程序文件夹IIC_CARD 下的工程文件IIC_CARD.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。

4、试验箱上电,按照注释设置断点,插入IC卡,全速运行程序到断点处,观察数组result的数据是否与写入数据一致。

实验2 I2C(内部)实验----- IC卡(AT24C01)读写实验

目的:学习内部I2C控制器的使用方法。

内容:利用I2C总线读取存储器IC卡(AT24C01)的数据。

设备:EL-EMCU-I试验箱、EXP-C8051F021 CPU板。

编程:配置内部I2C寄存器和引脚,编程读写存储器IC卡(AT24C01)。

步骤:

1、将CPU板正确安放在CPU接口插座上,

2、连线:用导线将MCU的IO1--IO2分别连接到DET、PWR;将MCU的SDA、SCL分别连接到SDA、SCK,检查CPU板上跳线J11、J12分别短接在SDA 侧和SCL侧。连接好仿真器。

3、试验箱上电,在PC机上打开Keil C环境,打开试验程序文件夹INT_SMBUS下的工程文件INT_SMBUS.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。

4、插入IC卡,上电,加载程序,在注释说明的位置设置断点,打开变量观察窗口,运行程序到断点处,观察数组SRC和DST的结果。取出IC卡,观察结果。(不能运行到断点处)。

十、综合实验

所谓混合总线,是指由3线组成的总线:CS、CLK、IO,典型应用是芯片HD7279,特别分出来单独实验

实验1 HD7279LED数码管显示实验

目的:学习HD7279的通讯方法。

内容:利用IO向HD7279写入控制命令和数据。

设备:EL-EMCU-I试验箱、EXP-C8051F021 CPU板。

编程:配置IO,向HD7279写入控制命令,控制数码管的显示。

步骤:

1、将CPU板正确安放在CPU接口插座上,

2、连线:用导线将MCU的IO1----IO3分别连接到HD7279的7279_CS、

7279_CLK、7279_DATA。用导线将HD7279的7279_A、7279_B、7279_C、7279_D、7279_E、7279_F、7279_G、7279_DP分别连接到LED DISP的LED_A、LED_B、LED_C、LED_D、LED_E、LED_F、LED_G、LED_DP;用导线将HD7279的7279_C1、7279_C2、7279_C3、7279_C4分别连接到LED DISP 的LED_C1、LED_C2、LED_C3、LED_C4。连接好仿真器。

3、试验箱上电,在PC机上打开Keil C环境,打开试验程序文件夹

HD7279DISP下的工程文件HD7279DISP.Uv2,编译程序,上电,进入调试状

态,单步运行程序观察每条语句执行后相关寄存器的变化。

4、全速运行程序,观察LED数码管的显示变化。

实验2 HD7279键盘实验

目的:学习HD7279的通讯方法。

内容:利用总线向HD7279写入控制命令并显示键值。

设备:EL-EMCU-I试验箱、EXP-C8051F021 CPU板。

编程:配置2个IO输出作为SPI的CS和CLK,配置1个IO做I2C的LDA。使能外部中断,并将中断引脚连接到HD7279的中断输出INT上。

步骤:

1、将CPU板正确安放在CPU接口插座上,

2、连线:用导线将MCU的IO1----IO

3、INT0分别连接到HD7279的

7279_CS、7279_CLK、7279_DATA、7279_KEY;用导线将HD7279的7279_A、7279_B、7279_C、7279_D、7279_E、7279_F、7279_G、7279_DP分别连接到LED DISP的LED_A、LED_B、LED_C、LED_D、LED_E、LED_F、LED_G、LED_DP;用导线将HD7279的7279_C1、7279_C2、7279_C3、7279_C4分别连接到LED DISP的LED_C1、LED_C2、LED_C3、LED_C4;用导线将HD7279的7279_A、7279_B、7279_C、7279_D、7279_E、7279_F、7279_G、7279_DP分别连接到KEY的KEY7、KEY6、KEY5、KEY4、KEY3、KEY2、KEY1、KEY8;用导线将HD7279的7279_C1连接到KEY的插孔KEY。连接好仿真器。

3、试验箱上电,在PC机上打开Keil C环境,打开试验程序文件夹

HD7279下的工程文件HD7279.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。

4、上电,运行程序,按键,观察LED显示的数据是否与键盘一一对应。实验3电机转速显示实验

目的:学习外部中断的应用方法。

内容:对外部中断计数处理,显示电机的转速。

设备:EL-EMCU-I试验箱、EXP-C8051F021 CPU板。

编程:首先第一步设置单片机的IO为输入状态,第二步设置引脚的中断触

发方式,一般设置为边沿触发,第三步,设置外部中断的优先级,第四步,编写中断服务程序,包括中断入口跳转等,第五步,设置定时器中断,中断时间设为1秒(方法在定时器部分详细说明)。第六步,设置中断使能,允许外部引脚触发中断。设置死循环,主程序结束,交给中断服务程序完成计数并显示。

步骤:

1、将CPU板正确安放在CPU接口插座上,

2、连线:用导线将MCU的INT0连接到DC_MOTOR的SPEED,DC_MOTOR 的DRV连接到ANOUT,连接好仿真器。

3、试验箱上电,在PC机上打开Keil C环境,打开试验程序文件夹EXT_INT 下的工程文件EXT_INT.Uv2,编译程序,上电,进入调试状态,打开窗口VIEW-- Watch &Call stack Windows,按照程序注释说明设置断点,全速运行程序到断点处,观察变量speed数据,调节电位器POT1,调整电机转速,再运行到断点处,观察窗口的变量数值的变化。

4、在全速运行程序,打开电机开关,电机开始转动,观察数码管上显示的转速。调整电位器,改变电机转速,观察数码管上显示的转速是否正确。

5、备注:在电机的同轴转盘上,安装有磁体,在转盘下面由对磁体敏感的霍尔传感器,随着转盘转动,当磁体正对传感器时,传感器的输出电压发生变化,单片机利用此电压变化触发中断。单片机在固定时间内累计发生中断的数值,即电机的转速。

十一、步进电机正反转实验

实验步进电机正反转实验

目的:学习步进电机的控制方法。

内容:用单片机的IO口控制步进电机正转。

设备:EL-EMCU-I试验箱、EXP-C8051F021 CPU板。

编程:用单片机的IO口模拟产生PWM,使步进电机转动。

步骤:

1、将CPU板正确安放在CPU接口插座上。

2、连线:用导线将MCU的IO1---- IO4分别连接到STEP MOTOR的ORANGE、YELLOW、PINK、BLUE管脚。连接好仿真器。

3、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹BuJin4下的工程文件BuJin4.Uv2,编译程序,进入调试状态,单步运行程序,观察IO 口的变化。

4、全速运行程序,电机开始正转,交换YELLOW与BLUE两根线,电机反转。

十二、TFT液晶显示彩色条纹实验

实验TFT液晶显示彩色条纹实验

目的:学习TFT液晶显示的控制方法。

内容:用单片机的IO口控制TFT液晶显示。

设备:EL-EMCU-I试验箱、EXP-C8051F021 CPU板。

编程:用单片机的IO口控制TFT液晶显示字符。

步骤:

1、将CPU板正确安放在CPU接口插座上,跳线帽J15短接在SCL处。

2、连线:用导线将MCU的IO1---- IO8分别连接到TFT LCD的ED0、ED1、ED2、ED2、ED4、ED5、ED6、ED7;IO9---- IO12分别连接到CS、R/D、W/R、EA;SCL接RST。

3、将液晶屏下面的拨码开关K33、KT1拨到上端。

4、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹TFT下的工程文件TFT.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。

5、全速运行程序(或按下复位键),观察TFT液晶上显示的彩色条纹,分别修改程序注释中i和temp的值,重新编译、下载、全速运行程序观察液晶屏显示条纹的大小和夜色是否改变。

十三、16X16LED点阵显示汉字实验

实验16X16LED点阵显示汉字实验

目的:学习16X16LED点阵显示汉字的控制方法。

内容:用单片机的IO控制74LS138和74LS595驱动16X16LED点阵显示汉字。

设备:EL-EMCU-I试验箱、EXP-C8051F021 CPU板。

编程:用单片机的IO口控制74LS138译码产生16位行选通信号,74LS595用串转并的方式传送16位的数据。

步骤:

1、将CPU板正确安放在CPU接口插座上。

2、连线:用导线将MCU的IO1---IO4分别连接到16*16LED的A0、A1、A2、A3;MCU的IO9---IO11分别连接到16*16LED的SHCR、STCP、DS,连接好仿真器。

3、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹LED下的工程文件LED.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。

4、全速运行程序,观察16X16LED点阵上显示的汉字。

单片机实验指导书

《单片机原理与应用》 实验指导书 注意: 1、做实验前必须预习 2、带教材和实验指导书 理工大学 自动化学院自动化系

实验仪的使用 本实例是仿真INTEL的8031单片机,来循环点亮P1口的发光二极管(低电平有效)。程序是用汇编语言来编写。下面介绍相应的操作步骤: 1、运行桌面“星研集成软件”,画面如下: 2、建立源文件 执行 [主菜单?文件?新建],(或者点击图标)打开窗口。 选择存放源文件的目录,输入文件名,注意:一定要输入文件名后缀。对源文件编译、连接、生成代码文件时,系统会根据不同的扩展名启动相应的编译软件。比如:.ASM文件,使用A51来对它编译。本实 例文件名为xunhuan.asm 。窗口如下: 按“确定”即可。然后即出现文件编辑窗口: 输入源程序,参照实验一源程序。 .专业DOC.

这样一个源文件就建立好了。 3.编译、连接文件 首先选择一个源文件,然后可以编译、连接文件了。对文件编译,如果没有错误,再与库文件连接,生成代码文件(DOB、HEX文件)。编译、连接文件的方法有如下二种:(1)使用[ 主菜单?项目?编译、连接 ]或[主菜单?项目?重新编译、连接]”。(2)点击图标或来“编译、连接”或“重新编译连接”。编译、连接过程中产生的信息显示在信息窗的“建立”视中。编译没有错误的信息如下: 若有错误则出现如下信息框: 有错误、警告信息,用鼠标左键双击错误、警告信息或将光标移到错误、警告信息上,回车,系统自动打开对应的出错文件,并定位于出错行上。 这时用户可以作相应的修改,直到编译、连接文件通过。 4.调试 编译、连接正确后,可以开始调试程序。进入调试状态方法有: a)执行[ 主菜单?运行?进入调试状态] b)点击工具条的进入后的窗口如下:

单片机实验指导书

实验一KEIL 51软件实验 实验目的: 1、掌握KEIL集成开发环境的使用 2、掌握算术运算程序 实验设备:计算机、KEIL51软件 实验内容: 编程实现把片人RAM30H单元和40H单元两个16字节数相加,结果放于30H单元开始的位置处。在KEIL51编译、连接、仿真调试。 实验步骤: 一、运行KEIL51软件,出现图1所示KEIL 51主界面。 图1 KEIL 51主界面 首先用Project菜单下的New Project命令建立项目文件,过程如下。 (1) 选择Project菜单下的New Project命令,弹出如图2所示的Create new Project对话框。 图2 Create New Project对话框 (2) 在Create New Project对话框中选择新建项目文件的位置(最好一个项目建立一个文件夹如E:\project), 输入新建项目文件的名称,例如,项目文件名为example,单击【保存】按钮将弹出如图3所示的Select Device for Target ‘Target 1’对话框,用户可以根据使用情况选择单片机型号。Keil uVision2 IDE几乎支

持所有的51核心的单片机,并以列表的形式给出。选中芯片后,在右边的描述框中将同时显示选中的芯片的相关信息以供用户参考。 图3 Select Device for Target ‘Target 1’对话框 (3) 这里选择atmel公司的AT89c51。单击【确定】按钮,这时弹出如图4所示的Copy Standard 8051 Startup Code to Project Folder and Add File to Project确认框,C语言开发选择【是】,汇编语言开发选择【否】。 单击后,项目文件就创建好了。项目文件创建后,在主界面的左侧的项目窗口可以看到项目文件的内容。 这时只有一个框架,紧接着需向项目文件中添加程序文件内容。 图4 Copy Standard 8051 Startup Code to Project Folder and Add File to Project确认框 二、给项目添加程序文件 当项目文件建立好后,就可以给项目文件加入程序文件了,Keil uVision2支持C语言程序,也支持汇编语言程序。这些程序文件可以是已经建立好了的程序文件,也可以是新建的程序文件,这里我们新建的汇编程序文件后再添加。 (1) 选择文件菜单上的new命令,出现新建文本窗口,如图5所示。

单片机实验指导书

单片机实验指导书 适用专业:计算机控制、网络、物联网等 学时:12 编写人:孔庆臣 2016-5-12

实验一 IO口输入输出实验 1. 实验内容 (1) P2口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。 (2) P1口做输入口,接八个扭子开关,P2口接八只发光二极管,编写程序读取开关状态,将此状态在发光二极管上显示出来。 2. 实验目的 学习keil仿真软件的使用方法 学习IO口的使用方法。 学习延时子程序的编写和使用。 stc-isp软件的使用 3.有关说明 P1口为准双向口,P1的每一位都能独立地定义为输入或输出线,作为输入的口线,必须向锁存器相应位写入“1”,该位才能作为输入。单片机IO口在复位时均置为“1”,如果后来在口锁存器写入过“0”,在需要时应写入一个“1”使它再成为一个输入。 可以用第二个实验做一下实验。先按要求做好程序并调试成功后,可将P1口锁存器中置“0”,此时将P1作输入口,会有什么结果。 再来看一下延时程序的实现。通常用的有两种方法,一是用定时器中断来实现,一是用指令循环来实现。在系统时间允许的情况下可以采用后一种方法。 本实验系统晶振为11.0592MHZ,则一个时钟周期为0.0904us。现要写一个延时0.1s的程序,可大致写出如下: void Delay100ms() //@11.0592MHz { unsigned char i, j, k; i = 5; j = 52; k = 195; do { do { while (--k); } while (--j); } while (--i); } 5.实验电路设计 (1)分析附录1 单片机实验系统部分原理图,选择合适的电路模块,并根据实验要求的功能进行合理的电路模块间的电路连接。 (2)画出本次实验独立的原理图 5、实验要求 (1)完成实验电路设计 (2)完成实验程序设计 (3)实现要求的实验结果

单片机实验指导书

实验一8051简单编程与调试实验目的 通过简单小程序的输入和调试,熟悉并掌握Keil 的使用。学会Proteus与Keil的整合调试。 实验基本要求 建立三个项目,分别输入存储块清零、二进制BCD码及二进制ASCII码转换的汇编源程序,并进行仿真调试。画出实验程序的流程框图。 实验步骤 采用Keil Cx51 开发8051单片机应用程序一般需要经过下面几个步骤: 1、在 Vision2集成开发环境中创建一个新项目(Project),并为该项目选定合适的单片机CPU器件。 在菜单栏中选择“Project”→“New Project”,弹出“Create New Project”对话框,选择目标路径,在“文件名”栏中输入项目名后,单击“保存(S)”按钮,弹出“Selecte Device for Target”对话窗口。在此对话窗口的“Data base”栏中,单击“Atmel”前面的“+”号,或者直接双击“Atmel”,在其子类中选择“AT89C51”,确定CPU类型。如图所示。 点击“确定”按钮后,弹出如下的对话框

如果是进行汇编语言编程选择“否”。 2、利用μVision2的文件编辑器编写C语言(或汇编语言)源程序文件,并将文件添加到项目中去。一个项目可以包含多个文件,除源程序文件外还可以有库文件或文本说明文件。 在μVision2的菜单栏中选择“File”→“New”命令,新建文档,然后在菜单栏中选择“File”→“Save”命令,保存此文档,这时会弹出“Save As”对话窗口,在“文件名(N)”一栏中,为此文本命名,注意要填写扩展名“.asm”。单击“保存(S)”按钮,这样在编写汇编代码时,Keil会自动识别汇编语言的关键字,并以不同的颜色显示,以减少输入代码时出现的语法错误。程序编写完后,再次保存。 在Keil中“Project Workspace”子窗口中,单击“Target 1”前面的“+”号,展开此目录。在“Source Group 1”文件夹上单击鼠标右键,在右键菜单中选择“Add File to ‘Group Source 1’”,弹出“Add File to Group”对话窗口,在此对话窗口的“文件类型”栏中,选择“Asm Source File”,并找到刚才编写的.asm文件,双击此文件,将其添加到Source Group 中,此时“Project Workspace”子窗口如图所示。

单片机实验答案

前言 由于单片机具有高可靠性、超小型、低价格、容易产品化等特点,在仪器仪表智能化、实时工业控制、实时数据采集、智能终端、通信设备、导航系统、家用电器等控制应用领域,具有十分广泛的用途。目前在国内单片机应用中,MCS-51系列单片机仍然是一种主流单片机。为配合《单片机应用技术》课程的教学,使学生尽快了解、掌握89C51单片机的使用,特编写了这本上机指导书(基础篇)。 《单片机》是一门实践性很强的课程,提高教学质量的一个重要环节是上机实习和训练,无论是学习汇编语言程序设计,还是学习接口电路和外设与计算机的连接,或者软硬兼施地研制单片机应用系统,不通过加强动手是不能获得预期效果的。本实验指导书提供了9个实验的指导性材料,实验还有一些思考题,可以根据课时的安排和教学要求进行取舍。为了达到某些实验的目的,书中提供的参考程序与实际应用中的程序会有些差别,所以不一定是最优的。 由于时间紧迫,加上编者学识有限,如有不妥之处,欢迎读者批评指正。 编者

实验须知 1. 实验前必须阅读教科书的有关部分和本实验指导书,了解实验目的、内容、步骤,做好实验前的准备工作,编写好实验中要求自编或修改的程序;完成实验前要求完成的准备工作后方可以上机实验,否则不得上机操作。 2. 各种电源的电压和极性不能接错,严禁带电接线和接插元器件。通电前须经过指导教师检查认可后方能通电。 3. 不准随意拨弄各种与实验无关的旋钮和开关,凡与本次实验无关的任何设备都禁止动用和摸弄,注意安全。 4. 严禁用手触摸实验系统印制电路板和元器件的引脚,防止静电击穿芯片。 5. 实验中若损坏仪器或元器件,应及时向指导教师报告,听候处理。 6. 在实验室内保持安静和卫生,不得随意走动和喧哗,集中精力完成实验。 7. 实验完成后,关掉电源,及时整理实验台桌面,保持环境整洁。 8. 按规定认真完成实验报告,对实验中出现的现象进行分析,在规定的时间内交上实验报告。 9. 凡实验或实验报告未能按规定完成的学生,不能参加本课程的考试或考查。

单片机实验指导书

单片机实验 实 验 指 导 书 2017年2月

单片机实验报告 (自动化XX级) 实验名称 学生 联系方式 学号 院系工学院电气与信息工程系专业自动化 指导教师 填写日期

实验一数据传送 一、实验目的 1.进一步熟悉仿真器的使用方法。 2.练习设计简单的程序。 3.掌握8051片RAM和片外RAM的数据传送方法,从而了解这两部分存贮器的特点。 二、实验容 将8051部RAM 40H~4FH置初值00H~0FH,然后将40H~4FH容传送到外部RAM的4800H~480FH,再将4800H~480FH传回部RAM的50H~5FH。设置断点B1、B2、B3每运行到断点时检查相应的CPU现场和存贮单元的容。 三、实验准备 1、认真阅读本实验指导。 2、读懂下面的程序: #include #include char data *p40 ,*p50 ; char xdata *p4800; char i, j, k; void main( ) { p40=0x40; p50=0x50; p4800=0x4800; for(i=0;i<16;i++) { *p40=i; p40=p40+1; } //B1 p40=0x40; for(j=0;j<16;j++) { *p4800=*p40; p40=p40+1; p4800=p4800+1; } // B2 p4800=0x4800; for(k=0;k<16;k++) { *p50=*p4800; p50=p50+1;

p4800=p4800+1; } } //B3 3、画出如下要测的数据表格: 四、实验步骤 1、向机器输入程序。 2、运行程序至第一个断点B1,检查40H~0FH单元容及指针p40的容。 3、运行程序至第二个断点B2,检查4800H~480FH单元容及指针p40,p4800的容。 4、运行程序至第三个断点B3,检查50H~5FH单元容及累加器及指针p50的容。 五、实验报告要求 1、写出C语言源程序和对应的汇编语言指令及注解的程序清单。 2、将测得的数据填入表格,并和理论分析的结果相比较。 3、说明8031CPU对部存贮器和外部扩展RAM存贮器各有哪些寻址方式? 4、如果要读外部程序存储器0x4800中的容,该如何访问? 5.实验心得。(必须)

单片机实验指导

(内部教材) 单片机实验指导书 周小波编 阜阳师范学院物理与电子科学学院电子信息科学与技术教研室

第一章系统概述 一、系统简介 MCS-51单片机实验板是物理与电子科学学院自主研发设计的单片机实验系统。板载一片51内核STC89C52单片机,整个实验系统由17个独立模块组成,各模块相互独立,给学生提供了更大的发挥空间。利用目前流行的Keil c51软件,进行软、硬件仿真开发调试。 二、各模块电路 (1)单片机最小系统模块 最小系统电路主要由STC89C52单片机、时钟电路、复位电路等构成,所有的IO口均引出。 (2)串口电平转换模块

串口电平转换电路主要由MAX232芯片以及相关外围电路构成,可以用来下载程序,以及作串口通信实验。 (3)数码管驱动模块 8位共阳极数码管采用8550(PNP)三极管驱动,模块预留位选端口和段选端口两排插针,根据需要可自行连接。 (4)LED发光二极管模块 板载8个发光二极管,J1为接线端口,可根据需要自行连接到单片机的IO 口或者其他外设上,PZ2为排阻,起限流作用。 (5)键盘模块 键盘电路由4各独立按键和4*4矩阵键盘构成,Pk2接口为独立键盘的接线端子,Pk1端口为矩阵键盘的接线端子。

(6)DA转换模块 DA转换电路采用8位DA芯片DAC0832,PDA端口为8位数据的输入端,11 脚为DAC0832输出端,发光二极管用于指示DA转换的结果。 (7)AD转换模块 AD转换电路由8位AD转换芯片ADC0804构成,通过调节VR1电位器可以改 变AD输入端的模拟电压。

(8)电机驱动模块 采用L298N模块作为电机驱动,可以驱动2个直流电机或1个步进电机, J5为信号输入端,输出端J6接直流电机或者步进电机。 (9)总线扩展模块 采用82C55芯片作为总线的扩展,采用一片锁存器74HC573,使P0口可以作 为地址和数据总线的复用端口。J9为82C55的控制总线接线端子,J10为82C55 的地址和数据接线端子,PA、PB、PC为82C55的输出端口,可以外接其他外设完 成相应的实验。

单片机实验指导书——带答案

《单片机原理及应用》 实验指导书 姓名: 学号: 专业班级: 所在学院:成人教育学院 2012年5月日

单片机实验指导书 目录 实验一系统认识实验 (3) 实验二程序调试 (6) 实验三外部中断实验 (6) 实验四串口实验 (8)

实验一系统认识实验 一、实验目的 1.掌握SICElab-G2200实验/仿真系统的结构与使用方法; 2.熟悉单片机系统开发软件WA VE6000。 二、实验设备 1.G2200/2100 实验平台 1 台 2.仿真器/ 仿真板 1 台 3.连线若干根 4.计算机 1 台 三、实验内容 P1端口接发光二极管,加1点亮。 四、连线方案: 五、实验步骤 1.连接Lab51CPU板。(已由实验师连好) 2.仿真器与实验平台的连接 将Lab51板的DC34芯插座与G6W仿真器上的DC34插座用扁平电缆连接起来。(已由实验师连好) 3.仿真器与计算机的连接 用随机配带的串口通讯电缆,将仿真器与计算机连接起来,串口1、串口2均可。 特别注意:在仿真器与计算机连接串口电缆时,两台机器必须都断电,否则易损坏计算机和仿真器。 4.实验连线 按连线方案,用随机配带的实验连线插入孔后,轻轻转动一下锁紧插头,保证良好接触。拆线时,应先回转一下,不要硬拨,以免损坏线路板。不管是拆线还是插线,都应 在断电的情况下进行。实验中“连线方案”的粗线即为需用户动手接连的线。

5.检查接线是否有误,确信没有接错后,接上电源,打开电源开关。 6.在计算机上打开“WA VE6000集成调试环境”,界面如下图所示: 7.建立新程序(如果程序已编好,直接跳到第9步) 选择菜单[文件 | 新建文件]功能。 出现一个文件名为NONAME1的源程序窗口,在此窗口中输入以下程序 ORG 0 MOV P1,#0 ;熄灭发光二极管 LOOP: INC P1 CALL Delay SJMP LOOP Delay: MOV R2,#3 ;延时程序 MOV R1,#0 MOV R0,#0 DLP: DJNZ R0,DLP DJNZ R1,DLP DJNZ R2,DLP RET END 8.保存程序 选择菜单[文件 | 保存文件]或[文件 | 另存为 ]功能。 9.建立新的项目 选择菜单[文件 | 新建项目]功能。 新建项目会自动分三步走。 (1)加入模块文件。在加入模块文件的对话框中选择刚才保存的文件MY1.ASM,按打开键。如果你是多模块项目,可以同时选择多个文件再打开。 (2)加入包含文件。在加入包含文件对话框中,选择所要加入的包含文件(可多选)。如果没有包含文件,按取消键。 (3)保存项目。在保存项目对话框中输入项目名称。MY1无须加后缀。软件会自动将后缀设成“.PRJ”。按保存键将项目存在与你的源程序相同的文件夹下。 10.设置项目 11.编译程序 选择菜单[项目 | 编译]功能或按编译快捷图标或按F9键,编译项目。 在编译过程中,如果有错可以在信息窗口中显示出来。双击错误信息,可以在源程序中定位所在行。纠正错误后,再次编译直到没有错误。在编译之前,软件会自动将项目和程序存盘。在编译没有错误后,就可以执行、调试程序了。 12.执行、调试程序 有四种方法执行程序:全速执行、程序单步跟踪、执行到光标处和设置断点。 (1)全速执行 (2)程序单步跟踪 选择[执行 | 跟踪]功能或按跟踪快捷图标或按F7键进行单步跟踪调试程序。 (3)执行到光标处 (4)设置断点 (5)观察各变量值的方法

单片机实训指导书

实训项目一让单片机动起来1、实训目的及要求: 1)掌握单片机开发板的使用方法(驱动识别,程序下载) 2)掌握单片机程序开发软件KEIL的使用 3)掌握单片机程序烧录软件STC-ISP下载软件的使用 2、实训内容 1)根据实训报告内容编写单片机程序 2)调试程序并使用ISP下载软件将程序烧录到单片机芯片中 3)观察实验现象并记录 4)完成实训报告内容 3、实训准备 硬件:单片机开发板、电脑、杜邦线 软件:keil uvision4 、STC-ISP 4、实训过程 1)流程图

2)实训程序一: #include "reg52.h" sbit LED=P1^0; void main() { LED=0; while(1); } 实训程序二: #include "reg52.h" #define LED P1; void main() { LED=0xaa; while(1); } 3)实训步骤 ①打开KEIL软件编写LED控制程序。 ②程序调试无误后,使用KEIL生产HEX文件。 ③将生产的HEX文件烧录到单片机芯片中,并观察实验现象。

3)实验现象记录 实训程序一:。实训程序二:。 4)实训报告要求 ①将实训程序中的注释补充完整,了解每条语句作用。 ②完成如下评分表

实训项目二LED的闪烁1、实训目的及要求: 1)掌握单片机控制LED点亮和熄灭的方法。 2)了解单片机延时程序的原理及设计。 3)了解单片机中常用的变量类型及其定义方法。 2、实训内容 1)根据实训报告内容编写单片机程序 2)调试程序并使用ISP下载软件将程序烧录到单片机芯片中3)观察实验现象并记录 4)完成实训报告内容 3、实训准备 硬件:单片机开发板、电脑、杜邦线 软件:keil uvision4 、STC-ISP 4、实训过程 1)流程图

单片机实验指导

单片机实验1 汇编语言程序设计实验 ---- 存储器块清零或赋值 一.实验目的 1 熟悉存储器的读写方法,熟悉51汇编语言结构。 2 熟悉循环结构程序的编写。 3 熟悉编程环境和程序的调试。 二.实验内容 指定存储器中某块的起始地址和长度,要求将其内容清零或赋值。例如将4000H开始的100个字节内容清零或全部赋值为33H。 三.实验仪器 微机、WAVE6000编程环境软件,(单片机实验箱) 注意: 1 文件不要用中文名称保存时不要用中文路径(目录),不要放在“桌面”上,源文件和工程要放在同一个文件夹下,文件名称和路径名称不要太长。 2 查看存储器菜单使用:窗口---数据窗口---XDATA 观察存储器内容 3 查看SFR:窗口---CPU窗口查看CPU寄存器SFR 4 单步执行:执行---单步执行(F8),每执行一步,查看每条语句涉及到的寄存器和存储器内容的变化结果,是否是指令所要得到的结果,如不是,检查错误原因,修改。 5利用多种执行方法和观察各种窗口调试程序,直至程序满意为止。 编译器默认设置: 程序框图 参考程序: Block equ 4000h mov dptr, #Block ; 起始地址 mov r0, #10 ; 清10个字节 mov a, #33h ; Loop: movx @dptr, a inc dptr ; 指向下一个地址 djnz r0, Loop ; 记数减一 ljmp $ end

一.实验目的 1 熟悉51汇编语言程序结构。 2 熟悉循环结构程序的编写,进一步熟悉指令系统。 3 熟悉编程环境和程序的调试。 二.实验内容 将指定源地址(3000H)和长度(100字节)的存储块移动到目的地址(4000H)。三.实验仪器微机、WAVE6000软件,(单片机实验箱) 注意:在编程环境中,可以通过软件仿真,观察程单片机运行情况。 参考程序与流程图

单片机实验指导书终稿

实验一清零、移数、判断 一、实验目的 1、掌握汇编语言程序设计和调试方法。 2、掌握RAM存储器读写及存储块操作方法 3、熟悉分支结构程序的设计。 二、实验内容 将片内30H~40H及片外0010H~0100H清零,然后将片内41H~47H的内容移到片外0041H~0047H,判断: 若(0041H)<15,则求其平方存到0050H中,并将位00H置1。 (0041H)=15,则加15存到0050H中,并将位01H置1。 (0041H)>15, 则减15存到0050H中,并将位02H置1。 三、实验说明 通过本实验,学生可以了解单片机读写存储器的读写方法,同时也可以了解单片机编程,调试方法。 四、实验框图 片内外RAM清零流程图移数流程图

判断流程图 五、思考题 1、如果平方数超过255,怎样将数放到片内RAM 30H和31H单元内,写出指令。 2、位的表示方法有哪些,举例说明?将01H位清零的方法有几种,写出指令。

实验二排序、加法 一、实验目的 1、进一步掌握汇编语言程序设计和调试方法。 2、掌握数据排序的算法及加法运算。 二、实验内容 1、有两个长度为10个字节的无符号数分别放在片内30H和40H为首的存储单元中 (低字节),求其和(带进位位),放在50H为首的单元中。 2、将50H为首单元中的数按升序排列放在60H为首的单元中。 三、实验说明 通过本实验,学生可以了解单片机排序的算法,本程序采用“冒泡排序”法,算法是将一个数与后面的数相比较,如果比后面的数大,则交换,如此将所有的数比较一遍后,最大的数就会在数列的最后面。再进行下一轮比较,找出第二大数据,直到全部数据有序。 四、实验框图 加法运算流程图排序流程图 五、思考题 1、-125与-9相加,PSW中OV、AC、CY的值是多少?各表示什么含义? 2、两个压缩BCD码59和22相加,结果放到片内RAM 30H单元中,写出程序。

51单片机实验指导书

《MCS-51单片机原理及应用》实验指导书 福建师范大学光电与信息工程学院 2016年03月

目录 实验一开发环境IDE (1) 实验二汇编程序设计初步 (1) 实验三汇编程序设计-进阶 (1) 实验四简单的单片机C语言程序 (2) 实验五内部定时器0/1应用 (3) 实验六中断及服务程序设计 (4) 实验七LED流水灯程序 (1)

实验一开发环境IDE 一、实验目的 1、熟悉一种51单片机开发软件,例如Keil或Wave,掌握IDE使用方法,掌握项目创建、软件仿真等调试方法。 二、实验仪器 1、PC机1台 三、实验内容 1、初步认识IDE软件(以Keil为例)的软件界面及使用; 2、了解asm、lst、hex等文件; 3、简单程序编写、调试; 4、掌握Watch、Memory等观察调试方法。 四、预习要求 1、读懂各程序; 2、预先给出运算结果,以便和实验结果比较; 3、回忆“跟踪”、“单步”和“断点”调试方式的特点。 五、思考题 1、为什么程序需要一个死循环? 2、比较“跟踪”、“单步”和“断点”调试方式的特点。

实验二汇编程序设计初步 一、实验目的 1、熟悉51单片机的指令系统,掌握汇编语言程序的设计方法,掌握开发的调试方法。 二、实验仪器 1、PC机1台 三、实验内容 (1)多字节加法 (2)多字节减法 (3)多字节乘法 (4)多字节除法 四、预习要求 1、读懂课堂PPT各程序; 2、预先给出运算结果,以便和实验结果比较; 3、回忆“跟踪”、“单步”和“断点”调试方式的特点。 五、思考题 1、比较“跟踪”、“单步”和“断点”调试方式的特点。

单片机实验分析指导书

\\ 《单片机原理与应用》 实验指导书 注意: 1、做实验前必须预习 2、带教材和实验指导书 哈尔滨理工大学 自动化学院自动化系

实验仪的使用 本实例是仿真INTEL的8031单片机,来循环点亮P1口的发光二极管(低电平有效)。程序是用汇编语言来编写。下面介绍相应的操作步骤: 1、运行桌面“星研集成软件”,画面如下: 2、建立源文件 执行[主菜单?文件?新建],(或者点击图标)打开窗口。 选择存放源文件的目录,输入文件名,注意:一定要输入文件名后缀。对源文件编译、连接、生成代码文件时,系统会根据不同的扩展名启动相应的编译软件。比如:.ASM文件,使用A51来对它编译。本 实例文件名为xunhuan.asm 。窗口如下: 按“确定”即可。然后即出现文件编辑窗口: 输入源程序,参照实验一源程序。 1

这样一个源文件就建立好了。 3.编译、连接文件 首先选择一个源文件,然后可以编译、连接文件了。对文件编译,如果没有错误,再与库文件连接,生成代码文件(DOB、HEX文件)。编译、连接文件的方法有如下二种:(1)使用[ 主菜单?项目?编译、连接]或[主菜单?项目?重新编译、连接]”。(2)点击图标或来“编译、连接”或“重新编译连接”。编译、连接过程中产生的信息显示在信息窗的“建立”视中。编译没有错误的信息如下: 若有错误则出现如下信息框: 有错误、警告信息,用鼠标左键双击错误、警告信息或将光标移到错误、警告信息上,回车,系统自动打开对应的出错文件,并定位于出错行上。 这时用户可以作相应的修改,直到编译、连接文件通过。 4.调试 编译、连接正确后,可以开始调试程序。进入调试状态方法有: a)执行[ 主菜单?运行?进入调试状态] b)点击工具条的进入后的窗口如下: 2

单片机实验指导书2018

《单片机原理与应用》实验指导 桂林电子科技大学 电子工程与自动化学院 2018.10

实验一单片机开发系统的使用方法 一、实验目的 1.学习单片机开发系统和仿真软件的使用及程序调试方法。 2.掌握汇编程序的编写方法及常用技巧。 二、实验内容 1、学习用Keil软件进行51单片机的软件开发; 学习Keil软件的一般操作,步骤为:项目建立、程序录入、添加文件、编译生成HEX文件、(参见附录1) 2、学习用Keil软件基本调试。(参见附录2); 3、学习Proteus仿真软件的使用(参见附录3); 4、熟悉实验用单片机开发系统(参见操作指导书)。 三、实验原理 1、Keil软件使用练习 设(R0)=20H,(R1)=25H,(20H)=80H,(21H)=90H, (22H)=0A0H,(25H)=0A0H,(26H)=6FH,(27H)=76H,执行程序后,问程序完成什么功能,写出运行结果。(见参考程序一) 2、Proteus仿真软件使用练习 电路原理图如下,所需元件为:AT89C51、SW-SPST、LED-RED 图中用单片机的P1口作输出口接8个LED,8个LED按共阳极连接,端口逻辑值为0点亮LED;P3口作输入口接1个SW-SPST开关,P3口内含上拉电阻,当开

关打开时逻辑值为1,开关闭合时逻辑值为0。 编写程序点亮LED (见参考程序二) 3、下载 操作方法见附录1 四、实验预习 1、学习汇编语言编程的有关知识。 2、提前预习KEIL软件的使用方法,写出预习报告。 五、实验报告 1、总结出实验的详细步骤。 2、写出调试正确的程序及运行结果。 六、参考程序: 参考程序一 ORG 0000H MOV R0,#20H MOV R1,#25H MOV 20H,#80H MOV 21H,#90H MOV 22H,#0A0H MOV 25H,#0A0H MOV 26H,#6FH MOV 27H,#76H CLR C MOV R2,#3 LOOP: MOV A,@R0 ADDC A,@R1 MOV @R0,A CLR C INC R0 INC R1 DJNZ R2,LOOP JNC NEXT MOV @R0,#01H SJMP $ NEXT: DEC R0

最新单片机实验指导

单片机实验指导

实验一 跑马灯实验 一、实验目的与要求 熟悉星研集成环境软件或熟悉Keil C51集成环境软件的使用方法。 熟悉MCS51汇编指令,能自己编写简单的程序,控制硬件。 二、实验设备 STAR 系列实验仪一套、PC 机一台 三、实验内容 1、熟悉星研集成环境软件或熟悉Keil C51集成环境软件的安装和使用方法。 2、照接线图编写程序:使用P1口控制F5区的8个指示灯,循环点亮,瞬间只有一个灯亮。 2、观察实验结果,验证程序是否正确。 四、实验原理图 P1.01P1.12P1.23P1.34P1.45P1.56P2.1(A9)22P2.2(A10)23P2.3(A11)24P2.4(A12)25P2.5(A13)26P2.6(A14)27P2.7(A15)28PSEN 29ALE/PROG 30EA/Vpp 31P0.7(AD7)32P0.6(AD6)33P0.5(AD5)34P0.4(AD4)35P0.3(AD3)36P0.2(AD2)37P0.1(AD1)38P0.0(AD0)39Vcc 40P1.67P1.78RST 9(RXD)P3.010(TXD)P3.111(INT0)P3.212(INT1)P3.313(T0)P3.414(T1)P3.515(WR)P3.616(RD)P3.717XTAL218XTAL119P2.0(A8) 21 GND 20 89C52 U42DS35DS36DS37DS38DS39DS40DS41VCC DS421 2345678510 R111 510R112 510R113 510R114 510R115 510R116 510R117 510R118

《单片机原理》实验指导书proteus

《单片机原理及接口》 实验指导书 莆田学院信息工程学院 2016年2月

目录 实验一仿真系统搭建 (1) 实验二实验系统编程应用 (7) 实验三流水灯实验 (9) 实验四 LED数码管显示实验 (11) 实验五键盘实验 (13) 实验六中断系统实验 (15) 实验七 51定时器实验 (17)

实验一仿真系统搭建 一、实验目的 了解实验设备的软硬件组成,包括keil单片机仿真软件的安装、设置与使用,单片机仿真调试软件的安装、设置与使用,单片机仿真器的功能、结构与使用,51单片机实验板的电路结构、工作原理与使用。 熟悉使用keil单片机仿真软件、仿真调试软件和实验板进行协调工作的方法。熟悉使用至少两种单片机仿真系统建立、设置、调试工作项目的方法。 二、实验原理 整个实验系统由仿真调试软件(keil单片机仿真软件、伟福仿真调试软件)、单片机仿真头(伟福仿真器)和单片机最小板(51单片机实验板)组成或使用Proteus 仿真系统进行硬件仿真。仿真软件进行项目的管理设置,仿真器进行软件的下载与单片机的仿真(IAP),实验板搭载建立各种外围电路。 主要掌握的软件有KEIL编程软件、Proteus硬件仿真软件和其他一些差用软件及硬件构造。 整个实验系统使用时,若使用硬件仿真,第一步安装KEIL软件,第二步安装星研系列仿真调试软件,第三步将仿真器的数据口和电源口连接微机及实验板,进行仿真器驱动安装。第四步将仿真头插入实验板插座(注意仿真头三角箭头标注引脚为第一脚),开机调试。若使用软件仿真,第一步安装KEIL软件,第二步安装Proteus硬件仿真软件,然后用Proteus硬件仿真软件进行电路构建,最后进行程序调试。 1、Keil软件的安装设置:

51单片机实验指导书

实验一、80C51存储器数据传输实验: 1、实验目的: 1)熟悉嵌入式交叉开发环境,结合简单的应用实例,完成工程的建立、应用程序的编写,并进行编译、调试,观察相关寄存器及存储空间的使用情况。 2)熟悉51单片机的开发环境Keil C51,掌握80C51单片机内部数据存储器、外部数据存储器的数据传送特点和应用。 2、实验内容: 第三章思考与练习(p87),从12、14、15、16中任选2题进行实验验证 要求:回答题目中问题,并列写出程序执行完后所涉及的各寄存器的值。 实验二、80C51汇编语言编程实验: 1、实验目的: 1)熟悉80C51单片微机汇编语言设计及编程技巧。 2)掌握逻辑运算程序的设计方法。 3)掌握多字节无符号十进制数加、减法程序的设计。 2、实验内容: 1)逻辑运算 设:A=63H ,B=82H ,C=C5H ,D=36H ,根据下列逻辑运算式,编写程序计算运算结果。 Y =A?B ?C ????????????????D +A ???????? 2)十进制加、减运算 286729 + 652430 -752196 = ? 在8051片内数据存储器的20H~22H 中放入3字节被加数(低位在先)、23H~25H 放入加数(低位在先)、26~28H 放入减数,结果存入29H~2BH 单元(低位在先)。 附:实验二参考例程 1)逻辑运算: ORG 0000H AJMP MAIN ORG 0080H MAIN: M OV A, #63H ;将A 值给累加器A MOV R0, #36H ;将D 值给R0 ORL A, R0 ;将A 与D 逻辑或,即A+D 存入累加器A CPL A ;求A +D ???????? MOV R1, A ;将A +D ????????存入R1 MOV A, #82H ;将B 值给累加器A MOV R0, #0C5H ;将C 值给R0 ANL A, R0 ;B 与C 逻辑与,结果存入累加器A CPL A ;求反,即B ?C ?????? MOV R0, #63H ;将A 值存入RO XRL A, R0 ;A?B ?C ??????,存入累加器A CPL A ;A?B ?C ??????????????? ANL A, R1 ;A?B ?C ????????????????D +A ???????? END

MSP430单片机实验指导书

试验一 一、实验目的 进一步熟悉IAR for MSP430编程软件和PROTEUS仿真软件的使用。了解并熟悉单片机I/O口和LED灯的电路结构,学会构建简单的流水灯电路。掌握MSP430单片机I/O口的编程方法和使用I/O口进行输入输出的注意事项。掌握PROTEUS仿真软件仿真MSP430单片机过程中的注意事项。 二、实验内容 1、运用PROTEUS仿真软件绘制LED流水灯电路; 2、运用IAR for MSP430编程软件编辑led流水灯程序,并且生成.hex 或.d90文件,并且将生成的文件加载到单片机中,程序使用P1或其它端口来演示跑马灯,输出低电平驱动。 三、实验器材 电脑一台 四、实验原理及介绍 LED流水灯实际上是一个带有发光二极管的单片机最小系统,即由led灯、电阻、电容器、电源等电路和必要的软件组成的单个的单片机;如果要让接在P1或其它端口的LED灯亮起来,那么只需要将P1或其它端口的电平变为低电平就可以了。同理,将该端口电平变为高电平,LED灯就会熄灭。 五、程序流程图 开始 端口初始化 LED顺序点亮 结束 六、实验步骤 1、运用PROTEUS仿真软件绘制电路图; 2、运用IAR for MSP430编写流水灯程序,并且生成‘’.hex’’或“.d90”文件

3、将‘’.hex’’或“.d90”文件软件加载到PROTEUS仿真软件中; 4、换一种流水灯的亮灭顺序,改变延时时间的大小,多次实验,灵活使用 七、参考程序 #include "msp430f249.h" #define uint unsigned int /******************** 主函数 **************************/ void main(void) { Uint I; WDTCTL = WDTPW + WDTHOLD; P1DIR = ox0ff; while(1) { PIOUT = 0x00; For(I = 0;I < 65565;I ++); PIOUT = 0x0ff; For(I = 0;I < 65565;I ++); } } 八、心得体会(二页以上)

单片机实验指导书

单片机实验指导书 Company Document number:WUUT-WUUY-WBBGB-BWYTT-1982GT

《单片机原理与应用》 实验指导书 注意: 1、做实验前必须预习 2、带教材和实验指导书 哈尔滨理工大学 自动化学院自动化系 实验仪的使用 本实例是仿真INTEL的8031单片机,来循环点亮P1口的发光二极管(低电平有效)。程序是用汇编语言来编写。下面介绍相应的操作步骤: 1、运行桌面“星研集成软件”,画面如下: 2、建立源文件 执行 [主菜单文件新建],(或者点击图标)打开窗口。 选择存放源文件的目录,输入文件名,注意:一定要输入文件名后缀。对源文件编译、连接、生成代码文件时,系统会根据不同的扩展名启动相应的编译软件。比 如:.ASM文件,使用A51来对它编译。本实例文件名为。窗口如下: 按“确定”即可。然后即出现文件编辑窗口: 输入源程序,参照实验一源程序。

这样一个源文件就建立好了。 3.编译、连接文件 首先选择一个源文件,然后可以编译、连接文件了。对文件编译,如果没有错误,再与库文件连接,生成代码文件(DOB、HEX文件)。编译、连接文件的方法有如下二种:(1)使用[ 主菜单项目编译、连接 ]或[主菜单项目重新编译、连接]”。(2)点击图标或来“编译、连接”或“重新编译连接”。编译、连接过程中产生的信息显示在信息窗的“建立”视中。编译没有错误的信息如下: 若有错误则出现如下信息框: 有错误、警告信息,用鼠标左键双击错误、警告信息或将光标移到错误、警告信息上,回车,系统自动打开对应的出错文件,并定位于出错行上。 这时用户可以作相应的修改,直到编译、连接文件通过。 4.调试 编译、连接正确后,可以开始调试程序。进入调试状态方法有: a)执行[ 主菜单运行进入调试状态] b)点击工具条的进入后的窗口如下:

单片机实验指导书

1.TKSTDIO 集成开发环境简介 TKSTDIO 是一个集成开发环境软件。它提供了工程管理、文件编辑、编译连接、调试与仿真等强大功能。在此环境下可方便地开发单片机应用系统。 在TKSTDIO 集成开发环境中,工程是一个非常重要的概念。它是用户组织一个应用的所有源文件、设置编译连接选项、生成可调试下载文件和最终Bin 文件的一个基本结构,所有工作都围绕工程而展开。一个工程管理一个应用的所有源文件、库文件及其它输入文件,并根据实际情况进行相应的编译连接设置。 实验基本操作步骤: (1)建立自己实验项目文件夹(以学号或姓名命名); (2)打开TKSTDIO ; (3)[文件]→[新建]→[工程]→[Project Wizard]→[选择自己文件夹]→[输入工程名]→[确定]→[输入/选择单片机型号(STC89C51RC )]→[确定]; (4)[文件]→[新建]→[文件]→[Asm File]→[选择自己文件夹]→[输入文件名]→[确定]; (5)在弹出窗口输入/粘贴/打开实验1源程序; (6)[工程]→[生成“ ”]; (7)[调试]→[启动/停止调试]→……; (8)[打开STC-ISP.EXE]; (9)[打开程序文件]→[工程文件夹→DeBugRel →*.hex ]→[打开]→[DownLoad/下载]→程序在实验箱/开发板上运行,观察运行情况。 2.实验箱驱动与译码电路 由于实验箱上扩展器件较多,所以在系统总线上加了驱动器。数据总线(P0)口通过双向驱动器芯片74LS245驱动。低5位地址(A0A1A2A3A4)和控制信号(WR ———、RD ——— 、ALE )通过单向驱动器芯片74LS244驱动。系统通过两片3-8译码器芯片74LS138级联形成4-16译码逻辑,其译码输出作为实验箱上其它扩展器件译码控制信号,确定其地址范围。P 2.7P 2.6P 2.5P 2.4作译码器输入,译码输出SEL0~SEL7所确定的地址空间分别为:0xxxH 、1xxxH 、图1.1 实验箱驱动与译码电路

AVR单片机C语言程序设计实验指导书

实验一发光二极管的移动控制 一、实验目的 1.熟悉并行接口的设置与应用; 2.进一步熟悉编译软件和下载软件的使用; 3.熟悉C语言中移位、延时、数组等指令的应用; 4.增强学习单片机的兴趣。 二、实验内容 1.参考课本P128“发光二极管的移动控制”实验程序,实现发光二极管循环点亮的按键控 制。 ) 2.设计一个完整程序(另建一个文档),实现8个led灯的自动顺序(加法)点亮和逆序 (减法)点亮。见参考程序,并在程序中添加必要的解释文字。 三、实验步骤 1.以班级和姓名为文件夹名称在D盘根目录下新建一个子目录文件夹,用来保存每次实验的项目和程序。(注意:每次实验的位置固定,即下次实验的计算机还是上次的计算机。) 2.再在这个子目录下以实验题目为名新建一个文件夹。打开ICCAVR开发编程软件,新建一个工程文件项目,参照程序清单或根据实验要求自己重新修改设置并输入程序。 3.保存程序,并将程序源文件添加到项目里。见下图1。 图1 ( 4.设置项目属性,选择目标芯片等,见下图2,3。

图2 图3 5.编译程序。将所输入的程序进行编译(菜单Project→ Make命令),或者在工具栏单击 按钮),若编译时下方出现错误提示,说明程序有语法错误,此时必须根据编译器所列 出的错误消息,逐条查改,重新编译,直到错误消除并生成*.hex文件。 6.功能仿真。利用proteus或AVR studio的仿真功能对程序进行功能性仿真,验证程序功能是否正确。 7.打开下载软件(progisp或AVR Studio里的JTAG ICE),将刚刚生成的相应*.hex文件写入单片机(在此之前,须将单片机实验板按要求与PC机连接正确,并接通电源)。 8.验证硬件实现的结果是否与功能要求一致。 四、参考程序(实现8个led灯的自动顺序(加法)和逆序(减法)点亮的部分程序) > /*********************** 系统外接8M晶振 ************************/ unsigned char i; while (1) { for (i = 0; i < 8; i ++) { PORTB = ~(1 << i); delay_ms(200); 。 } for (i = 8; i > 0; i --) { PORTB = ~(1 << i-1); delay_ms(200); } }

相关主题