单片机实验报告含仿真

单片机实验报告含仿真
单片机实验报告含仿真

单片机实验报告含仿真

————————————————————————————————作者: ————————————————————————————————日期:

?

单片机原理及应用课程

实验报告

专业:

班级:

姓名:

学号:

实验一、keilC51及proteus软件的使用

一、实验目的:

1、掌握keil和proteus软件的基本操作

2、通过具体实例掌握keil和proteus软件的使用。

二、实验原理: keil使用步骤,proteus使用步骤

三、程序:

四、实验结果分析:

五、总结:学会了使用keil和proteus软件,掌握了利用keil和proteus

软件进行仿真的步骤。

实验二、并行输入/输出接口实验

一、实验目的:

1、进一步熟悉keil仿真软件、proteus仿真软件的使用。

2、了解并熟悉单片机I/O口和LED灯的电路结构,学会构建简单的流水灯电路。

3、掌握C51中单片机I/O口的编程方法和使用I/O口进行输入输出的注意事项。

二、实验原理:

MCS 51单片机的串行口在实际使用中通常用于三种情况:利用方式0 扩展并行i/0 接口:利用方式 1 实现点对点的双机通信; 利用方式 2 或方式3 实现多机通信。利用方式0扩展并行i/0 接口MCS 5 1 单片机的串行口在方式0 时, 若外接一个串入并出的移位寄存器, 就可以扩展并行输出口; 若外接一个并入串出的移位寄存器,就可以扩展并行输入口。

三、程序:

#include

sbit P1_0=P1^0;

voidmain()

{

unsignedchar i;

unsignedint j;

SCON=0x00;

i=0x01;

for(;;)

{

P1_0=0;

SBUF=I;

while(!TI) {i}

P1_0=1;TI=0;

for(j=0;j<=254;j++){;}

i=i*2;

if(i==0x00) i=0x01;

}

}

四、实验结果分析:

五、总结:进一步熟悉了keil仿真软件、proteus仿真软件的使用。了解并熟悉单片机I/O口和LED灯的电路结构,学会了构建简单的流水灯电路。掌握了C51中单片机I/O口的编程方法和使用I/O口进行输入输出的注意事项。

?

实验三、定时器/计数器实验(1)—查询方式产生500us的方波

一、实验目的:

1、熟悉keil仿真软件、proteus的使用和C51定时程序的编写;

2、了解51单片机中定时、计数的概念,熟悉51单片机内部定时/计数器的结构与工作原理;

3、掌握查询方式处理定时/计数的工作过程,

4、掌握定时/计数器在C51中的设置与程序的书写格式以及使用方法。

二、实验原理:

通常利用定时/计数器来产生周期性的波形。利用定时/ 计数器产生周期性波形的基本思想是: 利用定时/ 计数器产生周期性的定时, 定时时间到则对输出端进行相应的处理。例如产生周期性的方波只需定时时间到对输出端取反一次即可。不同的方式定时的最大值不同,如定时的时间很短, 则选择方式2。方式 2 形成周期性

的定时不需重置初值;如定时比较长,则选择方式0 或方式 1 ; 如时间很长,则一个定时/计数器不够用, 这时可用两个定时/ 计数器或一个定时/ 计数器加软件计数的方法。

三、程序:

#include<reg51.h>

sbit P1_0=P1^0;

void main()

{

TMOD=0x02;

TH0=0x06;TL0=0x06;

TR0=1;

for(;;)

{

if(TF0){TF0=0;P1_0=!P1_0;}

}

}

四、实验结果分析:

五、总结:熟悉了keil仿真软件、proteus的使用和C51定时程序的编写;了解51单片机中定时、计数的概念,熟悉了51单片机内部定时/计数器的结构与工作原理;掌握了查询方式处理定时/计数的工作过程,掌握了定时/计数器在C51中的设置与程序的书写格式以及使用方法。

?实验四、定时器/计数器实验(2)—中断方式产生500us的方波

一、实验目的:

1、熟悉keil仿真软件、proteus的使用和C51定时程序的编写;

2、进一步熟悉51单片机内部定时/计数器的结构与工作原理;

3、掌握中断方式处理定时/计数的工作过程。

二、实验原理

从P 1.0 输出周期为500 us 的方波, 只需P 1.0 每250 us 取反后一次即可。当系统时钟为12MHz时,定时/计数器TO 工作于方式 2 时, 最大的定时时间为256 us ,满足250us 的定时要求,方式控制字应没定为000000 1 0B ( 02H )。系统时钟为12Mhz ,定时250us, 计数值N 为250, 初值X =256 -250 =6 , 则THO = TLO =06 H。

:

三、程序:

#include

sbit P1_0=P1^0;

void main()

{

TMOD=0x02;

TH0=0x06;TL0=0x06;

EA=1;ET0=1;

TR0=1;

while(1);

voidtime0_int(void) interrupt1{

P1_0=!P1_0;

}

四、实验结果分析:

五、总结:熟悉了keil仿真软件、proteus的使用和C51定时程序的编写;进一步熟悉了51单片机内部定时/计数器的结构与工作原理;掌握了中断方式处理定时/计数的工作过程。

实验五:串行接口实验(1)—工作方式0扩展并行IO口

一、实验目的:

1, 掌握串行口工作方式0的程序设计;

2、熟悉51单片机串口的结构和工作原理

3、掌握串口工作方式0的工作特点。

二、实验原理:

MCS 51单片机的串行口在实际使用中通常用于三种情况:利用方式0 扩展并行i/0 接口: 利用方式1 实现点对点的双机通信;利用方式2或方式3实现多机通信。利用方式0 扩展并行i/0接口MCS 5 1 单片机的串行口在方式0 时, 若外接一个串入并出的移位寄存器, 就可以扩展并行输出口;若外接一个并入串出的移位寄存器, 就可以扩展并行输入口。

三、程序:

#include

sbit P1_0=P1^0;

void main()

{

unsigned char i;

unsigned int j;

SCON=0x00;

i=0x01;

for(;;)

P1_0=0;

SBUF=I;

while(!TI) {i}

P1_0=1;TI=0;

for(j=0;j<=254;j++){;}

i=i*2;

if(i==0x00) i=0x01;

}

}

四、实验结果分析:

五、总结:掌握了串行口工作方式0的程序设计;熟悉了51单片机串口的结构和工作原理。掌握了串口工作方式0的工作特点。

实验六:串行接口实验(2)—双机通信

一、实验目的:

1、掌握串行口工作方式1的程序设计;

2、进一步掌握51单片机串口的结构和工作原理

3、掌握串口工作方式1的工作特点。

二、实验原理:

甲、乙两机处理过程一样, 程序相同。方式选择方式 1 :即8 位异步通信方式, 波特率为1200bps,既要发送,也要接收,所以串口控制字为50H 。由于选择的是方式1,波特率由定时/ 计数器TI的溢出率和电源控制寄存器PCON中的SMOD位决定,则需对定时/ 计数器Tl 初始化。设振荡频率为12MHz , 取SMOD=0,波特率为1200bps,定时/ 计数器T1选择为方式2,则初值如下初值= 256 一foscx2SMOD / (12 ×波特率× 32 )= E6H 根据要求, 定时/计数器T1的方式控制字为20H 。

发送过程采用查询方式,在主程序中读取PI 口的开关状态,通过串口发送;接收过程采用中断方式,接收的内容送P2 口, 通过P2 口的发光二极管显示。

三、程序:

#include <reg51.h>

void main()

{

unsigned chari;

SP=0x60;

SCON=0X50;

TMOD=0x20;

TL1=0xe6;

TH1=0xe6;

TR1=1;

EA=1;

ES=1;

while(1)

{

P1=0XFF;

i=P1;

SBUF=i;

while(TI==0);

TI=0;

}

}

void funins(void) interrupt 4

{

EA=0;

RI=0;

P2=SBUF;

EA=1;

}

四、实验结果分析:

五、总结:掌握了串行口工作方式1的程序设计;进一步掌握了51单片机串口的结构和工作原理,掌握了串口工作方式1的工作特点。

?

实验七:中断系统实验(1)—交通灯模拟控制

一、实验目的

1、掌握单片机外部中断的原理及过程。

2、掌握单片机外部中断程序的设计方法。

3、掌握单片机外部中断时中断方式的选择方法。

二、实验原理:

交通灯正常运行时, 可分为 4 个状态: 状态 1 , 东西方向绿灯,南北方向红灯20 秒,状态编码“00100001 ” ; 状态2 , 东西方向黄灯,南北方向红灯3 秒, 状态编码“ 01000001 ” ;状态 3 ,南北方向绿灯,东西方向红灯20 秒,状态编码“ 00010010 ”状态 4 , 南北方向黄灯, 东西方向红灯 3 秒,状态编码“ 0001m00 ” 。东西发生异常时,

东西通行, 南北禁止,东西方向绿灯闪, 南北方向红灯闪60 秒;南北发生异常时, 南北通行, 东西禁止, 南北方向绿灯闪, 东西方向红灯闪60秒。主程序中实现交通灯正常运行过程, 两种异常用外中断0 和外中断1管理,外接开关模拟异常发生, 在中断服务程序中实现异常处理, 在主程序中开放外中断0和外中断 1 ,设置为边沿触发方式。时间单位采用500ms信号, 由定时计数器0 定时50ms , 循环10 次产生, 定时计数器0采用查询方式,主程序中设定定时计数器0 的工作方式:方式1 。

三、程序:

#include

void delay500ms(unsigned char k);

void main(void)

SP=0x60;

TMOD=0x01;

IE=0x85;

TCON=0x05;

while(1)

P1=0x21;

delay500ms(40);

P1=0x41;

delay500ms(6);

P1=0x12;

delay500ms(40);

P1=0x14;

delay500ms(6);

}

}

void int_0(void) interrupt 0 {

unsignedchar i1,i2;

i1=P1;

for(i2=0;i2<60;i2++)

P1=0x21;

delay500ms(1);

P1=0x00;

delay500ms(1);

}

P1=i1;

}

void int_1(void) interrupt 2 {

unsigned char j1,j2;

j1=P1;

for(j2=0;j2<60;j2++)

{

P1=0x12;

delay500ms(1);

P1=0x00;

delay500ms(1);

}

P1=j1;

}

voiddelay500ms(unsigned char m) {

unsigned char k1,k2;

TH0=0x3C;TL0=0xB0;

TR0=1;

for(k1=0;k1<m;k1++)

{

for(k2=0;k2<10;k2++)

while(!TF0);

TF0=0;

TH0=0x3C;TL0=0xB0;

}

}

四、实验结果分析:

五、总结:掌握了单片机外部中断的原理及过程。掌握了单片机外部中断程序的设计方法。掌握了单片机外部中断时中断方式的选择方法。

?

实验八:中断系统实验(2)—工业监控系统的设计

一、实验目的:

1、进一步掌握外部中断技术的基本使用方法。

2、进一步熟悉中断处理程序的编程方法。

二、实验原理:

在单片机监控系统中,信号的监控用外部中断来实现,51 单片机外部中断只有两个,而监控信号通常有多个, 这里就涉及到多个中断源的处

理,处理时往往通过中断加查询的方法来实现。连接时, 一方面把多路监控信号中断源通过“ 线与”接于 5 1单片机外部中断引脚上,另一方面, 每一个中断源再连接到一根并口线上。这里用4个开关(BUTTON)模拟4 路监控信号, 通过4 输入的与门( AND 一 4 )连接到INTO 引脚上,监控信号正常情况为高电平,发生超限变为低电平。4 路监控信号又分别与P2口的低4 位并口线相连。在该电路中,无论哪个中断源提出请求, 系统都会响应TO 中断。响应后,进入中断服务程序, 在中断服务程序中通过对并口线的逐一检测来确定是哪一个中断源提出了中断请求,进一步转到对应的中断服务程序入口位置执行对应的处理程序。

三、程序:

#include

#include

#define ucharunsigned char

sbit P10=P1^0;

sbitP11=P1^1;

sbit P12=P1^2;

sbit P13=P1^3;

sbit P20=P2^0;

sbit P21=P2^1;

sbit P22=P2^2;

sbit P23=P2^3;

void delay()

uchar i,j;

for(i=0;i<250;i++)

for(j=0;j<250;j++)

{

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

}

voidint0() interrupt 0

{

if(P20==0)P10=0;

if(P21==0)P11=0;

if(P22==0)P12=0;

if(P23==0)P13=0;

delay();

delay();

}

void main(void)

{

IT0=1;

EA=1;

EX0=1;

while(1)

{

P1=0xff;

P2=0xff;

}

}

四、实验结果分析:

实验九:简单的I/O扩展实验

一、实验目的:

1、掌握单片机系统中扩展简单I/ O口的基本方法。

2、掌握扩展I/O口的编程方法。

二、实验原理:

74LS373 的数据锁存控制端LE 是由8051 单片机的片外数据存储器写信号WR 和P2.7 通过或非门(NO R) 后相连的,输出允许端OE 直接接地, 输入端有数据来时直接通过输出端输出。当执行向片外数据存储器的写指令时, 指令中片外数据存储器的地址使P2.7 为低电平, 则数据锁存控制端LE 有效,数据总线上的数据就送到74LS373的输出端74LS244 的控制端10E 和20E 连在一起,与8051 单片机的片外数据存储器读信号RD和P2.7 通过或门(OR )后相连,当执行从片外数据存储器读的指令时,指令中片外数据储器的地址使P2.7 为低电平,则控制端10E和20E 有效, 74LS244的输入端的数据通过输出端送到数据总线,然后传送到8051 单片机的内部。这里, 扩展的简单i/O 口访问时只需地址线最高位P2.7 为低电平即可,其余地址没有用,可取为低电平, 因此对应的片外据在储器地址为7FFFH。

