单片机硬件设计报告.docx

上传人:b****0 文档编号:18089393 上传时间:2023-08-13 格式:DOCX 页数:25 大小:177.91KB
下载 相关 举报
单片机硬件设计报告.docx_第1页
第1页 / 共25页
单片机硬件设计报告.docx_第2页
第2页 / 共25页
单片机硬件设计报告.docx_第3页
第3页 / 共25页
单片机硬件设计报告.docx_第4页
第4页 / 共25页
单片机硬件设计报告.docx_第5页
第5页 / 共25页
单片机硬件设计报告.docx_第6页
第6页 / 共25页
单片机硬件设计报告.docx_第7页
第7页 / 共25页
单片机硬件设计报告.docx_第8页
第8页 / 共25页
单片机硬件设计报告.docx_第9页
第9页 / 共25页
单片机硬件设计报告.docx_第10页
第10页 / 共25页
单片机硬件设计报告.docx_第11页
第11页 / 共25页
单片机硬件设计报告.docx_第12页
第12页 / 共25页
单片机硬件设计报告.docx_第13页
第13页 / 共25页
单片机硬件设计报告.docx_第14页
第14页 / 共25页
单片机硬件设计报告.docx_第15页
第15页 / 共25页
单片机硬件设计报告.docx_第16页
第16页 / 共25页
单片机硬件设计报告.docx_第17页
第17页 / 共25页
单片机硬件设计报告.docx_第18页
第18页 / 共25页
单片机硬件设计报告.docx_第19页
第19页 / 共25页
单片机硬件设计报告.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单片机硬件设计报告.docx

《单片机硬件设计报告.docx》由会员分享,可在线阅读,更多相关《单片机硬件设计报告.docx(25页珍藏版)》请在冰点文库上搜索。

单片机硬件设计报告.docx

单片机硬件设计报告

单片机硬件实验

实验2P1口实验2

思考题:

2

实验3简单I/O口扩展实验一——交通灯控制实验5

思考题:

5

实验5中断实验———有急救车的交通灯控制实验9

思考题:

9

实验6定时器实验———循环彩灯实验14

思考题:

14

实验118279键盘显示接口实验17

思考题:

17

实验15A/D转换实验20

思考题:

20

实验2P1口实验

一、实验目的:

1.学习P1口既做输入又做为输出的使用方法。

2.学习数据输入、输出程序的设计方法。

二、实验原理图:

三、实验步骤:

平推开关的输出K1接P1.0;K2接P1.1;

发光二极管的输入L1接P1.2;L2接P1.3;L5接P1.4;L6接P1.5。

运行实验程序,K1做为左转弯开关,K2做为右转弯开关。

L5、L6做为左转弯灯,L7、L8做为右转弯灯。

结果显示:

1:

K1接高电平K2接低电平时,左转弯灯(L1、L2)以一定频率闪烁,右转弯灯(L5、L6)灭;

2:

K2接高电平K1接低电平时,左转弯灯(L1、L2)灭,右转弯灯(L5、L6)以一定频率闪烁;

3:

K1、K2同时接低电平时,发光二极管全灭;

4:

K1、K2同时接高电平时,发光二极管全亮。

思考题:

修改程序,使K1,K2接高电平时,所有发光二极管闪烁。

四、参考程序:

T2.ASM

NAMET2

CSEGAT0000H

LJMPSTART

CSEGAT4100H

START:

SETBP1.0

SETBP1.1;用于输入时先置位口内锁存器

MOVA,P1

ANLA,#03H;从P1口读入开关状态,取低两位

MOVDPTR,#TAB;转移表首地址送DPTR

MOVCA,@A+DPTR

JMP@A+DPTR

TAB:

DBPRG0-TAB

DBPRG1-TAB

DBPRG2-TAB

DBPRG3-TAB

PRG0:

MOVP1,#0FFH;向P1口输出#0FFH,发光二极管全灭

;此时K1=0,K2=0

JMPSTART

PRG1:

MOVP1,#0F3H;只点亮L5、L6,表示左转弯

ACALLDELAY;此时K1=1,K2=0

MOVP1,#0FFH;再熄灭0.5秒

ACALLDELAY;延时0.5秒

JMPSTART

PRG2:

MOVP1,#0CFH;只点亮L7、L8,表示右转弯

ACALLDELAY;此时K1=0,K2=1

