C8051F021单片机实验指导_第1页
C8051F021单片机实验指导_第2页
C8051F021单片机实验指导_第3页
C8051F021单片机实验指导_第4页
C8051F021单片机实验指导_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、c8051f021单片机实验指导exp-c8051f021 配 el-emcu-i 实验指导书提耍:实验项li1、单片机的10编程实验1 10开关量输入实验实验2 10输出驱动继电器(或光电隔离器)实验实验3 10输入/输出半导体温度传感器ds18b20实验2、单片机的中断系统实验1外部外部中断-一-脉冲计数实验3、单片机的定时器/计数器实验1计数器实验实验2秒时钟发工器实验4、单片机的串口特点和编程实验1 pc机串口通讯实验实验2 rs485通讯实验5、存储器实验1 ram存储器读吗实验6、pwm发生器实验1 pwm发牛器(模拟)实验实验1 pwm发生器(内部)实验7、wdg看门狗exp-c

2、8051f021 配 el-emcu-i 实验指导书8、spi总线实验1 spi (模拟)实验tlc2543 ad转换实验实验2 spi (模拟)实验tlv5616 da转换实验9、i2c总线实验1 t2c (模拟)实验at24c01读写实验 实验2 t2c (内部)实验at24c01读写实验10、综合实验实验1 hd7279led数码管显示实验实验2 hd7279键盘实验实验3外部中断-一电机转速显示实验11、步进电机正反转实验12、tft液晶显示彩色条纹实验13、16x16led点阵显示汉字实验第2页共28页exp-c8051f021 配 el-emcu-t 实验指导书一、单片机的10编程

3、实验1 1()开关最输入实验h的:学习单片机读取10引脚状态的的方法。内容:编程读取10引脚状态。设备:ei-emcu-t 试验箱、exp-c8051f021 cpu 板。编程:首先要把相关的引脚设置在10的输入状态,然后写一个循环,不停地检测引脚 的状态。2、连线:用导线将试验箱上mcu部分的101 -一 108分别连接到switch的8个拨码开 关的k1-k8的输出端子k1-一k8上,连接好仿真器。3、试验箱上电,在pc机上打开keil c环境,打开试验程序文件夹i()_input下的工程 文件i0.input.uv2编译程序,上电,在函数maino的最后一句设置断点,进入调试状 态,打开

4、窗口 poripherals->i0-port->p3,改变开关状态,运行程序到断点处,观察窗 口的数值与开关的对应关系。pq io ihputision2 - d:t»p大学生st业前培新教材(pre-job_traih) 试鑿程序io_ilpirr»ain. c»fr2bu£霧o ?)(? ? o左任 險犀哭y a e zproject :vorkspsceregis t 吃 i-regs/*接线21、甘导线将mcu的mcu_101 -mcu_i08分别连接到switch的k1-r00x001rl0x00:r20x00r30x00:r40

5、x00:r50x00:r60x00sysrt0x00a0x00b0x00:jsp0x08dptrox.pc $ox.spsw0x00+mi scvalue=| f. 0b过程:上电在函数mam()的最后一句设置断点,进入调试状态,打: 运行程序到断点处观蔡窗口的数值与开关的对应关系。*/#mclude <c8051f020 .h>void chip_init (void) /芯片初$wdtcn = oxde;wdtcn = oxad oscicn = 0x7;void main (void)unsigned char value;chip_init();wh i1e (1)valu

6、e = p3;/设置断点观察10奩口中p3的数据j|=| file edit view project debug flash peripherals tools svcs window help实验2 10输岀驱动继电器(或光电隔离器)实验冃的:学习10输出控制方法。内容:通过单片机的10引脚驱动继电器动作。设备:el-emcu-i 试验箱、exp-c8051f021 cpu 板。编程:首先要把相关的引脚设置在10的输出状态,然后写一个循环,依次输出高低电步骤:1、将cpu板正确安放在cpu接口插座上,2、连线:用导线将mcu的iok 102分别连接到relay的r_in和光电隔离的输入p_

7、in 匕r.out和p_out分别连接到发光二极管l1和l2的输入孔l1和l2上,连接好仿真 器。3、试验箱上电,在pc机上打开keil c环境,打开试验程序文件夹io_output下的工 程文件io output. uv2编译程序,上电,进入调试状态,打开窗口 peripherals>10- port->p3,单步运行程序,观察窗口的数值变化。4、全速运行程序,观察继电器的发光二极管的亮灭变化,同时确定继电器动作(或光 电隔离器导通)与10输出电平的关系。画 io_output - kision2 - d:tbp大学生就业前培新教材 c pre-job_tr*m) 试去程序io_