三、程序:

#include

#include

#define uchar unsigned char

void main(void)

单片机实验报告

PIC单片机原理与应用实验报告 学校: 学院: 班级: 姓名: 学号: 指导教师:

实验一I/O端口实验 一、实验目的 (1)掌握MPLAP IDE集成开发环境的基本操作。 (2)掌握单片机的I/O端口的设计方法。 (3)掌握在线调试器的使用方法。 (4)学会查阅相关数据手册。 二、实验仪器设备 (1)PC机一台; (2)MPLAP IDE开发软件一套; (3)PICkit3在线调试器一套; (4)APP009实验板一块; 三、实验要求 (1)设计发光LED灯闪烁程序,下载调试,验证功能。 (2)设计流水灯程序,或其他花样彩灯程序,下载调试,验证功能。 (3)设计按按键加1计数程序,下载调试,验证功能。 四、实验步骤 (1)连接在线调试器PICkit3、APP009实验板和计算机; (2)打开MPLAP IDE集成开发环境软件,点击Debugger>Select Tools>PICkit 3 选择调试工具; (3)点击Debugger>Settings,在Settings窗口中点击Power栏,选择由PICkit3向实验板供电; (4)完成实现发光LED灯闪烁实验; 程序代码: #include void delay(void); int main() { while(1) { TRISEbits.TRISE0 = 0; //RE0设置为输出(1输入,0输出); https://www.360docs.net/doc/923395775.html,TE0 =1; //RE0=1输出高电平+5V,亮灯 delay(); //延时 https://www.360docs.net/doc/923395775.html,TE0 =0; //RE0=0输出低电平0V,灭灯 delay(); //延时 } } void delay(void) { long int i; for (i=0;i<65000;i++); } 实验现象:将程序下载到实验板上,运行程序,LED闪烁,通过改变延时函数改变延时时间,进而可以改变LED闪烁的频率。

单片机第一次实验报告

单片机第一次实验报告 姓名: 学号: 班级:

实验报告 课程名称:微机原理与接口技术指导老师:学生姓名:学号:专业:自动化日期:20140327 地点: 实验一实验名称 1. 实验目的和要求 1.掌握keil软件和STC-ISP 软件的使用方法 2.点亮第一个发光管. 3.点亮1,3,5,7发光管 4.尝试让第一个发光管闪烁. 2. 主要仪器设备 1.一台pc机 2.一个单片机开发板 点亮第一个发光管. #include void main () { P1 &=0xFE; while(1) } 点亮1,3,5,7发光管 void main () { P1 &=0xAA;

while(1) } 尝试让第一个发光管闪烁. #include #define uint unsigned int #define uchar unsigned char void delay_ms(uint timer) { uchar j = 0; while(timer--) { for(j = 124;j>0;j--) { ; } } } void main (void) { while(1) { P1 &=0xFE; delay_ms(100); P1 |=0x01; delay_ms(100); } }

实验心得:这第一次试验,没准备,所以这次实验一上机啥都不会,也不知道该做啥,在同学的帮助下安装了程序和驱动,代码也是问同学才明白的。第一个代码,通过很顺利,但是测试第二个代码的时候电脑无法连接板子,后来重新安装了驱动才就能连接了。虽然感觉还是好多不懂的,不过还是学到了一些东西,有一点成就感。

单片机实验报告

仲恺农业工程学院实验报告纸 自动化学院(院、系)工业自动化专业144班组单片机与嵌入式系统实验课学号201421714406姓名黄国盛实验日期2016年11月05日教师评定 实验一Keil C51集成开发环境的使用练习 一、实验目的 熟悉Keil C51集成开发环境的使用方法。 二、实验设备及器件 IBM PC机一台 三、实验内容 按照Keil C51软件的使用说明进行Keil C51集成开发环境的安装和使用练习,然后按照以下内容建立并编译产生HEX文件。 ORG0000H LJMP Main ORG00F0H Main: MOV R7,#0 Loop: MOV R6,#0 DJNZ R6,$ DJNZ R6,$ DJNZ R6,$ DJNZ R6,$ DJNZ R7,Loop;延时 CPL P1.0;P1.0取反 CPL P1.1;P1.1取反 CPL P1.2;P1.2取反 CPL P1.3;P1.3取反 CPL P1.4;P1.4取反

CPL P1.5;P1.5取反 CPL P1.6;P1.6取反 CPL P1.7;P1.7取反 SJMP Main END 四、实验要求 熟练掌握Keil C51集成开发环境的工程建立、编辑与编译功能。 五、实验预习要求 认真阅读Keil C51软件的使用说明。 六、实验思考题 试写一条把片内RAM50H~59H单元清零的程序。 实现程序如下: ORG0000h LJMP Main ORG0100H Main:MOV R0,#50H;立即数50H(内部RAM地址)传送到R0中 MOV R1,#10;立即数10(循环次数为10次)传送到R1中 MOV A,#0;立即数0传送到A,中将累加器A的值清0 LOOP:MOV@R0,A;将R0内容所指向的单元清0 INC R0;R0内容加1,修改地址指针 DJNZ R1,LOOP;减1不为0判断,若为真跳回循环,否,则运行下一语句 END;结束 七、实验总结 通过实验,熟悉80C51指令系统,熟悉Keil C51集成开发环境的使用方法,熟练掌握Keil C51集成开发环境的工程建立、编辑与编译功能。加深对内部存储器读写的认识。

四路抢答器课程设计报告

四 路 抢 答 器 设 计 实 验 报 告 信息科学技术学院自动化*班 ****

四路抢答器设计实验报告 一、设计任务: 1、巩固和加深对电子电路基本知识的理解,提高综合运用本课程所学知识的能 力。 2、养成根据设计需要选学参考书籍,查阅相关手册、图表和文献资料的自学能力。 3、通过电路方案的分析、论证和比较,设计计算和选取元器件、电路组装、 调试和检测等环节,初步掌握简单实用电路的分析方法和工程设计方法。 4、学会简单电路的实验调试和性能指标的测试方法,提高学生动手能力和进行 数字电子电路实验的基本技能。 二、技术指标 抢答器是一种具有优先输出的电子电路。它的基本功能是,在四组参赛的情况下,首先抢答者发出抢答信号,此时其他参赛组的抢答电路即失去控制作用。在优先抢答者解除抢答信号后,电路才自动恢复到各组又可均等抢答的状态中。 1、设计一个可供4人进行的抢答器。 2、系统设置复位按钮,按动后,重新开始抢答。

