单片机(邱永洪)

上传人:正** 文档编号:41427696 上传时间:2018-05-29 格式:DOC 页数:31 大小:754.45KB
返回 下载 相关 举报
单片机(邱永洪)_第1页
第1页 / 共31页
单片机(邱永洪)_第2页
第2页 / 共31页
单片机(邱永洪)_第3页
第3页 / 共31页
单片机(邱永洪)_第4页
第4页 / 共31页
单片机(邱永洪)_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《单片机(邱永洪)》由会员分享,可在线阅读,更多相关《单片机(邱永洪)(31页珍藏版)》请在金锄头文库上搜索。

1、- 1 -实实 验验 报报 告告实验课程:实验课程: 单单 片片 机机 学生姓名:学生姓名: 邱永洪邱永洪 学学 号:号: 6100210026 专业班级:专业班级: 中中 兴兴 101 班班 20132013 年年 1 1 月月 1 1 日日- 2 -MCS-51 单片机硬件接口实验单片机硬件接口实验目录目录实验一实验一 I/O 口输入、输出实验口输入、输出实验 - 3实验二实验二 定时定时/计数器实验计数器实验 - 7实验三实验三 交通灯控制实验交通灯控制实验 - 11实验四实验四 并行并行 A/D 转换实验转换实验 - 22实验五实验五 并行并行 D/A 转换实验转换实验 - 27- 3

2、 -实验一实验一 I/OI/O 口输入、输出实验口输入、输出实验一、实验目的一、实验目的掌握单片机P1口、P3口的使用方法,对实验板的熟悉,如何根据实验板原理图进行连线。二、实验内容二、实验内容以P1 口为输出口,接八位逻辑电平显示,LED 显示跑马灯效果。以P3 口为输入口,接八 位逻辑电平输出,用来控制跑马灯的方向。三、实验要求三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。四、实验说明和电路原理图四、实验说明和电路原理图P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当 P1口作为输入口时,必须先对它置高电平使内部MOS管截止。因为内部上拉电阻

