版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实 验 报 告 课程名称 计算机测控技术 实验项目 单片机 实验仪器 keil4.0 系 别 仪器科学与光电工程 专 业 测控技术与仪器 班级/学号 学生姓名 实验日期 成 绩 指导教师 实验一 单片机程序设计基础一实验设备硬件使用的是单片机SS-8051高级单片机实验仪,软件使用的是Keil uv2软件开发环境。二 实验目的 熟悉单片机的调试环境与指令系统三实验内容 自编一个汇编小程序,使用Keil uv2软件开发环境,进行编译、调试、运行程序。Keil uv2 操作流程的简单说明:1 NEW PROJECT ,建一个新的项目,取项目名并存于F:盘下(最好在F盘下建一个自己的文件夹)。在出现
2、的对 话框中选Atmel/AT89c51 芯片型号;或者可以从File/ devices database 的对话框中选择芯片型号。2 FILE/ NEW ,建立一个新文件,在打开的窗口下输入程序,取文件名并存盘。3 选中Source Group1点击鼠标右键,在出现的菜单中选中 Add Files to Group Source Group1,将文件加入到项目中。4 选中Target1点击鼠标右键,在出现的菜单中选中Options for Target Target1:l 在出现的对话框中打开output项的对话框,选中Great HEX File,以保证编译时能生成.HEX文件,为后续下载
3、程序做准备。l 在出现的对话框中打开debug项的对话框,选中Use “keil monitor 51-driver”,并将其下的选项均选中系统处于在线下载调试状态。5 Project/Build target或Rebuild all target files, 编译所输入的程序,检查语法错误,更改错误直至无错为止。6 Debug/ Start/Stop Debug Session ,开始调试程序,单步或断点运行程序额,检查逻辑错误。4 实验程序#include <reg51.h>unsigned int code chOriginalSet10=30,30,550,30,8,30
4、,550,30,8,1; /*阀序时间间隔设置*/unsigned char code chFarXu9=0x00,0x51,0x55,0x45,0x80,0x62,0x6a,0x4a,0x80; /*阀序*/void delay(unsigned int times);main() unsigned char i; while(1) for(i=1;i<9;i+) P1=chFarXui; delay(chOriginalSeti); void delay(unsigned int times) unsigned int i,j,t; t=10000; for(i=0;i<tim
5、es;i+) for(j=0;j<t;j+); /*10个机器周期 对于 12MHz,10us */ 实验二 51单片机的串行通信实验一 实验内容连线并编制程序,完成单片机与PC机通信的功能。 二 实验目的 1. 了解单片机串口通信的基本功能;2. 了解单片机与PC机串口通信的硬件接口电路;3. 学会单片机和PC机串口程序的编制和调试。三 实验电路四连线方法 电路单元2单元7单元14单元连接一P30R1O连接二P31T1I连接三T1O接P2连接四R1I接P3连接五GNDP55 常用的各种波特率设置表波特率振荡频率SMODTIMERC/T模式自动装入480012M1020F3H240012
6、M0020F3H120012M1020F6H19200110592M1020FDH9600110592M0020FDH4800110592M0020FAH2400110592M0020F4H1200110592M0020E8H6 实验程序1、汇编程序ORG00HAJMPSTART;设置主程序地址ORG30HSTART:MOVSP,#60H;设置SP的值MOVTH1,#0FeH;设置波特率为9600MOVTL1,#0FeHMOVTMOD,#00100000B;选择计时器1方式2产生波特率MOVIE,#00H;禁止所有的中断,采用查询方式MOVSCON,#01010000B;设置串口为方式1,接收
7、允许SETBTR1;启动定时器1AGAIN:ACALL IN;接收字符子程序ACALLOUT;回送字符子程序AJMPAGAIN;循环out:movsbuf,a;发送字符子程序wait:jbc ti,end1;发送完毕返回sjmpwait;否则等待TI=1end1:retin:jbcri,end2;接收到字符(RI=1)时启动接收sjmpin;否则查询是否接收到字符end2:mova,sbuf;启动接收retEND ;程序结束 2、 C语言程序程序清单(C51):#include<reg51.h>#include <intrins.h>typedef unsigned c
8、har Byte;BytedataAA;voidOUT(void)SBUF=AA;/*发送字符子程序*/wait:if(TI=1)TI=0;goto end1;/*发送完毕返回*/gotowait;/*否则等待TI=1*/end1:_nop_();void IN(void)in1:if(RI=1)RI=0;goto end2;/*接收到字符(RI=1)时启动接收*/goto in1;/*否则查询是否接收到字符*/end2:AA=SBUF;/*启动接收*/voidmain(void)TH1=0xF3;/*设置波特率为2400*/TL1=0xF3;/*设置波特率为2400*/TMOD=0x20;/
9、*选择计时器1方式2产生波特率*/IE=0;/*禁止所有的中断,采用查询方式*/SCON=0x50;/*设置串口为方式1,接收允许*/TR1=1;/*启动定时器1*/AGAIN:IN();/*接收字符子程序*/OUT();/*回送字符子程序*/goto AGAIN;/*循环*/7 实验截图实验三 V/F转换电路实验1、 实验内容V/F转换电路的调试。 2、 实验要求1、 在了解LM331工作原理(转换原理)的基础上,考虑以下几个问题:输入电压范围;输出频率范围;输入和输出间的对应关系。 2、 调试电路,直至V/F转换器可以正确输出波形。如果V/F转换器没有输出或输出波形不理想,请分析查找原因,
10、并将波形调至等占空比。 3、 用示波器、频率计等工具观察V/F转换器的输出波形,观察定标调整环节W1,W2和W3对波形的影响。 4、 通过实测数据分析V/F转换器的线性,画出实际的V、F对应关系。3、 实验电路图 四、实验数据处理V(V)4.9734.0293.5003.0052.4991.9991.5041.0010.502F(Hz)6.645.384.634.003.322.662.001.320.67实验四 V/F转换的数据采集 一 实验内容连线并编制程序:使用定时器和计数器完成 LM331脉冲输出信号的采集功能, 对采集的数据进行处理,最终得到频率值。二 实验目的1 定时器中断的使用;
11、2 学习定时器中断间隔时间的计算;3 掌握计数器的使用方法;4 学习中断处理程序的编程方法。三 原理简述1定时器/计数器的输入脉冲周期与机器周期一样,为振荡器频率的1/12。本实验中时钟频率为12M,现要采用中断方法来实现1秒延时,要在定时器1中设置一个时间常数,使其每隔0.05秒产生一次中断,CPU响应中断后R0中计数值减一,令(R0)=14H,即可实现1秒的延时,时间常数可按下法确定:机器周期=12/晶振频率=12/12=1uS定时器需设初值为X,则(216X)*1=50000uS求出X=15536化为十六进制:X=3CB0H,故初始值为:TH1=3CH,TL1=B0H。2. 初始化程序包
12、括定时器初始化和中断系统初始化,主要对IP,IE,TCON,TMOD的相应位进行正确的设置,并将时间常数送入定时器中。由于只有定时器中断,IP不必设置。注意一点:定时器1初始化时建议用如下的指令:ANLTMOD,#0FHORLTMOD,#10H3. 设计中断服务程序和主程序中断服务程序除了要完成计数减1工作外,还要将时间常数重新送入定时器中,为下一次中断做准备。主程序则对计数器的数值进行处理,转换成频率值。 实验五 7279键盘显示控制实验一 实验题目连线并编制程序,将HD7279A的全部编码送HD7279A显示,以一秒钟为间隔显示下一位,以前的显示内容左移。二 实验目的1 了解HD7279A
13、键盘显示芯片的基本应用;2 掌握HD7279A键盘显示芯片的接口电路及编程方法。三 原理简述HD7279A是一片具有串行接口的,可同时驱动8位共阴式数码管(或64只独立LED)的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,单片即可完成LED显示、键盘接口的全部功能。HD7279A内部含有译码器,可直接接受BCD码或16进制码,并同时具有2种译码方式,此外还有多种控制命令,如消隐、闪烁、左移、右移、段寻址等。命令的具体形式可查阅HD7279A相关的技术资料。四 实验电路五 连线方法电路单元2单元6单元8单元9单元连接一P1.2-P1.5DATA,/KEY,/CS,/CLK(JP38
14、.2-JP38.5)连接二左边的DG0-DG56G-1G连接三SA-DPB7-B0连接四右边的DG0-DG3C0-C3连接五SA-SCC4-C6连接六JP16跳线接GND另外,在实验之前,应将8单元的U7(7406)和U6(74LS245)芯片取下,因7279已经有直接驱动数码管的能力,如果另外放置驱动芯片,反而会影响数码管的显示效果。六 实验程序程序清单(C51):#include<reg51.h>/*C51内部资源定义*/#include <intrins.h>typedef unsigned char Byte;/*下面的程序中用Byte代替unsigned ch
15、ar*/bdata Byte BIT_COUNT,TIMER,TIMER1,TEN,DATA_IN,DATA_OUT,AA,BB;sbit data_in0=DATA_IN0;sbit data_out7=DATA_OUT7;sbit DAT=P12;/*HD7279A的DATA连接于P1.2*/sbit KEY=P13;/*HD7279A的KEY(键盘中断信号)连接于P1.3*/sbit CS=P14;/*HD7279A的CS(片选信号)连接于P1.4*/sbit CLK=P15;/*HD7279A的CLK连接于P1.5*/void SEND(void);/*发送*/void LONG_DE
16、LAY(void);/*长延时*/void SHORT_DELAY(void);/*短延时*/void RECEIVE(void);/*接收*/void main(void)/*主程序*/START:_nop_();/*启动,短延时几微秒*/P1=0xDB; /*给P1赋值0xDB*/TIMER=50;/*定时50秒*/START_DELAY:TIMER1=255;/*定时255秒*/START_DELAY1:TIMER1-;/*/if(TIMER1>0)goto START_DELAY1;/*如果TIMER1大于0跳转到START_DELAY1*/TIMER-;/*/if(TIMER&
17、gt;0)goto START_DELAY;/*如果TIMER大于0跳转到START_DELAY*/DATA_OUT=0xA4; /*给DATA_OUT赋值0xA4*/SEND(); /*发送数据*/CS=1; /*片选置1*/MAIN1:if(KEY=1)goto MAIN1; /*如果键盘中断信号为1,跳转到MAIN1*/DATA_OUT=0x15; /*DATA_OUT赋值0x15*/SEND(); /*发送*/RECEIVE(); /*接收*/CS=1; /*片选为1*/AA=DATA_IN; /*给AA赋值DATA_IN*/if(AA=6)BB=1;/*如果AA为6,BB为1*/if
18、(AA=5)BB=2;/*如果AA为5,BB为2*/if(AA=4)BB=3;/*如果AA为4,BB为3*/if(AA=14)BB=4;/*如果AA为14,BB为4*/if(AA=13)BB=5;/*如果AA为13,BB为5*/if(AA=12)BB=6;/*如果AA为12,BB为6*/if(AA=22)BB=7;/*如果AA为22,BB为7*/if(AA=21)BB=8;/*如果AA为21,BB为8*/if(AA=20)BB=9;/*如果AA为20,BB为9*/if(AA=30)BB=11;/*如果AA为30,BB为11*/if(AA=29)BB=0;/*如果AA为29,BB为0*/if(A
19、A=28)BB=12;/*如果AA为28,BB为12*/TEN=0;/*MOVTEN,A*/DATA_OUT=0xA1;/*MOVDATA_OUT,#10100001B*/SEND();/*CALLSEND*/DATA_OUT=0xA1;/*MOVDATA_OUT,#10100001B*/SEND();/*CALLSEND*/DATA_OUT=0x81;/*MOVDATA_OUT,#10000001B*/SEND();/*CALLSEND*/DATA_OUT=TEN;/*MOVDATA_OUT,TEN*/SEND();/*CALLSEND*/DATA_OUT=0x80;/*MOVDATA_OU
20、T,#10000000B*/SEND();/*CALLSEND*/DATA_OUT=BB;/*MOVDATA_OUT,B*/SEND();/*CALLSEND*/CS=1; /*片选信号置1*/WAIT:if(KEY=0)goto WAIT;goto MAIN1; /*如果KEY为0,跳转到WAIT,否则跳转到MAIN1*/void SEND(void) /*发送子程序*/BIT_COUNT=8; /*统计为8*/CS=0; /*片选置0*/LONG_DELAY(); /*长延时*/SEND_LOOP:CY=data_out7; /*发送循环*/DAT=CY; /*引脚的状态*/CLK=1;
21、/*时钟信号为1*/AA=DATA_OUT; /*给AA赋值DATA_OUT*/AA=_crol_(AA,1);/*_crol_函数在这里是把左边的一个零移到右边*/DATA_OUT=AA;/*给DATA_OUT赋值AA*/SHORT_DELAY(); /*短延时*/CLK=0;/*时钟信号为0*/SHORT_DELAY;/*短延时*/BIT_COUNT-;if(BIT_COUNT>0)goto SEND_LOOP;/*DJNZBIT_COUNT,SEND_LOOP; DAT=0;/*将DAT清0*/ void LONG_DELAY(void)/*长延时子程序*/TIMER=25; /*
22、定时25秒*/DELAY_LOOP:TIMER-;/*延时循环*/if(TIMER>0)goto DELAY_LOOP;/*如果TIMER大于0,跳转到DELAY_LOOP*/*RET*/void SHORT_DELAY(void)/*短延时子程序*/TIMER=4;/*MOVTIMER,#4; /*/DELAY_LOOP1:TIMER-;/*延时循环*/if(TIMER>0)goto DELAY_LOOP1;/*如果TIMER大于0,跳转到DELAY_LOOP1*/void RECEIVE(void)/*接收子程序*/BIT_COUNT=8;/*MOVBIT_COUNT,#8*/
23、DAT=1;/*SETBDAT*/LONG_DELAY();/*CALLLONG_DELAY*/RECEIVE_LOOP:CLK=1;/*SETBCLK*/SHORT_DELAY();/*CALLSHORT_DELAY*/AA=DATA_IN;/*MOVA,DATA_IN*/AA=_crol_(AA,1);/*RLAA*/DATA_IN=AA;/*MOVDATA_IN,A*/CY=DAT;/*MOVC,DAT*/data_in0=CY;/*MOVDATA_IN.0,C*/CLK=0;/*CLRCLK*/SHORT_DELAY();/*CALLSHORT_DELAY*/BIT_COUNT-;/*
24、/if(BIT_COUNT>0)goto RECEIVE_LOOP;/*如果BIT_COUNT大于0,跳转到DELAY_LOOP*/DAT=0;/*CLR DAT*/七 实验截图实验六 电机调速控制实验一 实验内容 连线并编制程序,产生脉冲信号,控制直流电动机的运行。 二. 实验目的 1 掌握采用单片机控制直流电动机的硬件接口技术。2 掌握直流电动机驱动程序的设计与调试方法。3 熟悉直流电动机的工作特性。 三. 实验电路4 连线方法 电路单元2单元电机单元电机单元连接一P10-P13AD4-AD7连接二GNDCS1连接三GNDGND(有跳线)连接四VCCVCC(有跳线)5 实验程序#in
25、clude<reg51.h>typedef unsigned char Byte;sbit PAA=P10;sbit PBB=P12;sbit PCC=P11;sbit PDD=P13;/设置引脚void DelayXms()/延时程序int i,j;for(i=0;i<count;i+)for(j=0;j<100;j+)/更改此处可以改变电动机转速void main(void)/主程序,循环,使电动机转P1=0x0;while(1)PAA=0;DelayXms(10);PDD=1;DelayXms(10);PBB=0;DelayXms(10);PAA=1;DelayX
26、ms(10);PCC=0;DelayXms(10);PBB=1;DelayXms(10);PDD=0;DelayXms(10);PCC=1;DelayXms(10);6 实验截图 实验七 模/数转换实验一实验内容:利用实验台上的ADC0809做A/D转换器,实验台上的电源和地提供模拟量输入,编制程序,将模拟量转换成数字量,用发光二极管显示。二实验目的:1.掌握A/D转换与单片机的接口方法。2.了解A/D芯片ADC0809转换性能及编程方法。3.通过实验了解单片机如何进行数据采集。三实验原理简述:A/D转换器大致有三类:一是双积分A/D转换器,优点是精度高,抗干扰性好,价格便宜,但速度慢;二是逐
27、次逼近A/D转换器,精度、速度、价格适中;三是并行A/D转换器,速度快,价格也昂贵。实验用的ADC0809属于第二类,是八位A/D转换器。每采集一次需100uS。ADC0809START端为A/D转换启动信号,ALE端为通道选择地址的锁存信号。实验电路中将其相连,以便同时锁存通道地址并开始A/D采样转换。故启动A/D转换只需如下两条指令:MOVDPTR,#00HMOVXDPTR,AA中为何内容是不重要的,这是一次虚拟写。中断方式下,A/D转换结束后会自动产生EOC信号,将其与8031INTO相接。中断处理程序中,使用如下指令即可读取A/D转换结果:MOVDPTR,#00HMOVXA,DPTR四
28、实验原理图:l Enable: 输出允许信号位五连线方法:电路单元2单元4单元7单元11单元13单元连接1P00 -P07DB0-DB7MSB20-MSB27(转换后得8位数字量)连接2P22-P20(0809地址控制位)C-A(138的输入)连接3Y0CS2连接4ALEALECLK连接5P32/I0EOC(转换结束标志位)连接6P1.0-P1.7L1-L8(8位数字量显示灯)连接7A2-A0ADDC-ADDA(0809地址位)连接8P36/WR,P37/RDWR2,/RD(联合控制0809启动位Start;控制地址锁存有效位ALE)见上原理图连接9E1,E2接地连接10O0连接IN0(输入的
29、电压值)连接11CEBVCC,E3六程序框图:这里给出软件延时方法的程序框图和程序:初始化启动AD转换软件延时PPPPPPP3P3.5CHANSHENG 读取转换结果送P1口显示结果七实验程序#include<reg51.h>#include<intrins.h>int f,f0;void main() TMOD=0X51; TH0=0X9E; TL0=0X58; TH1=0X00; TL1=0X00; ET0=1; EA=1; TR0=1; TR1=1; while(1);void time1() interrupt 1 using 2 EA=0; TR0=0; TR
30、1=0; f=TL1+TH1*256; f0=f*2; 八 实验截图实验八 微型打印机接口控制实验一 实验内容:将实验仪接上微型打印机,控制打印机打印出各种效果的汉字和字符。二 实验目的:1 了解微型打印机接口及其打印字符的方法;2 了解微型打印机打印汉字的方法;3 了解单片机与微型打印机的连线方法。三 有关说明: l 并行接口连接接口与引脚定义:本系列打印机并口与CENTRONICS 兼容,支持BUSY/ACK 握手协议,接口插座如下图:并行接口各引脚信号的定义如下图表所示:注: 1.“入”表示输入到打印机。 2.“出”表示从打印机输出。 3.信号的逻辑电平为TTL 电平。l 并行接口引脚信
31、号时序并口时序如下图所示:四 实验电路: 五 连线方法: 电路单元第2单元打印机连接1P0.0-P0.7Data1-Data8(3,5,7,9,11,13,15,17)连接2P3.7 /STB(1)连接3P3.2(INT0)BUSY(21)连接4Gnd18六 实验程序l 单片机控制打印机时汇编例程BUSY EQU P3.2 ; 定义BUSY 信号引脚nSTB EQU P3.7 ; 定义nSTB 信号引脚JB BUSY, $ ; 等待打印机到空闲MOV P1 , A ; 送数据到数据口CLR nSTB ; 置nSTB 为低电平NOP ; 延长nSTB 信号脉冲宽度以满足时序要求nopnopSET
32、B nSTB ; 置nSTB 为高电平(此时数据将被读入打印机)RETprint_content:DB '北京炜煌'DB 0dhENDl 单片机C51 例程/ 北京炜煌科技打印机示例程序/ Nocky Tian/ 2007-07-17#include <reg52.h>/ Hardware configuration#define PRINTER_DATA P1 / 定义打印机数据线端口sbit BUSY = P32; / 定义打印机忙信号引脚sbit nSTB = P37; / 定义打印机nSTB 信号引脚sbit PE = P33; / 定义打印机纸状态检测信号引脚sbit nACK = P32; / 定义打印机应答信号引脚sbit nERR = P31; / 定义打印机错误检测信号引脚sbit nSEL = P30; / 定义打印机在线检测信号引脚#define CR 0x0d#defi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 通信基站建设承包合同
- 气象观测站施工员招聘合同模板
- 商业广场装饰围墙施工协议
- 融资租赁资产管理设备借款协议书
- 电子商务薪酬激励计划
- 书法家协会协管员聘任合同
- 旅游大巴司机聘用协议
- 2023年福建省中考物理复习专题练:15电功率
- 中华华惠保医疗保险
- 中南林业科技大学《工程造价管理》2023-2024学年第一学期期末试卷
- 班主任工作经验分享如何成为优秀的班主任
- 古诗文系列课件模板-山房春事二首
- 2024年上海市第二十七届初中物理竞赛初赛试题及答案
- 2011年认识实习报告
- 水务公司招聘笔试题库及答案
- 医疗垃圾分类与处理的人员培训与资质要求
- 审核的改进计划和措施
- 《旅游管理》专业调研报告
- 2024野生哺乳动物及栖息地调查技术规程
- 2024年中医药知识与技能竞赛题库附含答案
- 2023年6月大学生英语四级真题试卷及详细答案(三套)
评论
0/150
提交评论