8、outputbain. cj|=| file edit view project debug flash peripherals tools svcs window help率率心 %鬼彌|lfi3i£13霧討刊帀仔力左佢險鼻资y h e zxbr2 = 0x40; void main (void)char i=0; chip_init(); wh i1e (1)parallel port 3吩1p3 = p3;for(i=0;i<10;i+) delay(500cfort 3f3: oxffp3md0ut: |0xff7 bimupu5二 nd_no* agdi-msg: b

9、reak 关关* agdi-msg: break * agdi-msg: break 关关关 agdi-msg: break * agdi-msg: break * agdi-msg: breakset 0xff000014 cleared oxffoooo14set at 0xff000014 cleared ct oxffoooo14set ct 0xff000014 cleared “t 0xff000014asm assign breakdisable breakenable breakkill breaklist breakset breakacces14 | 4 | »|

10、build command find in files /| 匕实验3 10输入/输出半导体温度传感器ds18b20实验冃的:学习10引脚编程实现交替输入、输出的方法。内容:通过单片机的10引脚与半导体温度传感器实现单线通讯。设备:el-emcu-i 试验箱、exp-c8051f021 cpu 板。编程:根据18b20的资料(见备注),将10引脚设置在输出状态,分别模拟出不同的 命令时序,例如复位、读寄存器等;再改变to引脚的为输入状态,接收传感器输出的数 据。步骤:1、将cpu板正确安放在cpu接口插座上,2、连线:用导线将mcu的t01连接到传感器的接口端子dq ±,连接好仿真器

11、。3、试验箱上电,在pc机上打开keil c环境,打开试验程序文件夹io_inoutput下的 工程文件10_in0utput. uv2编译程序,上电,进入调试状态,打开窗口 v1ew watch acall stack windows,按照程序注释说明设置断点,全速运行程序到断点处,观察变量i 的数据,用手摸住传感器ds18b20芯片,再运行到断点处,观察窗口的变量数值的变化。io_iioutnjt - kision2 - d:t»p±学生就业前培新教材 c pke-jobtraii) 试整程序io_iioutputain.| eile edit | viewprojec

12、t debug flash peripheralstools svcs window help7 status bar7 file toolbar盲盲is裔壹 11 build toolbarproject .varkspsce " debug toolbarregis t 吃 regs: ro rlwindow区1 output windowr2r3source browserwindowwatch & lail stack windowy windowreturn ds18b20temp(); void main(void)sp dptr pc $pswmize昌 fil

13、es &code coverage window e performance analyzersymbol windowseri al window #1_ 曹 serial window #2serial window 检 j toolboxperiodic window updawindownilunsigned int i ;| chip_init();wh i1e (1)1= runds1820(); delay(50000);/设, workbook mode 査gdi " include dependencies agdi options. 直gdi-msg: a

14、gdi-msg: agdi-msg: agdi-msg:load hd:关关关关关关关关关breakbreak breakbreak12cleared at uxtp 000 set at oxffooo123 set at 0xff000123 cleared oxffooonamevalue1| 0x019basm assign breakdisable breakenable| locals & watch *1 f watch =2 入 c4、备注:ds18b20数字温度计提供9位(二进制)温度读数指示,器件的温度信息经过 单线接口送入ds18b20或从ds18b20送出,因此

15、从主机cpu到ds18b20仅需一条线(和地 线),ds18b20的电源可以由数据线本身提供而不需要外部电源。因为每一个ds18b20在出 厂时已经给定了唯一的序号,因此任意多个ds18b20可以存放在同一条单线总线上,这允 许在许多不同的地方放宜温度每攵感器件。ds18b20的测量范围从-55到+125增量值为0. 5 对在1 s (典型值)内把温度变换成数字。第6页共28页exp-c8051f021 配 el-emcu-t 实验指导书二、单片机的中断系统实验1外部屮断一一脉冲计数实验h的:学习单片机的外部中断使用方法。内容:对外部中断计数显示。设备:el-emcu-i 试验箱、exp-c8