MOVP1,#0FFH;再熄灭0.5秒

ACALLDELAY

JMPSTART

PRG3:

MOVP1,#00H;发光二极管全亮,此时K1=1,K2=1

ACALLDELAY;延时0.5秒

MOVP1,#0FFH;再熄灭0.5秒

ACALLDELAY

JMPSTART

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

DELAY:

MOVR1,#5;延时0.5秒

DEL1:

MOVR2,#200

DEL2:

MOVR3,#126

DEL3:

DJNZR3,DEL3

DJNZR2,DEL2

DJNZR1,DEL1

RET

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

END

实验3简单I/O口扩展实验一——交通灯控制实验

一、实验目的:

1.学习在单片机系统中扩展简单I/O接口的方法。

2.学习数据输出程序的设计方法。

3.学习模拟交通灯控制的实现方法。

二、实验内容:

扩展实验箱上的74LS273做为输出口,控制八个发光二极管亮灭,模拟交通灯管理。

三、实验原理:

本实验需要用到实验箱上八个发光二极管中的六个。

不妨将L1(红)、L2(绿)、L3(黄)做为东西方向的指示灯,将L5(红)、L6(绿)、L7(黄)做为南北方向的指示灯。

四、实验原理图

五、实验步骤:

74LS273的输出O0~O7接发光二极管L1~L8,74LS273的片选CS273接片选信号CSO.

运行实验程序,观察LED显示情况是否与实验内容相符。

思考题:

修改程序,要求将红绿灯控制循环中,红绿灯转换时,黄灯闪烁5次后的“红灯亮,

黄、绿灯全灭”状态,改为“红绿灯全灭,东西、南北方向黄灯闪烁10次”。

程序:

T3.ASM

;74LS273的输出O0~O7接发光二极管L1~L8

;?

4LS273的片选CS273接片选信号CSO

NAMET3;I/O口扩展实验一

PORTEQU0CFA0H;片选地址CS0

CSEGAT0000H

LJMPSTART

CSEGAT4100H

START:

MOVA,#11H;两个红灯亮,黄灯、绿灯灭

ACALLDISP;调用273显示单元(以下雷同)

ACALLDE3S;延时3秒

LLL:

MOVA,#12H;东西路口绿灯亮;南北路口红灯亮

ACALLDISP

ACALLDE10S;延时10秒

MOVA,#10H;东西路口绿灯灭;南北路口红灯亮

ACALLDISP

MOVR2,#05H;R2中的值为黄灯闪烁次数

TTT:

MOVA,#14H;东西路口黄灯亮;南北路口红灯亮

ACALLDISP

ACALLDE02S;延时0.2秒

MOVA,#10H;东西路口黄灯灭;南北路口红灯亮

ACALLDISP

ACALLDE02S;延时0.2秒

DJNZR2,TTT;返回TTT,使东西路口;黄灯闪烁五次

MOVR2,#0AH;黄灯闪烁10次

ACALLGGG1

 

MOVA,#21H;东西路口红灯亮;南北路口绿灯亮

ACALLDISP

ACALLDE10S;延时10秒

MOVA,#01H;东西路口红灯亮;南北路口绿灯灭

ACALLDISP

MOVR2,#05H;黄灯闪烁五次

GGG:

MOVA,#41H;东西路口红灯亮;南北路口黄灯亮

ACALLDISP

ACALLDE02S;延时0.2秒

MOVA,#01H;东西路口红灯亮;南北路口黄灯灭

ACALLDISP

ACALLDE02S;延时0.2秒

DJNZR2,GGG;返回GGG,使南北路口;黄灯闪烁五次

MOVR2,#0AH;黄灯闪烁10次

ACALLGGG1

JMPLLL;转LLL循环

GGG1:

MOVA,#44H;黄灯亮

ACALLDISP

ACALLDE02S;延时0.2秒

MOVA,#00H;黄灯灭

ACALLDISP

ACALLDE02S;延时0.2秒

DJNZR2,GGG1

RET

DE10S:

MOVR5,#100;延时10秒

JMPDE1

DE3S:

MOVR5,#30;延时3秒

JMPDE1

DE02S:

MOVR5,#02;延时0.2秒

DE1:

MOVR6,#200

DE2:

MOVR7,#126

DE3:

DJNZR7,DE3

DJNZR6,DE2

DJNZR5,DE1

RET

DISP:

MOVDPTR,#PORT;273显示单元

CPLA

MOVX@DPTR,A

RET

END

 

实验5中断实验———有急救车的交通灯控制实验

一、实验目的:

1.学习外部中断技术的基本使用方法。

2.学习中断处理程序的编程方法。

二、实验内容:

在实验三的内容的基础上增加允许急救车优先通过的要求。

当有急救车到达时,两个方向上的红灯亮,以便让急救车通过,假定急救车通过路口的时间为10秒,急救车通过后,交通灯恢复中断前的状态。

本实验以单脉冲为中断申请,表示有急救车通过。

3、

实验原理图:

四、实验步骤:

74LS273的输出O0~O7接发光二极管L1~L8,74LS273的片选CS273\接片选信号CS2,此时74LS273的片选地址为CFB0H~CFB7H之间任选。

单脉冲输出端P-接CPU板上的INT0。

思考题:

修改程序,要求按下单脉冲按钮Pulse后,红灯状态由常亮方式改为闪烁方式,时间10秒,然后恢复原状态。

五、程序:

T5.ASM

;74LS273的输出O0~O7接发光二极管L1~L8

;74LS273的片选CS273\接片选信号CS2,

;单脉冲输出端P-接CPU板上的INT0。

NAMET5;中断控制实验

OUTPORTEQU0CFB0H;端口地址

SAVEEQU55H;保存从端口CFB0输出的数据

CSEGAT0000H

LJMPSTART

CSEGAT0003H;中断向量为0003H

LJMPINT

CSEGAT4100H

START:

SETBIT0

SETBEX0

SETBEA

MOVA,#11H;置首显示码

MOVSAVE,A;保存

ACALLDISP;显示输出

ACALLDE3S;延时3秒

LLL:

MOVA,#12H;东西路口绿灯亮,南北路口红灯亮

MOVSAVE,A

ACALLDISP

ACALLDE10S;延时10秒

MOVA,#10H;东西路口绿灯灭

MOVSAVE,A

ACALLDISP

MOVR2,#05H;东西路口黄灯闪烁5次

TTT:

MOVA,#14H

MOVSAVE,A

ACALLDISP

ACALLDE02S;延时0.2秒

MOVA,#10H

MOVSAVE,A

ACALLDISP

ACALLDE02S;延时0.2秒

DJNZR2,TTT

MOVA,#11H;红灯全亮

MOVSAVE,A

ACALLDISP

ACALLDE02S;延时0.2秒

MOVA,#21H;东西路口红灯亮,南北路口绿灯亮

MOVSAVE,A

ACALLDISP

ACALLDE10S;延时10秒

MOVA,#01H;南北路口绿灯灭

MOVSAVE,A

ACALLDISP

MOVR2,#05H;南北路口黄灯闪烁5次

GGG:

MOVA,#41H

MOVSAVE,A

ACALLDISP

ACALLDE02S

MOVA,#01H

MOVSAVE,A

ACALLDISP

ACALLDE02S

DJNZR2,GGG

MOVA,#11H;红灯全亮

MOVSAVE,A

ACALLDISP

ACALLDE02S;延时0.2秒

JMPLLL;转LLL循环

DE10S:

MOVR5,#100;延时10秒

JMPDE1

DE3S:

MOVR5,#30;延时3秒

JMPDE1

DE02S:

MOVR5,#02;延时0.2秒

DE1:

MOVR6,#200

DE2:

MOVR7,#126

DE3:

DJNZR7,DE3

DJNZR6,DE2

DJNZR5,DE1

RET

INT:

CLREA

PUSHACC;中断处理

PUSHPSW

MOVA,R5

PUSHACC

MOVA,R2

PUSHACC

MOVR2,#19H

DAME:

MOVA,#11H;红灯亮

ACALLDISP

ACALLDE02S;延时0.2秒

MOVA,#00H;红灯灭

ACALLDISP

ACALLDE02S;延时0.2秒

DJNZR2,DAME

MOVA,SAVE;取SAVE中保存数据输出到cfa0端口

ACALLDISP

POPACC;出栈

MOVR2,A

POPACC

MOVR5,A

POPPSW

POPACC

SETBEA;允许外部中断

RETI

DISP:

MOVDPTR,#OUTPORT

CPLA

MOVX@DPTR,A

RET

END

 

 

实验6定时器实验———循环彩灯实验