3、抢答器开始时数码管无显示,选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。抢答后显示优先抢答者序号,同时发出音响。并且不出现其他抢答者的序号,这样其它选手无法再抢答,达到抢答目的。 4、抢答器具有定时抢答功能,本抢答器的时间设定为10秒,当主持人启动“开始”开关后,定时器开始减计。 5、设定的抢答时间,选手可以抢答,这时定时器开始工作,显示器上显示选手 的和抢答时间。并保持到主持人按复位键。 6、当设定的时间一到,而无人抢答时,本题报废,选手们无法再抢答,同时扬 声器报警发出声音,定时器上显示0。 三、元件清单:

单片机实验报告

单片机实验报告 班级:信科09-3 姓名:王艳辉 学号:08093581 指导老师:陈岱 完成时间:2012年1月8日

实验一 I/O接口P1、P3口实验 一,实验题目 1,用P1口做输出,接八只发光二极管,编写程序,使发光二极管循环点亮。 2,用P3口做输入口,接八个扭子开关,通过P1口在实验箱上LED 灯上输出,编写程序读取开关状态,将此状态,在发光二极管上显示出来。 二,实验目的 1.熟悉使用CPLD实验箱进行单片机实验的方法。 2.设计出符合实验要求的CPLD硬件电路。 3.学习单片机仿真开发软件Keil 51的使用方法。 4.学习MCS-51汇编语言编程方法。 5.学习Pl口的使用方法。 6.学习延时子程序的编写和使用。 三,实验准备 P1和P3口为准双向口,Pl、P3的每一位都能独立地定义为输出线或输入线,作为输入时,必须向锁存器相应位写入“l”,该位才能作为输入。803l中所有口锁存器在复位时均置为“1”,如果后来在口锁存器写入过“0”,在需要时应写入一个“l”使它再成为一个输入。再来看一下延时程序的实现。现常用的有两种方法:一是用定时器中断来实现,一是用指令循环来实现。在系统时间允许的情况下可以采用后一种方法。根据实验系统的工作主频,计算出延时0.1s的

时间常量,编制延时程序: MOV R7, #200 (1) DEl:MOy R6,#X (2) DE2:DJNZ R6,DE2 (3) DJNZ R7,DEl (4) 上面MOV、DJNZ指令均需两个机器周期,所以每执行一条指令需1÷0.256us现求出X值: (X*1/0.256+1/0.256+l/0.256)*200+l/0.256=0.1*10^6。解出X=l26。代入上式可知实际延时约0.100O04s,近似符合要求。 四,实验步骤 (1)打开MAX+PLUSⅡ CPLD实验开发系统。 (2)点击File菜单Project子菜单之Name项,出现Project Name 对话框。为当前的实验选择恰当的路径并创建项目名称”E:\AT8031”。(3)点击File菜单之New项,出现对话框,为选择输入方式,选择Graphic Editor File。出现图形编辑窗口。 (4)双击空白编辑区,出现Enter Symbol 对话框。 (5)从Symbol Libraries项中选择mf子目录(双击),在prim子目录中选择输入脚input 和输出引脚output。 (6)在图形编辑窗口中的左侧点击连线按钮,并完成对电路的连线。(7)在引脚的PIN_NAME处左键双击使之变黑,键入引脚名称。

单片机实验报告

院系:计算机科学学院专业:智能科学与技术年级: 2012 学号:2012213865 姓名:冉靖 指导教师:王文涛 2014年 6月1日

一. 以下是端口的各个寄存器的使用方式: 1.方向寄存器:PxDIR:Bit=1,输出模式;Bit=0,输入模式。 2.输入寄存器:PxIN,Bit=1,输入高电平;Bit=0,输入低电平。 3.输出寄存器:PxOUT,Bit=1,输出高电平;Bit=0,输出低电平。 4.上下拉电阻使能寄存器:PxREN,Bit=1,使能;Bit=0,禁用。 5.功能选择寄存器:PxSEL,Bit=0,选择为I/O端口;Bit=1,选择为外设功能。6.驱动强度寄存器:PxDS,Bit=0,低驱动强度;Bit=1,高驱动强度。 7.中断使能寄存器:PxIE,Bit=1,允许中断;Bit=0,禁止中断。 8.中断触发沿寄存器:PxIES,Bit=1,下降沿置位,Bit=0:上升沿置位。 9.中断标志寄存器:PxIFG,Bit=0:没有中断请求;Bit=1:有中断请求。 二.实验相关电路图: 1 MSP430F6638 P4 口功能框图: 主板上右下角S1~S5按键与MSP430F6638 P4.0~P4.4口连接: 2按键模块原理图: 我们需要设置两个相关的寄存器:P4OUT和P4DIR。其中P4DIR为方向寄存器,P4OUT 为数据输出寄存器。 主板上右下角LED1~LED5指示灯与MSP430F6638 P4.5~P4.7、P5.7、P8.0连接:

3 LED指示灯模块原理图: P4IN和P4OUT分别是输入数据和输出数据寄存器,PDIR为方向寄存器,P4REN 为使能寄存器: #define P4IN (PBIN_H) /* Port 4 Input */ #define P4OUT (PBOUT_H) /* Port 4 Output */ #define P4DIR(PBDIR_H) /* Port 4 Direction */ #define P4REN (PBREN_H) /* Port 4 Resistor Enable */ 三实验分析 1 编程思路: 关闭看门狗定时器后,对P4.0 的输出方式、输出模式和使能方式初始化,然后进行查询判断,最后对P4.0 的电平高低分别作处理来控制LED 灯。 程序流程图: 2 关键代码分析: #include void main(void) { WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗 P4DIR |= BIT5; // 设置4.5口为输出模式 P4OUT |= BIT0; // 选中P4.0为输出方式 P4REN |= BIT0; // P4.0使能 while (1) // Test P1.4 { if (P4IN & BIT0) //如果P4.0为1则执行,这是查询方式按下去后是低,否则为高

单片机实验8路抢答器C语言知识版

单片机综合实验报告 题目: 8路抢答器实验 班级: 姓名: 学号: 指导老师: 时间:

一、实验内容: 以单片机为核心,设计一个8位竞赛抢答器:同时供8名选手或8个代表队比赛,分别用8个按钮S0~S7表示。本实验有Protues软件仿真。 分别设置一个抢答控制开关S1和复位开关S2,由主持人控制。 抢答器具有锁存与显示功能。即选手按按钮抢答时,锁存相应的编号,并且优先抢答选手的编号一直保持显示在显示器上,直到主持人将系统复位为止。 抢答器具有定时抢答功能,且一次抢答的时间由主持人设定为30秒。 当主持人启动“开始”键后,定时器进行减计时,同时绿色LED灯亮。 二、实验电路及功能说明 分别设置一个抢答控制开关S1和复位开关S2,由主持人控制。 抢答器具有锁存与显示功能。即选手按按钮抢答时,锁存相应的编号,并且优先抢答选手的编号一直保持显示在显示器上,直到主持人将系统复位为止。参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统复位为止。复位后参赛队员可继续抢答。 如果定时时间已到,无人抢答,本次抢答无效,系统报警红色LED灯亮,并禁止抢答,定时显示器上显示00。