16、051f021 cpu 板。编程:首先第一步设置单片机的10为输入状态,第二步设置引脚的中断触发方式,一 般设置为边沿触发,第三步,设置外部中断的优先级,第四步,编写中断服务程序,包括 中断入口跳转等,第五步,设置中断使能,允许外部引脚触发屮断。第六步,设置死循 坏,主程序结束,交给中断服务程序完成计数。步骤:1、将cpu板正确安放在cpu插座上,cpu板上跳线j7短接在into处;2、连线:用导线将mcu的into连接到单脉冲输出孔p-,连接好仿真器。3、试验箱上电,在pc机上打开keil c环境,打开试验程序文件夹ext_int1下的工程 文件ext_intl.uv2,编译程序,上电,进入

17、调试状态,打开窗口 view watch &call stack windows,按照程序注释说明设置断点,全速运行程序,每按下一次单脉冲开关 paulse,程序运行到断点处一次,观察变量mnn的变化。j| file edit view project debug flash. peripherals tools svcs window help率率心 %鬼彌|lfi3i£13ggr|bg?任險愿<-e y n e zregis t 吃value-regsro0x00rl0x00r20x00r30x00r40x00r50x00r60x00 rt0x00rsys a0x0

18、0b0x00 sp0x0 d dptr0x0000pc $0x000fh -psw0x00+ mi ecproject :vorkspscex昌 fiiee 和 regs koexo =1;ito =1; /xbro=0;xbr1=4;/xbr2=0x40;ea =1;边沿触发.0,其他映射关:void speed_isr (void) int err up t 0/按键中断程序static char num;if (num+>100) num = 0;/设置断点,观瘵变呈】void main (void)i chip_init();i while(1);mopule_nd_no* ag

19、di-msg: break * agdi-msg: break * agdi-msg: break * agdi-msg: break * agdi-msg: break * agdi-msg: breakset at oxffoooojj clearedoxffset at oxffoooo clearedoxffset ait oxffoooo cleared ait oxffasm assign breakdisablel±llnamevaluenum| 0x02i locals watch-1 watch-2 call sts三、单片机的定时器/计数器实验1计数器实验冃的:学

20、习单片机的定时/计数器的计数功能使川方法。内容:对外部单脉冲信号进行计数,计数10个后产生计数中断。设备:el-emcu-1 试验箱、exp-c8051f021 cpu板。编程:使用定时/计数器的计数功能,将外部时钟信号加在计数器的计数时钟输入引脚 上,当计数10次后,计数器溢出,触发标志位,编程控制分频输出引脚电平翻转,产生 分频后的时钟信号。步骤:1、将cpu板正确安放在cpu接口插座上,2、连线:用导线将mcu的t0连接到dds信号源的output ± (设置信号源的vpp二25v z间;使z符介ttl电平的要求,高电平约在35vz间,低电平约在00.8vz间)。此 外将跳线j

21、8跳到t1位置,连接好仿真器。3、试验箱上电,在pc机上打开keil c坏境,打开试验程序文件夹counter下的工程 文件counter. uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后 相关寄存器的变化。4、上电全速运行程序,川示波器的两个通道观察时钟信号发生器的输出信号output和 单片机的mcu 101的波形,比较二者的频率关系霧討刊帀浮弋 o左任險犀哭y h e zproject ;vorksp=ceregis t 吃 i"regs/*接线,1.用导线焙mcu的t1连接到dds信号源的output。r00x00rl0x00r20x00r30x00r4

22、0x00r50x00r60x00rt0x00a0x00b0x00sp0x07dptr0x0000pc $0x0003psw0x00mi scvaluersys过程:上电全速运行程序用示波器的两个通道观蔡时钟信号发生含 的mcu_i01的波形比较二者的频率关系*/include <c8051f020.h>sbit freq = p30;void chip_init (void) /芯片初始化wdtcn = 0xde;wdtcn = oxad; /禁止看门狗oscicn = 0x7;et0 = 1;xbr1 = 3; /计数器0输入映 _ p3mdout = 1; /p3.o推挽输xb

