学 院: 计算机科学与工程学院
专 业: 信息安全
姓 名:
学 号:
20##年12月8日
实验一、输入输出接口编程
一、实验目的
1、掌握Keil软件的基本使用。
2、掌握单片机汇编语言基本编程。
二、实验内容
1、学习用Keil软件进行51单片机的软件开发;
学习Keil软件的一般操作,步骤为:项目建立、程序录入、添加文件、编译生成HEX文件、仿真调试。(见参考程序一)
2、霓虹灯控制程序设计
用P1口控制8个LED,按P3口输入信号的不同模式选择4种16次循环点亮方式,用软件延时实现1秒的扫描周期。将生成的HEX文件下载到实验板上验证。(见参考程序二)
三、实验原理
1、Keil软件使用练习
设(R0)=20H,(R1)=25H,(20H)=80H,(21H)=90H,
(22H)=0A0H,(25H)=0A0H,(26H)=6FH,(27H)=76H,执行程序后,问程序完成什么功能,写出运行结果。(见参考程序一)
2、霓虹灯控制程序设计
电路原理图如下,所需元件为:AT89C51、SW-SPST、LED-RED
图中用单片机的P1口作输出口接8个LED,8个LED按共阳极连接,端口逻辑值为0点亮LED;P3口作输入口接2个SW-SPST开关,P3口内含上拉电阻,当开关打开时逻辑值为1,开关闭合时逻辑值为0。
本实验中要实现循环输出,最常用的方法是循环计数实现循环次数控制,对计数器值进行查表转换得出输出值,输出到P1口进行显示,灯亮表示输出为“0”,灯灭表示输出为“1”。
本实验中的延时,用软件延时方法产生,延时时间=程序总机器周期数*循环次数*机器周期。
输出表格确定发光模式,实验中定义表格如下:
TAB1:DB 01H,02H,04H,08H,10H,20H,40H,80H(SW3,SW4为:00)
TAB2:DB 03H,06H,0CH,18H,30H,60H,0CH,81H(SW3,SW4为:01)
TAB3:DB 80H,40H,20H,10H,08H,04H,02H,01H(SW3,SW4为:10)
TAB4: DB 用户自己定义(SW3,SW4为:11)
输入信号使用P3口的2个位,如P3.2和P3.3,可以确定4种模式。
实验程序框图如下:
图 1.1 主程序 图1.2 转换输出子程序
实验二、定时器/计数器编程
一、实验目的
1、掌握定时器的基本编程方法。
2、掌握计数器的基本编程方法。
二、实验内容
1、编写单片机程序,用T0作定时器产生周期为1秒的方波(用查询方式编程),从P3.6,P3.7口输出,将P3.7接到示波器显示该方波波形;用T1作计数器对从P3.6输出的方波进行计数,计数结果通过P1口输出到发光二极管显示。(计算机仿真)
2、编写单片机程序,用T0作定时器产生周期为1秒的方波(用查询方式编程),从P3.6,P3.7口输出,将P3.6输出的方波接到P3.5口通过T1作计数器对该方波进行计数,计数值由LED显示,用存储示波器显示P3.7输出的方波。(实验台验证)
三、实验原理
当晶振为22.1184M时,一个机器周期为0.54251微秒,要实现500毫秒的定时,需要921659个机器周期,对于51单片机内部定时器来说,最大只能定时65536个机器周期,定时35.535毫秒,不能满足要求,为此必须借助软件循环进行扩展。实现的方法是:用定时器中断定时10毫秒,再用软件扩展50倍即可得到500毫秒的定时。当到达500毫秒时,对P3.7输出取反,可得到周期为1秒的方波。
选择模式1,每个10ms中断一次,设初值为X,根据下面公式,可求得X的值。
(216-计数初值)*机器周期=定时时间
有关定时计数器的特殊功能寄存器,请参考课本。
四、实验步骤:
1、用KEIL 软件编写、汇编、调试给定内容的有关程序,并生成HEX文件;
2、用Proteus对单片机硬件电路图进行仿真;
3、下载到ZKSYS单片机实验板上验证有关程序。
实验三、外部中断的编程
一、实验目的
1、掌握外部中断的基本编程方法。
2、掌握计数器的扩展编程。
二、实验内容
设计单片机程序实现秒表功能;用一个开关对秒表进行启动和停止控制,用另一个开关对秒表进行清零。
用T0定时中断设计秒表计时,秒计数结果通过P1口及4094芯片送数码管显示(T0定时中断时间为10毫秒,秒表的显示间隔为1秒,即必须用软件和硬件结合使用实现)。用外部中断INT0(边沿触发方式)对秒计数结果进行清零,用P3.5对秒计数进行启动和停止控制。
1、在生成HEX文件后,用Proteus软件对电路图进行计算机仿真;
2、程序下载到单片机实验板上验证;
(实验板数码管的驱动程序见附件)。
三、实验原理
T0定时中断10毫秒,进行100次中断得到1秒的定时,秒计数结果送P1口进行LED显示,将外部中断设置成边沿触发方式。
实验四、模数转换
一、实验目的
1、掌握A/D转换与单片机的接口方法;
2、掌握A/D芯片TLC549、TLC1549的编程方法;
3、掌握数据采集程序的设计方法;
二、实验内容
1、在PROTEUS软件仿真环境下,采用TLC549做A/D转换器,对电位器提供的模拟电压信号进行定时采样,结果送数码管模块显示;(仿真电路图如图4.1所示):
2、利用单片机实验板上的TLC1549做A/D转换器,对电位器提供的模拟电压信号进行采样,结果送数码管模块进行显示。
三、实验线路
1、 TLC549实验电路原理图4.1如下:
图4.1 实验电路原理图
2、TLC549是CMOS 8位A/D转换器。该芯片有一个模拟输入端口,3态的数据串行输出接口可以方便的和微处理器或外围设备连接。TLC549仅仅使用输入/输出时钟(I/O CLOCK)和芯片选择(/CS)信号控制数据。最大的输入输出时钟(I/O CLOCK)为1.1MHz。
CLK 时钟位
DAT 数据位
CS 选片位
VCC 电源(5V)
REF+ 正基准电压输入端
REF- 负基准电压输入端
电位器RX1的首位两端分别接VCC、GND。
四、实验步骤
1、在KILL51软件下编辑TLC549的A/D转换源程序并汇编,运用PROTEUS软件仿真调试。仿真步骤:将TLC549的CLK接P1.0、DAT接P1.1、CS接P1.2,将模拟电压输入端连到电位器的电压输出端,并接电压表测量输入电压。
2、调节电位器,电压从0V到5V变化,记录数码管的显示数值。记录到表中。
实验五、数模转换
一、实验目的
1、掌握模数转换芯片TLC5615的接口技术。
2、掌握模数转换芯片TLC5615的编程方法。
二、实验内容
TLC5615是一个串行10位的DAC芯片,只需通过3根串行总线就可以完成10位数据的串行输入。要求:
1、编写程序实现下列要求:通过DIP开关输入0~3FF位数值,由TLC5615变为模拟电压输出,记录数值与对应的对应关系。
2、 利用TLC5615输出一个幅值从0V开始逐渐升至5V再降至0V、周期为1秒的三角波。用示波器观察该波形。
三、实验线路
1、TLC5615引脚排列:
2、TLC5615的时序图:
从图中可以看出,TLC5615的16位移位寄存器分为高4位虚拟位,低2位填充位以及10位有效位。如果选择12位数据序列工作方式,则向16位移位寄存器按先后输入10位有效位和地2位填充位,2位填充位数据任意。
四、实验步骤
1、用Proteus软件仿真,改变输入数据,使D/A输出电压从0V到5V变化,记录数码管的显示数值。记录到表中。
2、将编译好的三角波程序下载到实验板上,用示波器观察波形。
五、与显示编程
一、实验目的
1、掌握数码管显示程序的设计;
2、掌握键盘扫描程序的设计。
二、实验内容
设计单片机程序,读取键盘的按键值(键值为1~16),送数码管显示。(选做:用10进制显示键值)。
三、实验原理
数码管动态扫描显示的基本原理是,单片机依次向每个数码管发出段选码和对应的位选码,对数码管逐个循环点亮,选择适当的扫描速度,利用人眼的视觉暂留效应,使得虽然每个时刻只有一个数码管在显示,但得看上去好像同时显示,动态扫描在定时中断中调用,以保证准确的扫描速度。需要显示的数字必须先进行译码变成能显示的段码才能进行显示,译码可以通过查表来实现。
键盘扫描的基本原理是,列线逐列输出低电平,同时检测行线的电平,如其中有低电平时,表明当位于前行列位置上的键被按下,然后由行和列确定键值。在按键处理操作中,键被按下再被释放为一次按键操作,另外还进行键盘去抖动处理,用软件延时方法解决。
四、电路图:
1. KeilC51开发环境的学习的实验
1. 简述建立一个工程的步奏
2. 画出调试状态下仿真器存储空间分配图,并根据该图说明内部MON51监控程序的
作用,并说明ORG指令的作用。
3. 简述DPflash程序的作用。
4. Keilc 51软件将用户调试程序在线下载到仿真器中准备开始调试运行的菜单命令式
什么?
2. 串转并的I/O口实验
以下是74HC164芯片的内部原理图:
2.1.简单说明串转并的作用。
2.2画出74HC164芯片的真值表,根据真值表说明:
A: clock引脚为低电平时的作用?
B: 为什么实验中要将B引脚设置为高电平?(参考内部原理图)
2.3.实验中如果需要输出的数据为 #CCH , Q0~Q7输出引脚分别为什么信号(用2进制数据标示)?
2.4 简单说明CLEAR引脚的作用
2.5 简单说明RLC指令的作用
3. 并转串的I/O口实验
以下是74HC165芯片的内部原理图:
3.1简单说明并转串的作用 3.2根据内部原理图,说明该165器件内部使用的是什么触发器? 3.3根据该触发器的类型,说明SER引脚的作用。 3.4 说明PL引脚的作用? 3.5 如果拨线开关状态为 11001100B ,那么并转串完毕后得到的值为多少?
4. 串行模数转换实验
4.1画出实验电路原理图。
4.2说明参考高电平和参考低电平的作用。
4.3 计算该电路图A/D转换的分辨率。
4.4 查阅相关资料,说明A/D转换芯片的3个性能指标(分辨率,误差,转换时间)的意义。
5. 时钟中断实验
5.1简述时钟的4种工作模式
5.2 说明如计算时钟定时器初值的方法
5.3 根据该实验内容,说明TMOD寄存器、TCON寄存器的控制方式。
5.3 简单说明CPU要响应中断的条件
6. 串口通讯实验
6.1 简述 TTL电平规范和RS232电平规范的差异,以及MAX232芯片的作用。
6.2 简述 产生9600波特率定时器初值的计算方法,并计算。
6.3 简述3种串口通讯方式的差异。
7. 数码管
7.1 简述共阴级和共阳级数码管的区别。
7.2. 分别计算共阴极和共阳极数码管显示数字5时的驱动码。
7.3. 简述数码管的静态显示和动态显示的方法。
单片机实验报告学生姓名学号专业指导教师学院信息与电气工程学院20xx年11月单片机实验报告实验一MCS51指令系统实验数据排序1实…
通信与信息工程学院20xx20xx学年第二学期实验报告课程名称单片机原理及应用专业班级学号学生姓名指导教师日期20xx年4月15日…
题目单片机组成原理实验报告学院计算机科学与工程学院专业信息安全姓名学号20xx年12月8日实验一输入输出接口编程一实验目的1掌握K…
51单片机课程设计报告学院:专业班级:姓名:指导教师:设计时间:51单片机课程设计一、设计任务与要求1.任务:制作并调试51单片机…
海南大学届单片机实验报告4份论文题目学生姓名学号所在院系专业班级授课教师完成时间蜂鸣器实验实验目的1熟悉实验板中蜂鸣器工作原理掌握…
时间过得真快,不经意间,一个学期就到了尾声,进入到如火如荼的期末考试阶段。在学习单片机这门课程之前,就早早的听各种任课老师和学长学…
单片机实验心得体会时间过得真快,不经意间,一个学期就到了尾声,进入到如火如荼的期末考试阶段。在学习单片机这门课程之前,就早早的听各…
通过今次单片机实训,使我对单片机的认识有了更深刻的理解。系统以51单片机为核心部件,利用汇编软件编程,通过键盘控制和数码管显示实现…
通过这次单片机实习,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断…
PIC单片机技术上机实验报告实验项目:定时/计数姓名:专业:班级:学号:学期:1314学年2学期20xx一、实验名称×××二、实验…
单片机实验报告(二)实验名称:定时器及外部中断南京理工大学紫金学院电光系一、实验目的1、学习定时/计数器的应用;2、学习外部中断技…