一、实验目的:

1.学习8031内部计数器的使用和编程方法。

2.进一步掌握中断处理程序的编写方法。

二、实验设备:

CPU挂箱,8031CPU模块

三、实验原理:

1.定时常数的确定

定时器/计数器的输入脉冲周期与机器周期一样,为振荡频率的1/12。

本实验中时钟频率为6.0MHZ,现要采用中断方法来实现0.5秒延时,要在定时器1中设置一个时间常数,使其每隔0.1秒产生一次中断,CPU响应中断后将R0中计数值减一,令R0=05H,即可实现0.5秒延时。

时间常数可按下述方法确定:

机器周期=12÷晶振频率=12/(6×10⁶)=2us

设计数初值为X,则(2e+16-X)×2×

=0.1,可求得X=15535

化为十六进制则X=3CAFH,故初始值为TH1=3CH,TL1=AFH

2.初始化程序

包括定时器初始化和中断系统初始化,主要是对IP、IE、TCON、TMOD的相应位进行

正确的设置,并将时间常数送入定时器中。

由于只有定时器中断,IP便不必设置。

3.设计中断服务程序和主程序

中断服务程序除了要完成计数减一工作外,还要将时间常数重新送入定时器中,为下一次中断做准备。

主程序则用来控制发光二极管按要求顺序燃灭。

四、实验电路:

思考题:

修改程序,使彩灯变化花样为:

①L1、L2、…L8依次点亮;②L1、L2、…L8依次熄灭;③以双灯方式L1L2、L3L4、…依次点亮;④以双灯方式L8L7、L6L5、…依次熄灭。

程序:

T6.ASM

NAMET6;定时器实验

CSEGAT0000H

LJMPSTART

CSEGAT001BH;定时器/计数器1中断程序入口地址

LJMPINT

CSEGAT4100H

START:

MOVA,#01H;首显示码

CPLA

MOVR1,#03H;03是偏移量,即从基址寄存器到表首的距离

MOVR0,#05H;05是计数值

MOVTMOD,#10H;计数器置为方式1

MOVTL1,#0AFH;装入时间常数

MOVTH1,#03CH

ORLIE,#88H;CPU中断开放标志位和定时器

;1溢出中断允许位均置位

SETBTR1;开始计数

LOOP1:

CJNER0,#00,DISP

MOVR0,#05H;R0计数计完一个周期,重置初值

INCR1;表地址偏移量加1

CJNER1,#1BH,LOOP2

MOVR1,#03H;如到表尾,则重置偏移量初值

LOOP2:

MOVA,R1;从表中取显示码入累加器

MOVCA,@A+PC

CPLA

JMPDISP

DB01H,03H,07H,0FH,1FH,3FH,7FH,0FFH,0FEH,0FCH

DB0F8H,0F0H,0E0H,0C0H,80H,00H,03H,0FH,3FH,0FFH,3FH,0FH,03H,00H

DISP:

MOVP1,A;将取得的显示码从P1口输出显示

JMPLOOP1

INT:

CLRTR1;停止计数

DECR0;计数值减一

MOVTL1,#0AFH;重置时间常数初值

MOVTH1,#03CH

SETBTR1;开始计数

RETI;中断返回

END

 

实验118279键盘显示接口实验

一、实验目的:

1.进一步了解8279键盘、显示电路的编程方法。

2.进一步了解键盘电路工作原理及编程方法。

二、实验设备:

CPU挂箱,8031CPU模块

三、实验原理:

本实验用到了8279的键盘输入部分。

键盘部分提供的扫描方式最多可和64个按键或传感器阵列相连,能自动消除开关抖动以及对多键同时按下采取保护。

由于键盘扫描由8279自动实现,简化了键盘处理程序的设计,因而编程的主要任务是实现对扫描值进行适当处理,以两位十六进制数将扫描码显示在数码管上。

可省略对8279进行初始化,因为监控程序对8279已经进行了初始化,详见第三章键盘操作说明的4.5节。

四、实验题目

利用实验箱上提供的8279,键盘电路,数码显示电路,组成一个键盘分析电路,编写程序,要求在键盘上按动一个键,就将8279对此键扫描的扫描码显示在数码管上。

五、实验接线:

将键盘的KA10~KA12接8279的KA0~KA2;RL10~RL17接8279的RL0~RL7;

思考题:

键盘的扫描电路共分为3行8列,现要求修改源程序,使得按数字键0~9时,可在最左侧的LED数码管上直接显示对应数字。

程序名:

T11.ASM

;将键盘的KA10~KA12接8279的KA0~KA2

;RL10~RL17接8279的RL0~RL7;

NAMET11;8279键盘实验二

CSEGAT0000H

LJMPSTART

CSEGAT4100H

START:

MOVDPTR,#0CFE9H;8279命令字

MOVA,#0D1H;清显示

MOVX@DPTR,A

LOOP1:

MOVXA,@DPTR

ANLA,#0FH

JZLOOP1;有键按下?

没有则循环等待

MOVA,#0A0H;显示\消隐命令

MOVX@DPTR,A

MOVA,#40H;读FIFO命令

MOVX@DPTR,A

MOVDPTR,#0CFE8H;读键值

MOVXA,@DPTR

MOVR1,A;保存键值

MOVDPTR,#0CFE9H;写显示RAM命令

MOVA,#80H;选中LED2

MOVX@DPTR,A

MOVA,R1

ANLA,#0FH;取后半字节

MOVDPTR,#TAB

MOVCA,@A+DPTR;取段显码

MOVDPTR,#0CFE8H;写显示RAM

MOVX@DPTR,A

MOVDPTR,#0CFE9H;写显示RAM命令

MOVA,#81H;选中LED1

MOVX@DPTR,A

MOVA,R1

ANLA,#0F0H

SWAPA;取后半字节

MOVDPTR,#TAB

MOVCA,@A+DPTR;取段显码

MOVDPTR,#0CFE8H;写显示RAM

MOVX@DPTR,A

MOVDPTR,#0CFE9H

SJMPLOOP1

TAB:

DB3FH,06H,5BH,4FH,4FH,4FH,66H,6DH,7DH,07H;段显码表

db07H,07H,7fh,6fh,77h,7cH

END

 

实验15A/D转换实验

一、实验目的:

1.掌握A/D转换与单片机的接口方法。

2.了解A/D芯片ADC0809转换性能及编程方法。

3.通过实验了解单片机如何进行数据采集。

二、实验内容:

利用实验台上的ADC0809做A/D转换器,实验箱上的电位器提供模拟电压信号输入,编制程序,将模拟量转换成数字量,用数码管显示模拟量转换的结果。

三、实验电路:

四、实验步骤:

1.0809的片选信号CS0809接CS0。

2.电位器的输出信号AN0接0809的ADIN0。

3.EOC接CPU板的INT0.

思考题:

将P1.0接LED1,P1.1接LED2;修改源程序,满足以下要求(2,3小题选作一题即可):

1)将ADC0809的采样方式改为中断响应,利用中断处理程序读取转换结果。

2)当采样值大于0F0H,LED1亮;当采样值小于010H,LED2亮。

参考程序T15.c

#include

#include

#defineLed_datXBYTE[0xcfe8]//8279数据口地址

#defineLed_ctlXBYTE[0xcfe9]//设置8279控制字

#definead_portXBYTE[0xcfa0]//ADC0809地址

sbitP10=P1^0;

sbitP11=P1^1;

voidDisplay_byte(unsignedcharloc,unsignedchardat)

{

unsignedchartable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

loc&=0xf;//1111

Led_ctl=loc|0x80;//选中LED1

Led_dat=table[dat>>4];/*显示高4位*/

loc++;

Led_ctl=loc|0x80;//90H,选中LED2

Led_dat=table[dat&0xf];/*显示低4位*/

}

voiddelay(unsignedintt)

{

for(;t>0;t--);

}

voidmain(void)

{

EA=1;

EX0=1;

IT0=1;

Led_ctl=0xd1;//清屏显示

while((Led_ctl&0x80)==0x80);

Led_ctl=0x31;

ad_port=0;//启动A/D转换

while

(1);

}

/*将ADC0809的采样方式改为中断响应,利用中断处理程序读取转换结果。

*/

voidint0_int(void)interrupt0

{

Display_byte(0,ad_port);

delay(10000);

if(ad_port>0xf0)P10=0;//当采样值大于0F0H,LED1亮

if(ad_port<0x10)P11=0;//当采样值小于010H,LED2亮

if(ad_port>=0x10&ad_port<=0xf0)P10=P11=1;

ad_port=0;

}

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2