23、r2 = 0x40;tmod = 6; "8位自动重装入:th0 = 251;tro = 1;ea = 1;im-gil -jr | ftfnnncontrol registerckcoh: 5x00§ filesvoid countero_isr(void)freq = freq; void main (void)chip_init(); while (1);interntimerscontrolr t4m r t3m 厂 t2m timiriternal oscillator controloscich: |0xl4厂a 7ifcn: |oo: 2mhz 二| 厂17m

24、scli= ifrbi clksl iosciexternal oscillator controloscxcn: |0x30 rxoscmd: |oil7 ext.' clock xtal d:xtlvldxfch: |000: f < 12 khzoscillators & cfu clockcpu clock: i 2000000实验2秒时钟发生器实验冃的:学习单片机的定时/计数器的定时功能使川方法。内容:产生频率为0. 5iiz的时钟输出。设备:el-emcu-i 试验箱、exp-c8051f021 cpu 板。编程:使用定时/计数器的定时功能,时钟源采用系统时钟

25、,根据时钟源的频率配置初 值寄存器,使能定时器屮断,在中断服务程序屮翻转一个to引脚输出,产生0. 5hz的时 钟输出。步骤:1、将cpu板正确安放在cpu接口插座上,2、连线:用导线将mcu的101连接到发光二极管l1的输入i上,连接好仿真器。3、试验箱上电,在pc机上打开keil c环境,打开试验程序文件夹timer_sec0nd下的 工程文件timer second. uv2,编译程序,上电,进入调试状态,单步运行程斥观察每条语 句执彳亍后相关寄存器的变化。4、全速运行程序,观察发光二极管的亮灭情况。5、备注:现在的单片机系统时钟较高,难于产生1秒的定时中断,所以,可以设置定 时时间为5

26、0毫秒,在中断服务程序中设逍程序计数,当累加到1秒后,控制输出10引脚 电平翻转,驱动发光二极管。書色m国 bi ® |include <c8051f020.h>mbit led = p30;wdtcn = oxde;wdtcn = oxad; /禁止看门狗oscicn = 0x7;eto = 1;xbr2 = 0x40;tro = 1;tmod = 1;th0 = 0;tl0 = 0;ea = 1;霧討刊帀浮弋 o左任險犀哭y h e zvoid chip_init (void) /芯片初始化void time0_isr(void) interrupt 1| stati

27、c unsigned char m=0;tro = 0;iho = 0;tl0 = 0;m+;if(m+>20)m = 0;led = led;tro = 1;void main (void)chip_init(); while (1);四、单片机的串口特点和编程实验1 pc机串口通讯实验冃的:学习单片机串口的使用方法。内容:与pc机实现通讯。设备:el-emcu-1 试验箱、exp-c8051f021 cpu板。编程:第一步,配置串口工作在8位,波特率可变异步通讯工作方式,波特率由定时器 1确定,同时使能其中断并清除其中断标志位;第二步,配置定时器1,工作在8位白动 重装入模式,根据波

28、特率计算其初值。第三步,编写串口屮断服务程序,只处理接收屮 断,对发送中断只清除标志,不做其他处理。第四步,设置死循环,交由中断服务程序处 理。步骤:1、将cpu板正确安放在cpu接口插座上;2、连线:用导线将mcu的into (txd)、somi (rxd)分别连接到rs232的232txd、 232rxd,用附带的直连串口线连接试验箱的db9和计算机的串口,接好仿真器。3、试验箱上电,在pc机上打开ke订c环境,打开试验程序文件夹rs232下的工程文 件rs232.uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关 寄存器的变化。霧 討刊帀”弋 左佢 險鼻资y h e