三、实验程序流程图: 主程序; 非法抢答序;抢答时间调整程序;回答时间调整程序;倒计时程序;正常抢答处理程序;犯规处理程序;显示及发声程序。主流程图如下图所示 子程序

四、实验结果分析 五、心得体会

六、程序清单 #include #define uchar unsigned char #define uint unsigned int sbit wela_a=P3^0; sbit wela1=P3^1; sbit wela2=P3^7; sbit rest=P3^5; sbit host=P3^6; sbit led1=P3^4;//绿灯 sbit led2=P3^3;//红灯 sbit led3=P3^2;//黄灯 sbit key1=P1^0; sbit key2=P1^1; sbit key3=P1^2; sbit key4=P1^3; sbit key5=P1^4; sbit key6=P1^5; sbit key7=P1^6; sbit key8=P1^7; uchar x,q,d,s,ge,t0,t1,start,flag; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void init();/*初始函数申明*/ void display(uchar s,uchar ge,uchar a); void delay(uint z); void keyscan(); void main() { init(); display(s,ge,a); while(1) { if(host==0) //主持人控制开关 { delay(5); if(host==0) { flag=1; start=1; delay(5); 延时 while(!host); 检测开关 } } if(rest==0) //复位 { delay(5); if(rest==0) { q=30; led2=1; led3=1; x=0; delay(5);

杭电自动化单片机实验报告

单片机原理与应用及 C51程序设计 实验报告 实验名称:单片机技术实验 实验一继电器控制输出实验 一、实验目的 1.掌握STC12C5A16S2单片机的最基本电路的设计; 2.了解单片机I/O端口的使用方法; 3.了解继电器和蜂鸣器控制电路以及小电压控制大电压的方法。

二、实验要求 1.利用STC12C5A16S2单片机的P1.2、P1.3口作按钮S9和S10输入,P1.0 和P1.1口作开关量输出,并分别控制一个5V的继电器和蜂鸣器。 2.当S9闭合时,P1.0控制继电器闭合并控制灯泡闪亮;当S9断开时,继 电器触电断开,灯泡不亮; 3.当S10闭合时,P1.1控制蜂鸣器闭合并发出声音;当S10断开时,蜂鸣 器不响。 三、电路 四、原理说明 Q1、Q2为9012三极管即PNP型,低电平导通,当S9或S10按下时,相应的IO口拉低,当P1.0或P1.1赋0时即可控制继电器的吸合活着蜂鸣器的发声。 五、程序代码 #include sbit L1=P1^1; sbit L2=P1^2; sbit L3=P1^3; sbit L0=P1^0;//定义位变量 void delay() { int i,j; for(i=0;i<250;i++) for(j=0;j<250;j++);//利用系统时钟,定义延时函数 }

void main () { int n=20; while(1) //不断循环检测 { if(L2==0) //判断S9输入 { while(n--) { L0=0; delay(); L0=1; delay(); //灯泡以2*delay为周期闪亮 } n=20; } if(L3==0) //判断S10闭合 { while(n--) { L1=0; delay(); L1=1; delay(); //蜂鸣器以2*delay为周期发声 } n=20; } } } 实验二 LED轮换点亮实验 一、实验目的 1.掌握STC12C5A16S2单片机的I/O电路设计; 2.学习SN74HC573数据锁存输出方法。 二、实验要求 1.利用SN74HC573对STC12C5A16S2单片机的P0进行扩展,驱动LED 控制输出; 2.编写程序,使P0.0~P0.7上的发光二极管循环点亮;P2.7控制 SN74HC573芯片的使能; 三、电路

单片机实验报告

南京晓庄学院电子工程学院 实验报告 课程名称:单片机系统设计与应用 姓名:森 专业:电子信息科学与技术 年级:14级 学号:05 2016年12 月1 日

实验项目列表 序号实验项目名称成绩指导教师 1 单片机仿真软件的使用 2 单片机I/O接口应用实验——流水灯 3 外部中断实验——工业顺序控制模拟 4 定时/计数器实验——矩形波 5 定时/计数器实验——计数器 6 综合实验 7 8 9 10 注: 1、实验箱端口为com6。 2、芯片选择切换到51 3、停止运行使用实验箱上的复位按钮

实验室号:___ 实验时间:成绩: 实验一仿真软件的使用 1.实验目的和要求 1)熟悉Keil C51软件界面,以及编辑、编译、运行程序的步骤; 2)掌握单片机仿真软件使用和调试的方法。 2.实验原理 Keil C51软件使用 在Keil C51集成开发环境下,建立一个工程并编辑源程序,熟悉Keil C51集成开发环境下各种菜单、命令的使用。 3.主要仪器设备(实验用的软硬件环境) 安装有Keil C51软件的PC机1台 4.操作方法与实验步骤 Keil C51软件使用 (1)建立用户文件夹 (2)建立工程 (3)建立文件并编码。输入以下源程序,并保存在项目所在的目录中 (4)把文件加入工程中 (5)编译工程。编译时观察在界面下方的“Build”页中的到编译错误信息和使用的系统资源情况等。 (6)调试。利用常用调试命令,如复位、运行、暂停、单步、单步跳过、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1#串行窗口、内存窗口、性能分析、工具按钮等命令进行调试,观察并分析调试结果。 (7)目标代码文件的生成。运行生成相应的.HEX文件。 5.实验内容及程序 1)从DATA区地址起始地址为40H的连续10个内存单元的内容传送到XDATA区起始地址为2000H的10个内存单元中。 注意:DATA区地址起始地址为40H的连续10个内存单元必须先赋初值。 P83-5源程序 #include #define uchar unsigned char xdata unsigned char buffer1[10]_at_ 0x2000; //在xdata区定义数组变量BUF1,首地址为2000H data unsigned char buffer2[10]_at_ 0x40; //在data区定义数组变量BUF2,首地址为40H void main(void)

Quartus六路抢答器实验报告

抢答器实验报告 一、 抢答器的功能介绍: 1、 基本功能: (1) 抢答器同时供6名选手比赛,分别用6个按钮S0 ~ S5表示。 (2) 设置一个系统清除和抢答控制开关S ,该开关由主持人控制。 (3) 抢答器具有锁存与显示功能。即优先锁存抢答选手的编号,并显示在数码管上,扬声器发出音响提示。此时其它选手再按键无效。优先抢答选手的编号一直保持到主持人将系统清除为止。 → →→ 2、 扩展功能: (1) 抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。当主持人启动“开始”键后,定时器进行减计时显示。主持人按“开始” 键前抢答给以警告,抢答选手的LED 闪烁 (2) 参赛选手在设定的时间内抢答后,定时器停止减计时。 (3) 如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。 二、抢答器总体方案设计及原理图; 1、总体方案图 (1)主持人有开始键和复位键,按下开始键后才能开始抢答,否则犯规。其他六个人设有六个按键。按键中加有除颤装置。

