51单片机实验报告_第1页
51单片机实验报告_第2页
51单片机实验报告_第3页
51单片机实验报告_第4页
51单片机实验报告_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

51 单片机实验报告 实验一 点亮流水灯 实验现象 Led 灯交替亮 间隔大约 10ms 实验代码 include void Delay10ms unsigned int c void main while 1 P0 0 x00 Delay10ms 50 P0 0 xff Delay10ms 50 void Delay10ms unsigned int c unsigned char a b for c 0 c for b 38 b 0 b for a 130 a 0 a 实验原理实验原理 WhileWhile 1 1 表示一直循环 表示一直循环 循环体内首先将循环体内首先将 P0P0 的所有位都置于零 然后延时约的所有位都置于零 然后延时约 50 10 500ms50 10 500ms 接着 接着 P0P0 位全置于位全置于 1 1 于是 于是 LEDLED 全亮了 接着循全亮了 接着循 环 直至关掉电源 延迟函数是通过多个环 直至关掉电源 延迟函数是通过多个 forfor 循环实现的 循环实现的 实验 2 流水灯 不运用库函数 实验现象 起初 led 只有最右面的那一个不亮 半秒之后从右数第二个 led 也不亮了 直到最后一个也熄灭 然后 led 除最后一个都 亮 接着上述过程 include include void Delay10ms unsigned int c main unsigned char LED LED 0 xfe while 1 P0 LED Delay10ms 50 LED LED 0 c for b 38 b 0 b for a 130 a 0 a 实验原理实验原理 这里运用了这里运用了 C C 语言中的位运算符 位运算符左移 初始值的二语言中的位运算符 位运算符左移 初始值的二 进制为进制为 11111111 11101110 之后左移一次变成 之后左移一次变成 11111111 11001100 当变成 当变成 00000000 00000000 时通过时通过 ifif 语句重置语句重置 11111111 11110 11110 延迟函数在第一个延迟函数在第一个 报告已经说出了 不再多说 报告已经说出了 不再多说 实验 3 流水灯 库函数版 实验现象 最开始还是最右边的一个不亮 然后不亮的灯转移到最右边的 第二个 此时第一个恢复亮度 这样依次循环 实验代码 include include void Delay10ms unsigned int c void main void unsigned char LED LED 0 xFE while 1 P0 LED Delay10ms 50 LED crol LED 1 void Delay10ms unsigned int c unsigned char a b for c 0 c for b 38 b 0 b for a 130 a 0 a 实验原理实验原理 利用头文件中的函数 利用头文件中的函数 crol crol 可以比位操作符更方便的 可以比位操作符更方便的 进行进行 2 2 进制的移位操作 比位操作符优越的是 该函数空位补进制的移位操作 比位操作符优越的是 该函数空位补 全时都是用那个移位移除的数据 由此比前一个例子不需要全时都是用那个移位移除的数据 由此比前一个例子不需要 ifif 语句重置操作 语句重置操作 数码管实验 实验现象 单个数码管按顺序显示 0 9 和 A F include void Delay10ms unsigned int c unsigned char code DIG CODE 16 0 x3F 0 x06 0 x5B 0 x4F 0 x66 0 x6D 0 x7D 0 x07 0 x7F 0 x6F 0 x77 0 x7C 0 x39 0 x5E 0 x79 0 x71 void main void unsigned char i 0 while 1 P0 DIG CODE i i if i 16 i 0 Delay10ms 50 void Delay10ms unsigned int c 0us unsigned char a b for c 0 c for b 38 b 0 b for a 130 a 0 a 实验原理实验原理 根据数码管的点亮原理 依次找到代表根据数码管的点亮原理 依次找到代表 0 90 9 A FA F 的位码 用循的位码 用循 环和延迟函数就可以达到要求了 环和延迟函数就可以达到要求了 实验 动态数码管 include define GPIO DIG P0 define GPIO PLACE P1 unsigned char code DIG PLACE 8 0 xfe 0 xfd 0 xfb 0 xf7 0 xef 0 xdf 0 xbf 0 x7f unsigned char code DIG CODE 17 0 x3f 0 x06 0 x5b 0 x4f 0 x66 0 x6d 0 x7d 0 x07 0 x7f 0 x6f 0 x77 0 x7c 0 x39 0 x5e 0 x79 0 x71 unsigned char DisplayData 8 void DigDisplay void main void unsigned char i for i 0 i 8 i DisplayData i DIG CODE i while 1 DigDisplay void DigDisplay unsigned char i unsigned int j for i 0 i 8 i GPIO PLACE DIG PLACE i GPIO DIG DisplayData i j 10 while j GPIO DIG 0 x00 实验原理实验原理 依然找到相应数字和字母的编码 由于必须通过快速扫描利用依然找到相应数字和字母的编码 由于必须通过快速扫描利用 视觉暂留来实现数码管的显示 分段码和位码 不断扫描 最视觉暂留来实现数码管的显示 分段码和位码 不断扫描 最 后如果更换数字的话 需要消隐操作 防止数码管重复显示所后如果更换数字的话 需要消隐操作 防止数码管重复显示所 带来的不清楚 带来的不清楚 实验 外部中断 实验现象 每按一下独立按键 就会在数码管显示屏上 1 include include sbit LS138A P2 2 sbit LS138B P2 3 sbit LS138C P2 4 unsigned int LedNumVal 1 LedNumVal 2 LedOut 8 Unsigned char code Disp Tab 0 x3f 0 x06 0 x5b 0 x4f 0 x66 0 x6d 0 x7d 0 x07 0 x7f 0 x6f 0 x40 void delay unsigned int i char j for i i 0 i for j 200 j 0 j void main void unsigned char i P0 0 xff P1 0 xff P2 0 xff IT0 1 EX0 1 IT1 1 EX1 1 EA 1 while 1 LedOut 0 Disp Tab LedNumVal 1 10000 1000 LedOut 1 Disp Tab LedNumVal 1 1000 100 0 x80 LedOut 2 Disp Tab LedNumVal 1 100 10 LedOut 3 Disp Tab LedNumVal 1 10 LedOut 4 Disp Tab LedNumVal 2 10000 1000 LedOut 5 Disp Tab LedNumVal 2 1000 100 LedOut 6 Disp Tab LedNumVal 2 100 10 LedOut 7 Disp Tab LedNumVal 2 10 for i 0 i 8 i P0 LedOut i switch i case 0 LS138A 0 LS138B 0 LS138C 0 break case 1 LS138A 1 LS138B 0 LS138C 0 break case 2 LS138A 0 LS138B 1 LS138C 0 break case 3 LS138A 1 LS138B 1 LS138C 0 break case 4 LS138A 0 LS138B 0 LS138C 1 break case 5 LS138A 1 LS138B 0 LS138C 1 break case 6 LS138A 0 LS138B 1 LS138C 1 break case 7 LS138A 1 LS138B 1 LS138C 1 break delay 150 void counter0 void inter

温馨提示

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

评论

0/150

提交评论