29、 zinclude <c8051f020.h>void chip init (void) /芯片初始讣、 i wdtcn = oxde;wdtcn = oxadoscxcn = 0x67;while(!(oscxcn£0x80);oscicn = 0x8;/系统时钟xbro = 4;xbr2 = 0x40;pcon = 0x80;ckcon = 0x10;tmod = 0x20; /位自动重绝th1 = 0xf4;tri = 1;scono = 0x50;eso = 1;ea = 1;timer/couit ter 1 modeti»er/connter :6:

30、 13 bit timgr/count*timerzjtcon: |0x00tmod:|0x00th1: |0x00clock厂t训|厂t1 fintl1:|0x00controltatus: stop-厂tf1i ' tri 厂 gate 厂 ilitl#void uart0_isr(void) interrupt 4if(tio) tio = 0; if(rio)ptfi = fl:load 'tiwtmpw大学生就业前培新教材(pre-job_train) 试验程序wrs232wrs23 * agdi-msg: reset successful.* agdi-msg: b

31、reak set at oxffoooold* 至gdi-msg: break cleared oxffooooldmopule_nd_noasm assign breakdisable breakenable breakkill breaklist breakset breakaccesi i | build ) command find in files /4、打开pc机的超级终端,设置波特率115200、数据位8、无流控、无校验等信息,pc 机全速运行试验程序,在超级终端里输入可显示字符,观察超级终端的显示,断开连接的 串口线,再输入字符,观察显示有什么不同。5、备注:在串口中断服务程序

32、中,要清除中断标志位。在发送数据前,要检测发送状 态位在发送结束状态。盲3 19慟噩念|脸 | 創1 | <±peco.3-115200 -xproject /jorkspsce昌 files接线,1、用2、用 设置: 过程: 上电2 试试胃*/#i nclvoid卩;load ”d:5p大学生就业前 agdi-msg: reset success agdi-msg: break set at agdi-msg: break cleared*关关关文件g)編辑g)查看 呼叫c)传送d)d ® s曲a會帮助g)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

33、aaaea a ©门门门门门门门门门门门门门门门门门门门门门门门门门门门门门weeeeeennnnnnnnnnnnnnnnnnnnnnnnnnnrcccccccccccccccccccccccccccccccccc1 4 iii已连接 0:00:3$ vt100j115200 8-n-1scrollcapsnum捕asm assign breakdisable breakenable breakkill breaklist breakset breakaccesi i | build ) command find in files /实验2 rs485通讯实验冃的:学习单片机串口的使

34、川方法以及rs485通讯。内容:使川max485芯片进行电平转换,实现差分方式通讯。设备:el-emcu-i 试验箱、exp-c8051f021 cpu 板。(需 2 套)步骤:1、将两个实验箱的cpu板正确安放在cpu接口插座上,cpu板上的跳线j7均短接在 into 处。2、连线:发送设备:(1) 用导线将 mcu 的 into (txd)、somt (rxd)、tok into 分别连接到 rs485 的 txd、rxd、e485和单脉冲输出p-孔;cpu板上跳线j7短接在into处;(3)用两根导线顺序连接两个实验箱的ur1差分接口(上、下分别对接)。接收设 备:(1) 用导线将 mc

35、u 的 into (txd)、somi (rxd)分别连接到 rs485 的 txd、rxd; cpu 板 上跳线j7短接在into处、j11短接在sda处;(2) 用导线将mcu的sda连接到rs485的e485;(3) 用导线将mcu的101-108分别连到lamp的l1-l8;(4) 用两根导线顺序连接两个实验箱的ur1差分接口(a、b分别对接)。3、分别连接好仿真器,试验箱上电,在pc机上打开kdl c环境,打开试验程序文件 夹rs485下的rs485_tx里的工程,编译程序,将程序卜载到“发送设备”的cpu板中。 再打开rs485下的rs485_rx里的工程,编译程序,将程序下载到“

36、接收设备”的cpu板 中。4、同吋给两个实验箱上电。按下发送设备上的单脉冲按键。观察“接收设备”实验箱 上的led灯变化。再结合程序分析为什么。5、备注:在该rs485的通讯中,关键是设h rs485的e485端的状态,从而决定是接收 冋来数据还是发送出去数据。exp-c8051f021 配 el-emcu-i 实验指导书五、存储器实验1 ram存储器读写实验冃的:学习存储器数据读写方法。内容:将内部ram中的一段数据复制到另一 ram空间。设备:el-emcu-i 试验箱、exp-c8051f021 cpu 板。编程:首先设置源的首地址和u的首地址,再设置数据块的长度,设置一个变量,先从 源

