Keil C51单片机实验指导

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第1页共18页提要:KeilC51实验项目1、单片机的IO编程实验1IO开关量输入实验实验2IO输出驱动继电器(或光电隔离器)实验实验3IO输入/输出------半导体温度传感器DS18B20实验2、单片机的中断系统实验外部外部中断----脉冲计数实验3、单片机的定时器/计数器实验1计数器实验实验2秒时钟发生器实验4、单片机的串口特点和编程实验PC机串口通讯实验5、存储器实验RAM存储器读写实验6、PWM发生器实验PWM发生器(模拟)实验7、WDG看门狗实验1外扩WDG(MAX813)实验实验2WDG(内部)实验8、SPI总线实验1SPI(模拟)实验-----TLC2543AD转换实验实验2SPI(模拟)实验-----TLV5616DA转换实验9、I2C总线实验I2C(模拟)实验-----AT24C01读写实验10、综合实验实验1HD7279LED数码管显示实验实验2HD7279键盘实验实验3外部中断---电机转速实验第2页共18页一、单片机的IO编程实验1IO开关量输入实验目的:学习单片机读取IO引脚状态的的方法。内容:编程读取IO引脚状态。设备:EL-PreJob-I试验箱、EXP-KEILC51CPU板。编程:首先要把相关的引脚设置在IO的输入状态,然后写一个循环,不停地检测引脚的状态。步骤:1、将CPU板正确安放在CPU接口插座上。2、连线:用导线将试验箱上的的MCU_IO1---MCU_IO8分别连接到SWITCH的8个拨码开关的K1---K8的输出端子K1---K8上,连接好仿真器。3、试验箱上电,在PC机上打开KeilC环境,打开试验程序文件夹IO_INPUT下的工程文件IO_INPUT.Uv2编译程序,上电,在程序注释处设置断点,进入调试状态,打开窗口Peripherals--IO-Port--P1,改变开关状态,运行程序到断点处,观察窗口的数值与开关的对应关系。第3页共18页实验2IO输出驱动继电器(或光电隔离器)实验目的:学习IO输出控制方法。内容:通过单片机的IO引脚驱动继电器(或光电隔离器)动作。设备:EL-PreJob-I试验箱、EXP-KEILC51CPU板。编程:首先要把相关的引脚设置在IO的输出状态,然后写一个循环,依次输出高低电平。步骤:1、将CPU板正确安放在CPU接口插座上。2、连线:用导线将MCU的MCU_IO1、MCU_IO2分别连接到“反相器输入”和“光电隔离的输入P_IN”上,“反相器输出”和“P_OUT”分别连接到“RELAY的R_IN”和“发光二极管L2的输入孔L2上”,“RELAY的R_OUT”连接到“发光二极管L1的输入孔L1”,连接好仿真器。3、试验箱上电,在PC机上打开KeilC环境,打开试验程序文件夹IO_OUTPUT下的工程文件IO_OUTPUT.Uv2编译程序,上电,进入调试状态,打开窗口Peripherals--IO-Port--P1,单步运行程序,观察窗口的数值变化。4、全速运行程序,观察继电器的发光二极管的亮灭变化,同时确定继电器动作(或光电隔离器导通)与IO输出电平的关系。第4页共18页实验3IO输入/输出------半导体温度传感器DS18B20实验目的:学习IO引脚编程实现交替输入、输出的方法。内容:通过单片机的IO引脚与半导体温度传感器实现单线通讯。设备:EL-PreJob-I试验箱、EXP-KEILC51CPU板。编程:根据18B20的资料(见备注),将IO引脚设置在输出状态,分别模拟出不同的命令时序,例如复位、读寄存器等;再改变IO引脚的为输入状态,接收传感器输出的数据。步骤:1、将CPU板正确安放在CPU接口插座上。2、连线:用导线将MCU的MCU_IO1连接到TEMPSENSORDS18B20的DQ。3、试验箱上电,在PC机上打开KeilC环境,打开试验程序文件夹IO_INOUTPUT下的工程文件IO_INOUTPUT.Uv2编译程序,上电,进入调试状态,打开窗口VIEW--Watch&CallstackWindows,按照程序注释说明设置断点,全速运行程序到断点处,观察寄存器R7中的数据,用手摸住传感器DS18B20芯片,再运行到断点处,比较R7的变化。4、备注:DSl8B20数字温度计提供9位(二进制)温度读数指示,器件的温度信息经过单线接口送入DSl8B20或从DSl8B20送出,因此从主机CPU到DSl8B20仅需一条线(和地线),DSl8B20的电源可以由数据线本身提供而不需要外部电源。因为每一个DSl8B20在出厂时已经给定了唯一的序号,因此任意多个DSl8B20可以存放在同一条单线总线上,这允许在许多不同的地方放置温度敏感器件。DSl8B20的测量范围从-55到+125增量值为0.5可在ls(典型值)内把温度变换成数字。第5页共18页二、单片机的中断系统实验外部中断----脉冲计数实验目的:学习单片机的外部中断使用方法。内容:对外部中断计数显示。设备:EL-PreJob-I试验箱、EXP-KEILC51CPU板。编程:首先第一步设置单片机的IO为输入状态,第二步设置引脚的中断触发方式,一般设置为边沿触发,第三步,设置外部中断的优先级,第四步,编写中断服务程序,包括中断入口跳转等,第五步,设置中断使能,允许外部引脚触发中断。第六步,设置死循环,主程序结束,交给中断服务程序完成计数。步骤:1、将CPU板正确安放在CPU接口插座上。2、连线:用导线将MCU的INT0连接到单脉冲输出孔P-,连接好仿真器。3、试验箱上电,在PC机上打开KeilC环境,打开试验程序文件夹EXT_INT1下的工程文件EXT_INT1.Uv2,编译程序,上电,进入调试状态,按照程序注释说明设置断点,全速运行程序,每按下一次单脉冲开关Paulse,程序运行到断点处一次,观察寄存器R1的变化。第6页共18页三、单片机的定时器/计数器实验1计数器实验目的:学习单片机的定时/计数器的计数功能使用方法。内容:对外部单脉冲信号进行计数,计数10个后产生计数中断。设备:EL-PreJob-I试验箱、EXP-KEILC51CPU板。编程:使用定时/计数器的计数功能,将外部时钟信号加在计数器的计数时钟输入引脚上,当计数10次后,计数器溢出,触发标志位,编程控制分频输出引脚电平翻转,产生分频后的时钟信号。步骤:1、将CPU板正确安放在CPU接口插座上。2、连线:用导线将MCU的T0连接到DDS信号源的OUTPUT上(设置信号源的Vpp=2~5V之间;使之符合TTL电平的要求,高电平约在3~5V之间,低电平约在0~0.8V之间)。此外将跳线J8跳到T1位置,连接好仿真器。3、试验箱上电,在PC机上打开KeilC环境,打开试验程序文件夹COUNTER下的工程文件COUNTER.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。4、上电全速运行程序,用示波器的两个通道观察时钟信号发生器的输出信号OUTPUT和单片机的MCU_IO1的波形,比较二者的频率关系第7页共18页实验2秒时钟发生器实验目的:学习单片机的定时/计数器的定时功能使用方法。内容:产生频率为0.5Hz的时钟输出。设备:EL-PreJob-I试验箱、EXP-KEILC51CPU板。编程:使用定时/计数器的定时功能,时钟源采用系统时钟,根据时钟源的频率配置初值寄存器,使能定时器中断,在中断服务程序中翻转一个IO引脚输出,产生0.5Hz的时钟输出。步骤:1、将CPU板正确安放在CPU接口插座上。2、连线:用导线将MCU的MCU_IO1连接到发光二极管L1的输入L1上,连接好仿真器。3、试验箱上电,在PC机上打开KeilC环境,打开试验程序文件夹TIMER_SECOND下的工程文件TIMER_SECOND.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。4、全速运行程序,观察发光二极管的亮灭情况。5、备注:现在的单片机系统时钟较高,难于产生1秒的定时中断,所以,可以设置定时时间为50毫秒,在中断服务程序中设置程序计数,当累加到1秒后,控制输出IO引脚电平翻转,驱动发光二极管。第8页共18页四、单片机的串口特点和编程实验PC机串口通讯实验目的:学习单片机串口的使用方法。内容:与PC机实现通讯。设备:EL-PreJob-I试验箱、EXP-KEILC51CPU板。编程:第一步,配置串口工作在8位,波特率可变异步通讯工作方式,波特率由定时器1确定,同时使能其中断并清除其中断标志位;第二步,配置定时器1,工作在8位自动重装入模式,根据波特率计算其初值。第三步,编写串口中断服务程序,只处理接收中断,对发送中断只清除标志,不做其他处理。第四步,设置死循环,交由中断服务程序处理。步骤:1、将CPU板正确安放在CPU接口插座上。2、连线:用导线将MCU的TXD、RXD分别连接到RS232的232TXD、232RXD,用附带的直连串口线连接试验箱的DB9和计算机的串口,接好仿真器。3、试验箱上电,在PC机上打开KeilC环境,打开试验程序文件夹RS232下的工程文件RS232.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。4、打开PC机的超级终端,设置波特率115200、数据位8、无流控、无校验等信息,PC机全速运行试验程序,在超级终端里输入可显示字符,观察超级终端的显示,断开连接的串口线,再输入字符,观察显示有什么不同。5、备注:在串口中断服务程序中,要清除中断标志位。在发送数据前,要检测发送状态位在发送结束状态。第9页共18页五、存储器实验RAM存储器读写实验目的:学习存储器数据读写方法。内容:将内部RAM中的一段数据复制到另一RAM空间。设备:EL-PreJob-I试验箱、EXP-KEILC51CPU板。编程:首先设置源的首地址和目的首地址,再设置数据块的长度,设置一个变量,先从源读取一个字节,再写入到目的地址中,如此循环,直至到数据块的长度。步骤:1、将CPU板正确安放在CPU接口插座上。2、连线:接好仿真器。3、试验箱上电,在PC机上打开KeilC环境,打开试验程序文件夹RAM下的工程文件RAM.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。4、按照注释设置断点,打开变量观察窗口,全速运行试验程序到断点处,观察2个数组内容的变化。5、备注:在汇编中,对内部存储器的操作使用指令MOV,外部存储器的操作使用MOVX和MOVC,其他相同。6、KeilC环境下观察变量的方法:在地址框填写:C:0000查看CODE区D:0000查看DATA区I:0000查看IDATA区X:0000查看XDATA区第10页共18页六、PWM发生器实验PWM发生器(模拟)实验目的:学习利用定时器和IO产生PWM的方法。内容:产生占空比变化的PWM波形输出。设备:EL-PreJob-I试验箱、EXP-KEILC51CPU板,示波器。编程:使用定时/计数器的定时功能,分别产生PWM的高电平和低电平。第一步,首先选择使用单片机的定时/计数器0的定时功能,确定工作方式。第二步,根据PWM频率要求确定初值。第三步,使能定时器的中断。第四步,编写定时器中断服务程序,确定PWM波形高低电平的保持时间,控制IO引脚输出翻转电平。做一个死循环,一切交给中断处理。步骤:1、将CPU板正确安放在CPU接口插座上。2、连线:连接好仿真器。3、试验箱上电,在PC机上打开KeilC环境,打开试验程序文件夹PWM_IO下的工程文件PWM_IO.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。4、全速运行程序,用示波器的单片机的MCU_IO1的波形。5、备注:定时器产生中断的定时时间是PWM波形占空比调整的最小单位,即分辨率,在定时器中断服务程序中对中断计数,控制IO电平的翻转。第11页共18页七、WDG看门狗实验1外扩WDG(MAX813)实验目的:学习外扩看门狗控制器的使用方法。

1 / 18
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功