3、阻值是 20K40K, 故不会对外部输入产生影响。若不先对它置高,且原来是低电平,则MOS管导通,读入的数 据是 不正确的。 本实验需要用到CPU模块(F3区)和八位逻辑电平输出模块(E4区)和八位逻辑电平显示模 块(B5 区) ,八位逻辑电平输出电路原理图参见图 1-1。八位逻辑电平显示电路原理图参见 图 1-2。- 4 -五,程序为:五,程序为:;功能: I/O 口输入、输出实验 - 5 -;接线: 用导线连接八位逻辑电平输出模块的 K0 到 CPU 模块的 RXD(P3.1 口) ; ; 用 8 位数据线连接八位逻辑电平显示模块的 JD4B 到 CPU 模块的 JD8(P1 口)。;/*

4、DIR BIT P3.1ORG 0000HLJMP STARTORG 0200HSTART: Output1: mov A, #0fEH ;把 11111110 二进制赋给 A 变量mov R5, #8 ;把 8 送到 R5 寄存器中 loop1:CLR C ;把标志位清零mov C,DIR ;读入开关 K0 的值JC Output2 ;K0 的状态为 1 则跳转到 Output2mov P1, A ;从 P1 口输出 A 的值并显示在二极管上,该位为 0 则相应 的二极管点亮rl A ;把 A 进行循环左移,相当于把 0 进行左移,由此二极 管从右到左依次点亮 向左的跑马灯AcAll Del

5、ay ;调用延时子程序djnz R5, loop1 ;判断 R5 中的值是否为 0,来判断是否重新置数,为 0 就 跳到 Output1,否则继续 loop1Sjmp Output1Output2: mov A, #07fH ;把 01111111 二进制赋给 A 变量mov R5, #8 ;把 8 送到 R5 寄存器中 loop2:CLR C ;把标志位清零mov C,DIR ;读入开关 K0 的值JNC Output1;K0 的状态为 0 则跳转到 Output1mov P1, A;从 P1 口输出 A 的值并显示在二极管上,该位为 0 则相应的 二极管点亮rr A;把 A 进行循环右移,

6、相当于把 0 进行左移,由此二极管从左 到右依次点亮 向右的跑马灯AcAll Delay;调用延时子程序djnz R5,loop2;判断 R5 中的值是否为 0,来判断是否重新置数,为 0 就跳到 Output2,否则继续 loop2Sjmp Output2- 6 -Delay: ;0 减 1 后为-1 其补码为 11111111mov R6,#0 ;该延时为双重循环,总延时约为(1+1+(1+1+2) *257+2+(1+(1+1+2)*257)*256)us= 0.264456s 这个值与实验现象很匹配 DelayLoop1:mov R7,#0 DelayLoop2:NOP ;空指令NOP

7、 djnz R7,DelayLoop2;R7 中值为 0 则跳转djnz R6,DelayLoop1 ;R6 中值为 0 则跳转retend六、实验步骤六、实验步骤1)系统各跳线器处在初始设置状态。 用导线连接八位逻辑电平输出模块的K0 到CPU 模块的RXD(P3.1 口) ; 用8 位数据线连接八位逻辑电平显示模块的JD4B 到CPU 模块的JD8(P1 口)。 2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。编译无误后,下载程序 运行。 3)观察发光二极管显示跑马灯效果,拨动 K0 可改变跑马灯的方向。七,实验现象七,实验现象当 K0 拨到下面时,其状态为 0 所

8、以跑马灯为从右向左一次点亮,间隔大约为 (1+1+(1+1+2)*257+2+(1+(1+1+2)*257)*256)us= 0.264456s,当 K0 拨到上面时, 其状态为 1 所以跑马灯为从左向右一次点亮,间隔大约为(1+1+(1+1+2) *257+2+(1+(1+1+2)*257)*256)us= 0.264456s。八,实验心得八,实验心得从这个实验中我们了解到如何用 P0 口输出来点亮二极管,也学会了如何根据具体的单片 机的原理图进行编写程序,及线路的连接。- 7 -实验二实验二 定时定时/ /计数器实验计数器实验一、实验目的一、实验目的学习MCS-51 内部计数器的使用和编程

9、方法。二、实验内容二、实验内容使用MCS-51 内部定时/计数器,定时一秒钟,CPU 运用定时中断方式,实现每一秒钟输出 状态发生一次反转,即发光管每隔一秒钟亮一次。三、实验要求三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。4 4、实验说明实验说明定时器/计数器的结构 定时器/计数器结构如图6-1所示,定时器/计数器T0由特殊功能寄存器TH0、TL0 构成,定时器/计数器T1由特殊功能寄存器TH1、TL1构成。- 8 -图6-1 AT89S51单片机的定时器/计数器结构框图关于内部计数器的编程主要是定时常数的设置和有关控制寄存器的设置。内部计数器在单 片机中主要有定时器和计数器

10、两个功能。本实验使用的是定时器,定时为一秒钟。 定时器有关的寄存器有工作方式寄存器TMOD 和控制寄存器TCON。TMOD 用于设置定时器/ 计数器的工作方式0-3,并确定用于定时还是用于计数。TCON 主要功能是为定时器在溢出 时设定标志位,并控制定时器的运行或停止等。内部计数器用作定时器时,是对机器周期计数。每个机器周期的长度是12 个振荡器周期。 假设实验系统的晶振是12MHZ,程序工作于方式2,即8 位自动重装方式定时器, 定时器100uS 中断一次, 所以定时常数的设置可按以下方法计算: 机器周期=1212MHz=1uS- 9 -(256-定时常数)1uS=100uS 定时常数=15

11、6。然后对100uS 中断次数计数10000 次,就是1 秒钟。 在本实验的中断处理程序中,因为中断定时常数的设置对中断程序的运行起到关键作用, 所以在置数前要先关对应的中断,置数完之后再打开相应的中断。 本实验需要用到CPU 模块(F3 区)和八位逻辑电平显示模块(B5 区) 。5 5、实验程序实验程序; ;功能功能: : 定时定时/ /计数器实验计数器实验; ;接线接线: : 导线连接导线连接CPUCPU模块模块P14P14到八位逻辑电平显示模块的到八位逻辑电平显示模块的L2.L2. ;/*;/*TickTick equequ 1000010000 ; ; 1000010000 x x 1

12、00us100us = = 1s1sT100usT100us equequ 156156 ; ; 100us100us时间常数时间常数(6M)(6M)C100usC100us equequ 33h33h ; ; 100us100us记数单元记数单元LEDBufLEDBuf bitbit 21h21horgorg 0 0ljmpljmp StartStartorgorg 000bh000bh T0Int:T0Int: ;T0;T0中断中断pushpush PSWPSWmovmov a,a, C100us+1C100us+1 ; ;低位给低位给a ajnzjnz GoonGoon ;a;a不为不为

13、0 0就跳转就跳转decdec C100usC100us ; ;高位减一,执行到下面相当于从高位借一高位减一,执行到下面相当于从高位借一Goon:Goon:decdec C100us+1C100us+1 ; ;低位减一低位减一movmov a,a, C100usC100usorlorl a,a, C100us+1C100us+1 ; ;低位和高位或,看低位和高位或,看2710H2710H是否减为是否减为0 0jnzjnz ExitExit ; ; 100us100us 记数器不为记数器不为0,0, 返回返回movmov C100us,C100us, #27H#27H ; ; #high(Tick)#high(Tick)

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号