37、读取一个字节,再写入到h的地址中,如此循环,直至到数据块的长度。步骤:1、将cpu板正确安放在cpu接口插座上,2、连线:接好仿真器。3、试验箱上电,在pc机上打开ke订c环境,打开试验程序文件夹ram下的工程文件 ram. uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存 器的变化。4、按照注释设置断点,打开变最观察窗口,全速运行试验程序到断点处,观察2个数 组内容的变化。5、备注:在汇编中,对内部存储器的操作使用指令mov,外部存储器的操作使用movx 和movc,其他相同。右乂语言中,只需在定义变量时指明位置即可,在操作上二者没有区 别。voidchip_in

38、it (void) /芯片初始化project :vorkspscex昌files 审 口& 弋 0莊佢險愿罗场曰g广wdtcn = oxde;wdtcn = oxad; /禁止看门狗 oscicn = 0x7;void main (void)unsigned char src 20 dsijlzlll;char i=0;|dst o):6xic)="chip_init();for(i=0;i<20;i+)srci = i ;dsti = 0;for(i = 0;i<20;i+)/设置断点观察数组src和dst白dsti = srci;for(i=0;i<2

39、0;i+)/设置断点观蔡数组sru和dst白dst i = src19-i;tltath 1 q f 1、雪搭 占.疲 细 u*r广知 rlu十 61 才旦q i关关关至gdi-msg:breaksetat0xff000018关关关agdi-msg:breakset0xff00002a*agdi-msg:breaksetct0xff00003f%*至gdi-msg:breaksotat0xff000018*直gdi-msg:breaksetat0xff00002a关关关至gdi-msg:breaksetat0xff00003fagdi-msg:breakclearedat 0xff000018

40、*agdi-msg:breakcleared0xff00002a*agdi-msg:breakcleared0xff00003fx=ese dstnamei | locaasm assign breakdisable breakenable breakkill breaklist v l±dij六、pwm发生器 实验1 pwm发生器(模拟)实验冃的:学习利川定时器和10产生pwm的方法。内容:产生占空比变化的pwm波形输出。设备:el-emcu-i 试验箱、exp-c8051f021 cpu 板,示波器。编程:使用定时/计数器的定时功能,分别产生pwm的高电平和低电平。第一步,首先

41、选择使用单片机的定时/计数器0的定时功能,确定工作方式。第二步,根据pwm频率要 求确定初值。第三步,使能定时器的屮断。第四步,编写定时器小断服务程序,确定pwm 波形高低电平的保持时间,控制10引脚输出翻转电平。做一个死循环,一切交给中断处 理。步骤:1、将cpu板正确安放在cpu接口插座上,2、连线:连接好仿真器。3、试验箱上电,在pc机上打开keil c坏境,打开试验程序文件夹pwm_i0下的工程文 件pwm.io. uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关 寄存器的变化。4、全速运行程序,用示波器的单片机的mcu_i01的波形。5、备注:定时器产生中断的

42、定时时间是p耐波形占空比调整的最小单位,即分辨率, 在定时器中断服务程序中对中断计数,控制10电平的翻转。霧討刊帀浮弋 o左任險犀哭y h e zproject ;vorksp=ceregis t 吃 regs: r0 ? ?rl:? r2 r3value0x0a0x000x000x00<>void delay(unsigned int t) while (t->0);voidrsysr60x63r7oxaf0x000x000x63oxbo0x0 c dptrpc $+0x000a0x013fpsw0x81+ mizechip_init (void) /芯片初始化 wdtcn