(2)抢答后选手的号码用数码管显示,正常抢答后显示抢到的选手号码,并有铃声响起,如果在主持人按开始键前有人抢答,则选手的指示灯会闪烁,并有报警音响起。 (3)如果10秒内没有抢答,则说明该题超时作废。 三、 1、键入模块 选 手 、 主持人未开始, 选手抢答,指示

(1)、除颤装置 除颤装置的原理是:在按键操作时,机械触点的弹性及电压跳动等原因。在触点闭合或开启的瞬间会出现电压的抖动,如果不进行处理就会造成误操作。按键去抖动的关键在于提取稳定的低电平状态。如果连续几次为低电平,可以认为信号已经处于稳定状态,此时输出一个低电平按键信号。即:当给与D触发器一个100hz的脉冲信号,选手按键后(为低电平)经过多个D触发器触发,最后输出稳定的低电平。(2)、总的键入装置

单片机实验报告

汇编语言程序设计 1)编译后,系统提示:目标越界,改为AJMP后编译通过,将ORG 07FFH 改为0800H, 系统提示:目标越界,这说明AJMP可以在2KB 范围内无条件转移。 2.改为LJMP编译通过,这说明LJMP可以在64KB 范围内无条件转移。 3.将LJMP LP1改为SJMP LP0,机器码为80FC,其中FC为偏移量,它是一个补码,01H~7FH说明向PC(增大√、减小)方向跳,80H~FFH说明向PC(增大、减小√)方向跳,这说明SJMP可以在当前PC值-128B~+127B 范围内无条件转移。 1、X、Y以补码的形式存放在20H、21H中,编写程序实现如下函数: 实验程序: MOV A,20H JZ ZREO JB ACC.7,NEG MOV 21H,#01H SJMP PEND ZREO:MOV 21H,A SJMP PEND NEG:MOV 21H,#0FFH PEND:SJMP$ END 结果记录: 1.将数89H存放于20H中,运行程序,观察到21H单元中的内容为FF; 2.将数05H存放于20H中,运行程序,观察到21H单元中的内容为01; 3.将数00H存放于20H中,运行程序,观察到21H单元中的内容为00; 2、将20H~27H中的压缩BCD码拆为两个单字节BCD码,存放在以2000H为首地址的外部RAM 中。 实验程序: MOV R0,#20H MOV R7,#08H MOV DPTR,#2000H LOOP:ACALL CZ INC R0

INC DPTR DJNZ R7,LOOP SJMP $ CZ:MOV A,@R0 SWAP A ANL A,#0FH MOVX @DPTR,A INC DPTR MOV A,@R0 ANL A,#0FH MOVX @DPTR,A RET END 结果记录: 20H 21H 22H 23H 24H 25H 26H 27H 87H 54H 36H 23 19H 43H 77H 69H 2000H 2002H2004H2006H2008H200AH200CH200EH 07H 04H 06H 03H 09H 03H 07H 09H 2001H 2003H2005H2007H2009H200BH200DH200FH 08H 05H 03H 02H 01H 04H 07H 06H 1、数在计算机中是以补码形式存放的,因此,判断数据的正负,往往采用判断第7 位,是0 则为正数,是1 则为正数 2、实验内容2中JZ ZREO 的机器码为600DH ,其中0DH 为偏移量,当前PC值0004 加上这个偏移量等于0011H ,这正是即将执行的程序的首地址,即标号为ZREO 语句。程序计算器PC的功能是指向下一条指令,因此,跳转语句是依靠偏移量来改变程序计数器PC的值,从而改变程序的流向。 3、分支程序一定要注意分支的语句标号的正确性,每一分支之间必须用跳转(如SJMP)指令分隔,并跳转到相应标号。 4、子程序往往用间址寄存器传递数据,内部RAM用@Ri ,外部RAM用@DPTR ,绝对不能用直接地址。最后以RET 结尾。 5、循环程序往往用寄存器传递数据,用R7控制循环次数,用调用作为循环体,用指令INC 修改地址指针,用指令DJNZ 判断循环结束。 6、执行ACALL前(SP)= 07H ,执行ACALL时,(SP)= 09H ,(08H)= 09H ,(09H)= 00H ,(PC)= 000FH ,PC的值正是子程序的入口地址,而堆栈中这两个单元存放的是断点处PC的值;执行到RET后,(SP)= 07H , 原08H的值弹给(PC)7~0 ,原09H的值弹给(PC)15~8 ,因此,返回断点继续执行主程序。

单片机实验报告

单片机实验报告 实验一:存储器块清零或赋值 一、实验目的 1 熟悉存储器的读写方法,熟悉51汇编语言结构。 2 熟悉循环结构程序的编写。 3 熟悉编程环境和程序的调试。 二、实验内容 指定存储器中某块的起始地址和长度,要求将其内容清零或赋值。例如将4000H开始的10个字节内容清零或全部赋值为33H。 注意: 1 文件不要用中文名称保存时不要用中文路径(目录),不要放在“桌面”上,源文件和工程要放在同一个文件夹下,文件名称和路径名称不要太长。 2 查看存储器菜单使用:窗口---数据窗口---XDATA 观察存储器内容 3 查看SFR:窗口---CPU窗口查看CPU寄存器SFR 4 单步执行:执行---单步执行(F8),每执行一步,查看每条语句涉及到的寄存器和存储器内容的变化结果,是否是指令所要得到的结果,如不是,检查错误原因,修改。 5利用多种执行方法和观察各种窗口调试程序,直至程序满意为止。 三、实验仪器 微机、VW,WA VE6000编程环境软件,(单片机实验箱) Lab6000/Lab6000通用微控制器MCS51实验 四、实验步骤 1、新建工程文件。(注意:文件不要用中文名称保存时不要用中文路径)

2、编写程序。 3、运行和调试过程。 外部数据存储器(4000H为首地址的10个字节)中初始状态(随便赋值FFH): 单步执行程序,观察SFR中外部地址指针的变化; 全速执行程序,可以看到外部数据存储器已赋值33H:

五、实验结果 可以看到外部数据存储器已赋值33H: 六、问题讨论 本次实验能够清楚地了解存储器中数据的移动和赋值过程,通过单步执行,对于每一步的指令操作过程能够了解如何执行,查看每条语句涉及到的寄存器和存储器内容的变化结果。同时,学习掌握汇编程序的编写和调试过程。 实验二:存储块移动 一、实验目的 1 熟悉51汇编语言程序结构。 2 熟悉循环结构程序的编写,进一步熟悉指令系统。 3 熟悉编程环境和程序的调试。 二、实验内容 将指定源地址(3000H)和长度(10字节)的存储块移动到目的地址(3050H)。 注意:在编程环境中,可以通过软件仿真,观察程单片机运行情况。 由于源地址和目的地址的内容都一样(FF),调试时看不到内容的变化,所以需要给源地址内容赋值。有多种赋值方式(比如在搬移循环体内,赋值一个搬移一个,请在空白处添

单片机实验报告书

并行I/O接口实验 一、实验目的 熟悉掌握单片机并行I/O接口输入和输出的应用方法。 二、实验设备及器件 个人计算机1台,装载了Keil C51集成开发环境软件。https://www.360docs.net/doc/923395775.html,单片机仿真器、编程器、实验仪三合一综合开发平台1台。 三、实验内容 (1)P1口做输出口,接八只发光二极管,编写程序,使发光二极管延时(0.5-1秒)循环点亮。实验原理图如图3.2-1所示。 图3.2-1单片机并行输出原理图 实验程序及仿真 ORG 0000H LJMP START ORG 0100H START:MOV R2,#8 MOV A,#0FEH LOOP:MOV P1,A LCALL DELAY RL A

DJNZ R2,LOOP LJMP START DELAY:MOV R5,#20 D1:MOV R6,#20 D2:MOV R7,#248 D3:DJNZ R7,D3 DJNZ R6,D2 DJNZ R5,D1 RET END 中断实验 一、实验目的 熟悉并掌握单片机中断系统的使用方法,包括初始化方法和中断服务程序的编写方法。 二、实验设备及器件

个人计算机1台,装载了Keil C51集成开发环境软件。 https://www.360docs.net/doc/923395775.html,单片机仿真器、编程器、实验仪三合一综合开发平台1台。 三、实验内容 (2)用P1口输出控制8个发光二极管LED1~LED8,实现未中断前8个LED闪烁,响应中断时循环点亮。 实验程序及仿真 ORG 0000H LJMP MAIN ORG 0003H LJMP INT00 ORG 0010H MAIN: A1:MOV A,#00H MOV P1,A MOV A,#0FFH MOV P1,A SETB EX0 JB P3.2,B1 SETB IT0 SJMP C1 B1:CLR IT0 C1:SETB EA NOP SJMP A1 INT00:PUSH Acc PUSH PSW MOV R2,#8 MOV A,#0FEH LOOP: MOV P1,A LCALL DELAY RL A DJNZ R2,LOOP

四人竞赛抢答器实验报告

数电实验报告 姓名:侯婉思 专业:通信工程 班级:1111 学号:11387121 指导老师:田丽娜 四人竞赛抢答器实验报告 、、- 一?刖言 现今,形式多样、功能完备的抢答器已广泛应用于电视台、商业机构、学校、企事业单位及社会团体组织中,它为各种知识竞赛增添了刺激性、娱乐性,在一定程度上丰富了人们的业余生活。 对于抢答器我们大家都知道那是用于选手做抢答题时用的,选手进行抢答,抢到题的选手来回答问题。抢答器不仅考验选手的反应速度同时也要求选手具备足够的知识面和一定的勇气。选手们都站在同一个起跑线上,体现了公平公正的原则。 本文介绍了一种用74系列常用集成电路设计的高分辨率的4路抢答器。该抢答器为全数字集成电路设计,具有分组数多、分辨率高等优点。该抢答器除具有基本的抢答功能外,还具有优先能力,定时及复位功能。主持人通过控制开关使抢答器达到复位的功能。 二.实验目的 1. 学习并掌握抢答器的工作原理及其设计方法 2. 熟悉各个芯片的功能及其各个管脚的接法。 3. 灵活运用学过的知识并将其加以巩固,发散思维,提高学生的动手能力和思维的缜密。 三.设计任务与要求 1、设计任务 设计一台可供4名选手参加比赛的竞赛抢答器。选手抢答时,数码显示选手组号。 2. 设计要求: 抢答器的基本功能: 1. 设计一个智力抢答器,可同时供四名选手或四个代表队参加比赛,编号为

一,二,三,四,各用一个抢答按钮,分别用四个按钮S0S3表示。 2. 给节目主持人设置一个控制开关,用来控制系统的清零(编号显示数码管清零)。 3. 抢答器具有数据锁存和显示的功能,抢答开始后,若有选手按动抢答按钮,编号立即锁存,并在LED数码管上显示出选手的编号,此外,要封锁输入电路,实现优先锁存,禁止其他选手抢答,优先抢答选手的编号一直保持到主持人将系统清零为止。 简言之,有选手按下时,显示选手的编号。同时,其他人再按下时电路不做任何处理。也就是说,如果有选手按下以后,别的选手再按的话电路不会显示是他的编号。 4. 可用555定时器产生频率为1H z的脉冲信号,作为触发器的 CP信号。四?四人竞赛抢答器电路原理及设计 1、设计方案 抢答器具有锁存、定时、显示。即当抢答开始后,选手抢答按动按钮,锁存器锁存相应的选手编码,同时用LED数码管把选手的编码显示出来。接通电源后,主持人将开关拨到“清除”状态,,编号显示器为0,此时才可以再次抢答。选 手在抢答时,抢答器完成:编号锁存、编号显示。 2. 单元电路设计及元器件选择 (1)抢答电路 电路如图2所示。该电路完成两个功能:一是分辨出选手按键的先后,并锁定74LS175的功能真值表即优先抢答者的编号,同时译码显示电路显示选手编号;二是要使其他选手随后的按键操作无效。实现该电路的功能的主要芯片是 74IS175 (图1为功能表,图2为逻辑功能图,图3为锁存器电路) ^4LS17o的功能表 图一

实验报告(单片机实验报告)

1 双字节无符号数加法 例1: 双字节无符号数加法(R0 R1)+(R2 R3) → (R4 R5), R0、 R2、 R4存放16位数的高字节, R1、 R3、 R5存放低字节。已知(R0 R1)=(93h,79h);(R2 R3)=(25h,a4h) 假设其和不超过16位。请编程。 org 0000h Ljmp start org 0050h start: mov R0,#93h mov R1, #79h mov R2,#25h mov R3, #0a4h mov A,R1 ADD A,R3 mov R5,A mov A,R0 ADDC A,R2 mov R4,A ss: jmp ss end 2双字节无符号数减法

例2: 双字节无符号数相减(R0 R1)-(R2 R3) → (R4 R5)。R0、 R2、R4存放16位数的高字节, R1、 R3、 R5存放低字节,已知(R0 R1)=(93h,79h);(R2 R3)=(25h,a4h);请编程。同学自己可以设置被减数与减数数值 org 0000h Ljmp start org 0050h start: mov R0,#93h mov R1,#79h mov R2,#25h mov R3,#0a4h mov A,R1 CLR C SUBB A,R3 mov R5,A mov A,R0 SUBB A,R2 mov R4,A ss: jmp ss end 3双字节数乘以单字节数

例3: 利用单字节乘法指令,进行双字节数乘以单字节数运算。若被乘数为16位无符号数, 地址为M1(30H) 和M1+1(31H)(低位先、高位后), 乘数为8位无符号数, 地址为M2(32H), 积由高位到低位存入R2、 R3和R4三个寄存器中。 30H,31H,32H内容 12H,34H,56H ; org 0000h Ljmp start org 0050h start: mov 30h,#12h mov 31h,#34h mov 32h,#56h mov a,(30h) mov b,(32h) mul ab mov R3,b mov R4,a mov a,(31h) mov b,(32h) mul ab add A,R3 mov R3,A

单片机实验报告

单片机实验报告 学院:姓名:学号:指导老师:

目录 第一章实验内容、目的及要求 (2) 一、内容 (2) 二、目的及要求 (3) 第二章实验 (3) 实验一数字量输入输出实验 (3) 实验二定时器/计数器实验 (4) 实验三A/D、D/A转换实验 (11) 实验四串行通信设计 (20) 第三章实验体会 (28)

第一章实验内容、目的及要求 一、内容 实验一数字量输入输出实验 阅读、验证C语言程序功能。使用汇编语言编程,完成实验指导书之“3.1 数字量输入输出实验”基本实验项目。 实验二定时器/计数器实验 阅读、验证C语言程序功能。使用汇编语言编程,完成实验指导书之“3.3 定时/计数器实验”基本实验项目。 提高部分:定时器控制LED灯 由单片机内部定时器1,按方式1工作,即作为16位定时器使用每0.05秒钟T1溢出中断一次。P1口的P1.0-P1.7分别接八个发光二极管。编写程序模拟时序控制装置。开机后第一秒钟L1,L3亮,第二秒钟L2,L4亮,第三秒钟L5,L7亮,第四秒钟L6,L8亮,第五秒钟L1,L3,L5,L7亮,第六秒钟L2,L4,L6,L8亮,第七秒钟八个LED灯全亮,第八秒钟全灭,以后又从头开始,L1,L3亮,然后L2,L4亮……一直循环下去。 实验三A/D、D/A转换实验 阅读、验证C语言程序功能。使用汇编语言编程,完成实验指导书之“4.3 A/D转换实验”项目(P64)和“4.4 D/A转换实验”项目。 提高部分:(要求:Proteus环境下完成) 小键盘给定(并显示工作状态),选择信号源输出波形类型(D/A 转换方式),经过A/D采样后,将采样数据用LED灯,显示当前模拟信号值大小及变化状态。 实验四串行通讯实验 阅读、调试C语言程序功能。使用汇编语言编程,完成实验指导书之“3.7 串口通讯实验”项目。(要求:实验仪器上完成)提高部分:(要求:Proteus环境下完成) 利用单片机实验系统,实现与PC机通讯。功能要求:将从实验系统键盘上键入的数字,字母显示到PC机显示器上,将PC机键盘输入的字符(0-F)显示到单片机实验系统的数码管上。

单片机中断实验报告

人的一生要疯狂一次,无论是为一个人,一段情,一段旅途,或一个梦想 ------- 屠呦呦 实验三定时器中断实验 一、实验目的 1、掌握51单片机定时器基本知识; 2、掌握定时器的基本编程方法; 3、学会使用定时器中断。 二、实验内容 1、利用定时器设计一个秒表,计数范围为0—59,并在数码管实时显示。 三、实验设备 PC 机一台、单片机实验箱 主要器件:AT89C52、7SEG-BCD、 四、实验步骤 1、使用Proteus设计仿真原理图; 2、使用Keil设计程序; 3、联合调试仿真。 五、实验流程图 六、实验程序与结果 #include #define uint unsigned int #define uchar unsigned char sbit F=P2^1;

void timer1_init() { TMOD=0x10;//将定时器1设置为工作方式1 TH1=(65536-6000)/256;//定时器每加一时间为1/fsoc,定时时间为1/500 //(1/500)s/(1/3000000)s=6000 TL1=(65536-6000)%256;//fsoc=3000000,所以装入16位定时器中值为65536-6000 EA=1; ET1=1; TR1=1; } void main() { timer1_init(); while(1); } void timer1() interrupt 3 { TH1=(65536-6000)/256;//每次进入中断,重装初值TL1=(65536-6000)%256; F=~F;//每次进入中断P1.1口取反 } #include #define uint unsigned int #define uchar unsigned char sbit F=P2^1; void timer0_init() {TMOD=0x01;//将定时器0设置为工作方式1 TH0=(65536-83)/256;//定时器每加一时间为1/fsoc,定时时间为2Khz,既500us //500us/6us=83.3333 TL0=(65536-83)%256;//fsoc=6000000,所以装入16位定时器中值为65536-83 EA=1; ET0=1; TR0=1; }void main() { timer0_init(); while(1); } void timer0() interrupt 1 { TH0=(65536-83)/256;//每次进入中断,重装初值 TL0=(65536-83)%256; F=~F;//每次进入中断P1.1口取反,表示定时时间到 } #include // 包含51单片机寄存器定义的头文件 #define seg_data P1 #define seg_data2 P3 #define uint unsigned int sbit D1=P2^0; //将D1位定义为P2.0引脚 uint counter=0; unsigned int unit=0,decade=0,avs=0;//time=0;

电子信息工程路抢答器实验报告

《课程设计报告》 8路抢答器 班级: 姓名: 学号: 指导教师:

目录 一、任务与要求 (2) 1、基本功能 (3) 2、扩展功能 (3) 二、8路抢答器工作原理 (4) 1、电源部分 (4) 2、抢答器部分 (4) 3、定时部分 (6) 4、时序控制报警部分 (7) 5、计分部分 (9) 三、系统总原理图 (11) 四、收获体会 (11) 一、任务与要求

1、基本功能 ●抢答器同时供8名选手,分别用8个按钮S0 ~ S7表示。 ●设置一个系统清除和抢答控制开关S,该开关由主持人控制。 ●抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的 编号,扬声器发出声响提示,并在七段数码管上显示选手号码。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。 2、扩展功能 ●抢答器具有定时抢答功能,且一次抢答的时间由主持人设 定(如20秒)。当主持人启动"开始"键后,定时器进行减 计时。如果定时时间已到,无人抢答,本次抢答无效,系 统报警并禁止抢答,定时显示器上显示00。 ●设置一个计分电路,具有加减分功能,加减分以10分为 基准,并在数码管上显示得分情况。

二、8路抢答器工作原理 1、电源部分 (1)、原理 输入交流220V通过电压变压器,再通过桥式整流电路和极性电容滤波,在固定式三端稳压器的Vin和GND两端形成一个并不十分稳定的直流电压(该电压常常会因为市电电压的波动或负载的变化等原因而发生变化)。此直流电压经过三端稳压器的稳压和其后的极性电容滤波便在稳压电源的输出端产生了精度高、稳定度好的直流输出电压。 (2)、原理图 2、抢答器部分 (1)、原理

相关文档
最新文档