51单片机c语言实验总结_第1页
51单片机c语言实验总结_第2页
51单片机c语言实验总结_第3页
51单片机c语言实验总结_第4页
51单片机c语言实验总结_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1 / 26 51 单片机 c 语言实验总结 入门有针对性的解决一些简单的实际问题,边理论边实践学一样会一样 基本实验:流水灯,数码管显示,键盘控制,音乐播放,继电器控制通信实验,串口通信实验,红外线遥控信号解码实验等 单片机的定义分类和内部组成 1 单片机就是中央处理器 CPU,随机存储器 RAM。只读存储器ROM。定时、计数器和各种输入输出接口 I/o 接口电路等部件集成在一块电路芯片上的微型计算机。 2, 1 分类按制造工艺分: HMOS和 CHMOS CHMOS 包括 80c51等中间加了 C功耗要小 适合便携式手提式和野外作业。 2 分类按不同容量的存储器配置分: 51子系列和 52 子系列 51表示单片机最后一位数字为 1作为标志。片内带有 4KbROM或 EPROM 与计算机的 COM 接口 (RS-232)连接好,然后将单片机安插在烧录器的插座中,再用一根 USB 线将 USB 接口与计2 / 26 算机的 USB接口连接,让计算机通过这根 USB线向烧录器提供 +5V电源 使用烧 录器前,手动设置一些,参数标签页,根据 COM口,设置好串口,波特率设置为 28800; 点击自动擦除器件命令,点击打开文件命令选择单片机文件十六进制文件 hex 再点击打开点击自动写器件。 实例 4用单片机控制一个灯闪烁 Led灯亮存在电压差和正向偏置 延迟函数 Void main(void)/ 两个 void分别表示无须返回值和没有参数传递 Unsigned int i;/ 定义无符号整数,最大 65535 For ; 只有一个分号表示什么都不做,等待一个机器周期 0x中的 0是数字 0,而不是字母 O 郁闷一编写 keil 时, 文档第一行必须是 #include 虚拟仪表 3 / 26 示波器 oscilloscope Protues示波器面板?及使用 单片机需要一个时钟信号送给内部个电路,才能使他们有节拍的工作,时钟信号的频率由外部振荡电路的晶振频率决定, 51系列单片机的机器周期是由 12个振荡周期组成。 指令周期:单片机执行一条指令的时间。 时钟频率越低,延时的时间就越长,灯闪烁的速度就越慢。 实例 5 将 p1口状态送入 p0口 p2 口 p3口 利用单片机工 作速度快的特点,无限循环可以让单片机不停地把 p1口的电平状态送到 p0口 p2 口和 p3口。 引脚接地低电平被输入到 p口 实例 6使用 p3口流水点亮 8位 led 4 / 26 记忆, 0xfe 11111110 0xfd 11111101 0xfb 11111011 0xf7 11110111 0xef 11101111 0xdf 11011111 0xbf10111111 0x7f 01111111 实例 7 通过对 p3口地址的操作流水点亮 8 位 led 单片机都有固定的地址,记忆:张三在教室的第 2 排第 5列 老师可以说清张三回答问题也可以说请第 2排第 5列的同学答题。 Sfr x=0xb0; 通过关键字 sfr 将 x 定义为 p2 的地址 0xb0 定义后,程序中对 x 的操作就相当于对地址 0xb0即 p3的操作 类似于指针 P3口的固定地址是 BOH MCS-51单片机存储器的基本结构 它有两种 1即程序存储器和 2数据存储器 从物理 MSC-51 有 4 个存储地址空间,即片内程序存储器和片外程序存储器 程序存储器受 EA一横外接电平的控制。 5 / 26 1 当 EA一横接地时,单片机只能使用外部程序存储器 2 当 EA一横接 +5v 是单片机先使用内部程序存储器,容量不够时自动使用外部程序存储器。 特殊功能寄存器 单片机的复位电路 P54 页? 单片机 C 语言开发基础 #include C 注释 1 种采用 /*。 */可以注释多行内容 2种采用 /但只能注释一行 ANSI 标准定义的关键字 P57记忆思考 P58 跳过 数据类型表 p59页 指针型数据 位类型数据 空 类型数据 左移运算符 低位丢弃,高位补 0 赋值运算符 逗号运算符 条件运算符 6 / 26 强制转换运算符? 实例 8用 不同数据类型的数据控制 led的闪烁 使用无符号整型数据和无符号字符数据来设计延时函数。 由于整型数据占两个字节,而无符号字符型数据仅占一个字节,因此对无符号整型数据进行操作花费的时间就要长一些,整型数据要实现 100 次循环,消耗的时间约 800 个机器周期。无符号 100 占 300个。为了提高 运行效率,尽可能用无符号字符型数据。 实例 9 用 p0 口和 p1 口分别显示加法和减法运算结果 其实就是利用二进制的单位数值进行亮 1 不亮 0 的表示 乘法除法就是利用二进制转化为十进制再进行处理 实例 12用自增运算控制 p0口 8位 ked的闪烁花样 只要送到 p0 口的数值发生变化, p0 口 8 位 led 点亮的状态就会发生变化。可以先将变量的初值送到 p0 口延迟一段时间,再利用自增运算使变量加 1,然后将新的变量值送到 p0口并延时一段时间,即可使 8 位 led的闪烁花样不断变化, 7 / 26 Unsigned char I;定义无符号字符型变量,其值不超过 255 运用变量的值变化和将变量的值送到 p 口用来变 化。 For(i=0;i 实例 13用 p0口显示逻辑与的运算 P0=&(90xab)=1&0=0;将运算结果送到 p0口 实例 14用 p0口显示条件运算的结果 P0=?8:4; P0=8=00001000B 实例15;用 p0口显示按位异或运算结果 51单片 机 C语言实验及实践教程 第一章: 硬件资源模块 第二章: keil c 软件使用 at89s51 单片机实验及实践课题 1. 闪烁灯 at89s51 单片机实验及实践课题 2. 模拟开关灯 at89s51 单片机实验及实践课题 3. 8 / 26 多路开关状态指示 at89s51 单片机实验及实践课题 4. 广告灯的左移右移 at89s51 单片机实验及实践课题 5. 广告灯 at89s51 单片机实验及实践课题 6. 报警产生器 at89s51 单片机实验及实践课题 7. I/O 并行口直接驱动 LED 显示 at89s51 单片机实验及实践课题 8. 按键识别方法之一 at89s51 单片机实验及实践课题 9. 一键多功能按键识别技术 at89s51 单片机实验及实践课题 10. 00 99计数器 at89s51 单片机实验及实践课题 11. 9 / 26 00 59 秒计时器 at89s51 单片机实验及实践课题12. 可预置可逆 4位计数器 at89s51 单片机实验及实践课题 13. 动态数码显示技术 at89s51 单片机实验及实践课题 14. 44 矩阵式键盘识别技术 at89s51 单片机实验及实践课题 15. 定时计数器 T0作定时应用技术 at89s51单片机实验及实践课题 16. 定时计数器 T0 作定时应 用 技 术 at89s51 单 片 机 实 验 及 实 践 课 题17. 99 秒马表设计 at89s51 单片机实验及实践课题 18. “ 嘀、嘀、 ?” 报警声 at89s51 单片机实验及实践课题 19. “ 叮咚 ” 门铃 at89s51 单片机实验及实践课题 20. 10 / 26 数字钟 at89s51 单片机实验及实践课题 21. 拉幕式数码显示技术 at89s51 单片机实验及实践课题 22. 电子琴 at89s51 单片机实验及实践课题 23. 模拟计算器数字输入及显示 at89s51 单片机实验及实践课题 24. 88LED 点阵显示技术 at89s51 单片机实验及实践课题 25. 点阵 LED“0 9” 数字显示技术 at89s51 单片机实验及实践课题 26. 点阵式 LED简单图形显 示 技 术 at89s51 单 片 机 实 验 及 实 践 课 题27. ADC080 9 A/D 转换器基本应用技术 at89s51 单片机实验及实践课题28. 数字电压表 11 / 26 at89s51 单片机实验及实践课题 29. 两点间温度控制 at89s51 单片机实验及实践课题 30. 四位数数字温度计 at89s51 单片机实验及实践课题 31. 6 位数显频率计数器 at89s51 单片机实验及实践课题 32. 电子密码锁设计 at89s51 单片机实验及实践课题 33. 44 键盘及 8位数码管显示构成的电子密码锁 at89s51单片机实验及实践课题 34. 带有存储器功能的数字温度计 DS1624技术应用 at89s51单片机实验及实践课题 35 DS18B20 数字温度计使用 第一章 AT89S51 单片机实验及实践系统板简介 AT89S51 单片机实验及实践系统板集成多个硬件资源模块,12 / 26 每个模块各自可以成为独立的单元,也可以相互组合,因此,可以为不同阶层的单片机爱好者及单片机开发者提供不同的开发环境。 每个硬件模块介绍如下: 1继电器控制模块 系统板上提供了 2 路继电器控制模块,分布在系统板的最左上端区域中,输入信号由 Realy in 1和 Realy in 2 端口输入分别控制两路继电器,继电器控制 的信号分别由最上端的两个插针输入和输出。分别称为 “com1 open1 short1” ,“com2 open2 short2” ,由于这个两个继电器是单刀单掷控制,当继电器不吸合时, “com1” 和 “short1” 相通,“com2” 和 “short2” 相通;当继电器吸合时, “com1” 和“open1” 相通, “com2” 和 “open2” 相通。其电路原理图 所示: 2参考电压源模块 在系统板上写有 “ 参考电压源 ” 区域中,是由 TL431 来完成13 / 26 参考电压的调节,调节范围在 0之间;主要为是系统板上需要参考电压芯片或是为外部设备提供参考电压,由 Var Vref Out端口输出。其电路原理图如图所示: 3三路可调电压模块 此模块主要是用于提供 0 5V之间的可变的模拟电压值,即可以作为参考电压源也可以作为模拟电压信号。这三路是相互独立的。分别对应 着由 VR1, VR2, VR3端口输出。具体的电路原理图如图所示: 图 图 4电源模块 电源模块为系统板上其它模块提供 5V电源,电源输入有两种方式,一种为交直流电源从电源插座输入,输入的电压要求,直流输入应大于,交流输入应大于 5V,通过 7805 三端稳压器得到 5V 的直流电源供给系统其它模块工作,另一种14 / 26 为从 USB 接口获取 5V电源,只要用相应配套的 USB 线从电脑主机 获取 5V直流电源,在电源模块中加有保护电路,即电路中有短路,不会对 7805 三端稳压器及电脑主机电源有损害!其电路原理图如图所示: 5程序下载模块 该模块完成源程序代码下载到 AT89S51或者是 AT89S52芯片中,它需要和微机上的 ISP下载器软件配合使用来完成这样的功能。具体的电路原理图如图所示: 6 232 电平转换模块 232电平转换采用 MAX232芯片把 TTL电平转换成 RS 232电平格式,可以用于单片机与微机通信,以及单片机与单片机之间的通信,在该系统板上提供了两个 DB9的接口,其中一个用 ISP 下载器模块的程序下载接口,称为 “ISP Interface” ,另一个接口为单片机与其它具有 RS232 接口的通信端口,称为 “Common Port” 。具体的电路原理图如图所示: 15 / 26 7频率产生器模块 该模块采用 555 芯片产生一些连续频率的方波信号,由“WAVE GND” 端口输出,其稳定可调的频率范围在 5KHz100KHz 之间变化。电路原理图如图所示: 8音 频放大模块 该音频放大模块采用 LM386芯片作为音频的功率放大,音频信号由 “SPK IN” 端口输入,信号的输出由 “SPK OUT” 端口输出,只要在 “SPK OUT” 接一个喇叭即可。具体的电路原理图如图所示: 9 一键多功能按键识别技术 1实验任务 如图所示,开关 SP1 接在 /RD 管脚上,在 AT89S51 单片机的P1 端口接有四个发光二极管,上电的时候, L1 接在管脚上的发光二极管在闪烁,当每一次按下开关 SP1的时候, L2接在管脚上的发光二极管在闪烁,再按下开关 SP1的时候, L3接在管脚上的发光二极管在闪烁,再按下开关 SP1 的时候,16 / 26 L4接在管脚上的发光二极管在闪烁,再按下开关 SP1的时候,又轮到 L1在闪烁了,如此轮流下去。 2电路原理图 图 3系统板上硬件连线 ,另一是共阴极。给 LED 数码管的七个发光二极管加不同的电平,二极管显示不同亮灭的组合就可以形成不同的字形,这种组合称之为字形码。下面以 1 为高电平, 0 为低电平,给出字 形码表。 共阴极 共阳极 17 / 26 开发板中数码管部 原理图中用到两片 573,一片用于位选,选择 8 位共阴数码管中的某位或几位,另一片 573用于段选,用于输入以上表格中的编码来控制要显示的内容。举个例子,如果我们要使数码管的最低位显示 “A” ,那么,首先通过控制 DS1,选中位选控制的 573,控制 DSD7 为 “0” ,然后通过控制 DS2,选中段选选控制的 573,在 DSD0DSD7 输 入 0x77,即可实现 “A” 在第 3 位显示。 、最低位显示 “A” 实验源程序: /*/主函数 18 / 26 /* void main() /主函数 while(1) /进入 while死循环 P1=0x7f; /0x7f=0111 1111,即选通数码管最低位 LE1=1; /锁存位 LE1=0; /断开锁存 ,位选 573 的 Q7Q0 仍为0x7f P1=0x77; /0x77 为 A的编码 LE2=1; /锁存段码 LE2=0; /断开锁存 ,段选 573 的 Q7Q0 仍为0x77 51单片机 C 语言程序设计 实验教学指导书 伍勤谟 编 19 / 26 二 00六年十二月 单片机 C 语言实践教学的内容目录 实验一 单片机 C 语言编程环境建立 实验目的:掌握 Keil软件的安装 ,使用 ; 实验内容: Keil软件的安装 ,使用 , 熟悉单片机 C 语言编程过程 (源文件的建立 ,工程的建立 ,编译及链接等 ) 实验 仿真板的介绍及使用等 ; 实验二 51 C 语言数据类型 ,运算符与表达式的练习 (1) 实验目的:掌握相关语句的编程方法。 实验内容:演示字符型数据和整型数据的溢出 . 20 / 26 观察浮点型数据在内存中的存放方式 ; 演示实型数据的舍入误差 ; 观察数据在内存中的存储位置 实验三 51 C 语言数据类型 ,运算符与表达式的练习 (2) 实验目的:掌握相关语句的编程方法。 实验内容:定义多个变量观察各自的存储空间 ; 将 变量定义在位变量变区 ; 研究 pdata和 xdata 型变量的存储空间 ; 观察各种类型数据转换时的内存变化 ; 实验四 51 C 语言程序流程控制语句的练习 实验目的:掌握 for、 while do-while 等循环语句的编程方法。 21 / 26 实验内容:利用仿真型实验板和所学流程控制语句 ,编写演示流水灯功能的程序。 实验五 51 C 语言的构造数据类型的练习 实验目的: 1 熟悉 51 C 语言的指针与数组的语法结构。 2 掌握指针与数组的编程的方法。 实验内容:编写程序:通过指针变量访问整型变量 实验六 51 单片机内部资源 C 语言的编程练习 实验目的: 掌握 51 单片机内部资源 C 语言编程的方法。 实验内容:编写利用外中断控制实验 LED 灯亮灭程序;利用定时器的中断方式控制实 验板上 LED闪烁功能,要求每 50ms 改变一次。 22 / 26 实验七 51 单片机内部资源 C 语言的编程练习 实验目的: 掌握 51 单片机内部资源 C 语言编程的方法。 实验内容:编写利用定时器控制实验板两个灯的同时闪烁,但它们的闪烁时间不同;利 用计数器功能将 T0口计数值显示出来。 实验八 51 C 语言的涵数语句的练习 实验目的: 1、 掌握 51 C 语言的涵数语句与程序结构。 2、 掌握 51 C 语言的涵数参数传递与调用。 实验内容:编写程序:求 1个数的阶乘 实验九 51单片机接口 C 语言编程的练习 实验目的: 掌握 51单片机接口 C 语言编程基本方法。 23 / 26 实验内容:编写实 验板六位数码管动态显示程序,要求:使用定时中断实现显示的程序, 第 15位各位始终显示 0,第六位在 09 之间显示。 实验十 51单片机应用设计举例练习 实验目的:掌握 51 单片机应用设计方法。 实验内容:编写程序:用实验板实现秒钟功能,且有高位消隐功能。 51单片机 C语言程序设计实践教学指导书 实验一 单片机 C 语言编程环境建立 实验目的:掌握 Keil软件的安装 ,使用 ; 实验内容:

温馨提示

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

评论

0/150

提交评论