43、 = oxde;oscicn = 0x7;eto = 1;xbr1 = 3;/p3mdout = 1;xbr2 = 0x40;tmod = 2; /8th0 = 230;tro = 1;ea = 1;void counter0_isr(void) interrupt 1 i fpfastatic t = 0;昌files 审i £ (t+ t ima、m iload犬学生就业前培新教材(pre-job_train) 试验程pwm_iopwm关关关 agdi-msg: reset successful .agdi-msg: break set at oxffooollc* agdi-m

44、sg: break cleared ait oxffooollcasm assign breakdisable breakenable breakkill breaklist breakset breakacces实验1 pwm发生器(内部)实验冃的:学习产生pwm的方法。内容:配置pwm的相关寄存器,输出占空比变化的pwm波形。设备:el-emcu-i 试验箱、exp-c8051f021 cpu 板,示波器。编程:配置pwm控制寄存器,设定源时钟和比较寄存器以及死区寄存器,开启中断,在 中断服务程序中设定比较寄存器的数值,此寄存器决定了 pwm波形的占空比。步骤:1、将cpu板正确安放在cp

45、u接口插座上,2、连线:cpu板上的跳线j14短接在pwmo侧,连接好仿真器。3、试验箱上电,在pc机上打开keil c环境,打开试验程序文件夹tnt_pwm下的工程 文件int_pwm. uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后 相关寄存器的变化。4、全速运行程序,用示波器观察pwmo输出波形,修改比校寄存器的值,用示波器观察 pwm波形占空比的变化。5、备注:pwm 般借助定时器产久,有的资料将它归类在定时器的功能中。翡 討刊帀浮弋 o去佢 險犀踏场营乏广project ;vorksp=ceregis t 吃 regs: r0 ? ?rl :? r2 ?: r3

46、! :r4 ?r5? :r6 j :rtrsysa£p_maxdptr:pc $etates sec+ pswvalue0x000x000x000x000x000x000x000x000x000x000x070x090x0000 c:0x000856531.00.0x00wdtcn =oscicn =pcaomd =pcaocpmo pcaocpho cr = 1;0xde;wdtcn = oxad; /禁止看门狗 0x7;8; /系统时钟=2; /8位pwm输出=128;void main (void)delay(5pca0cphunsigned char chip_init();

47、 while (1)while (i+<2pomdout = 16; / xbro = 13;/ex0 xbr1 = 0;xbr2 = 0x40;while(i->l)delay(50000);pca0cph0 = i; =)files 审.load 'tzwtmpw大学生就业前培新教材(pre-job_train) 试验程序int_pwmin>asm assign breakdisable breakenable breakkill breaklist breakset breakaccesi i | build ) command find in files /七

48、、wdg看门狗实验1外扩wdg (max705)实验冃的:学习外扩看门狗控制器的使用方法。内容:配置外扩看门狗电路。设备:el-emcu-1 试验箱、exp-c8051f021 cpu板。编程:配置一个10输出翻转电平信号喂狗,配置一个10输出骡动发光二极管显示状 态。步骤:1、将cpu板正确安放在cpu接口插座上,2、用导线将mcu的t01、t02分别连接到wdg的wd和发光二极管l1的输入孔l1上, 用导线将wdt的rst连接到mcu的rst上。连接好仿真器。3、试验箱上电,在pc机上打开ke订c环境,打开试验程序文件夹ext_wdg下的工程 文件ext_wdg.uv2,编译程序,上电,进

49、入调试状态,单步运行程序观察每条语句执行后 相关寄存器的变化。4、全速运行程序,观察发光二极管在上电时亮一次,然后保持熄灭状态。去除mcu_i01 到wdi的连线,观察发光二极管会重复亮灭。5、备注:在程序开始处,点亮发光二极管约1秒钟,在程序正常运行屮,发光二极管 熄灭,如杲在设定的时间内不能喂狗,程序回到开始处运行,重新点亮发光二极管。霧 討刊帀”弋 左佢 險鼻资y h e zproject ;vorksp=cevalue0x00iregis t 吃 regsrovoid chip_init (void) /芯片初始化wdtcn = 0xde;wdtcn = oxad; /禁止看门狗osc

50、icn = 0x7;ea = 0;xbr0 = 0;xbr1 = 0;xbr2 = 0x40;void main (void)char i =0; chip_init();led = 0;for(i=0;i<50;i+)wdgin = wdgin; delay(5000);led = 1;while(1)wdgin = wdgin; delay(5000);=)files 审关关关 agdi-msg: break set ct 0xff000019* agdi-msg: break cleared “t oxffocicici 19pu5二 nd_noasm assign breakdisable breakenable breakkill breaklist breaksetbuild a command a find in files实验2 wdg (内部)实验冃的:学习内部看门狗控制器的使用方法。内容:配置内部看门狗。设备:el-emcu-i 试验箱、exp-c8051f021 cpu 板。编程:配置一个10输入信号控制信号,控制喂狗。步骤:1、将cpu板正确安放在cpu接口插座上,2、连线:用导线将mcu的101、102分别连接到平推开关k1的输出插孔k1和发光二极 管l1的输入孔l1上。连

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论