整理电气院单片机实验.docx
《整理电气院单片机实验.docx》由会员分享,可在线阅读,更多相关《整理电气院单片机实验.docx(17页珍藏版)》请在冰豆网上搜索。
整理电气院单片机实验
实验1P1口实验
一、实验目的:
1.学习P1口的使用方法。
2.学习延时子程序的编写和使用。
二、实验设备:
CPU挂箱、8031CPU模块
三、实验内容:
1.P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
2.P1口做输入口,接八个按纽开关,以实验箱上74LS273做输出口,编写程序读取开关状态,在发光二极管上显示出来。
四、实验原理:
P1口为准双向口,P1口的每一位都能独立地定义为输入位或输出位。
作为输入位时,必须向锁存器相应位写入“1”,该位才能作为输入。
8031中所有口锁存器在复位时均置为“1”,如果后来在口锁存器写过“0”,在需要时应写入一个“1”,使它成为一个输入。
可以用第二个实验做一下实验。
先按要求编好程序并调试成功后,可将P1口锁存器中置“0”,此时将P1做输入口,会有什么结果。
再来看一下延时程序的实现。
现常用的有两种方法,一是用定时器中断来实现,一是用指令循环来实现。
在系统时间允许的情况下可以采用后一种方法。
本实验系统晶振为6.144MHZ,则一个机器周期为12÷6.144us即1÷0.512us。
现要写一个延时0.1s的程序,可大致写出如下:
MOVR7,#X
(1)
DEL1:
MOVR6,#200
(2)
DEL2:
DJNZR6,DEL2(3)
DJNZR7,DEL1(4)
上面MOV、DJNZ指令均需两个机器周期,所以每执行一条指令需要1÷0.256us,现求出X值:
1÷0.256+X(1÷0.256+200×1÷0.256+1÷0.256)=0.1×10⁶
指令
(1)指令
(2)指令(3)指令(4)
所需时间所需时间所需时间所需时间
X=(0.1××10⁶-1÷0.256)/(1÷0.256+200×1÷0.256+1÷0.256)=127D=7FH
经计算得X=127。
代入上式可知实际延时时间约为0.100215s,已经很精确了。
五、实验原理图:
P1口输出实验
P1口输入实验
六、实验步骤:
执行程序1(T1_1.ASM)时:
P1.0~P1.7接发光二极管L1~L8。
执行程序2(T1_2.ASM)时:
P1.0~P1.7接平推开关K1~K8;74LS273的O0~O7接发光二极管L1~L8;74LS273的片选端CS273接CS0(由程序所选择的入口地址而定,与CSO~CS7相应的片选地址请查看第一部分系统资源,以后不赘述)。
七、程序框图:
循环点亮发光二极管
通过发光二极管将P1口的状态显示
实验2简单I/O口扩展实验
——交通灯控制实验
一、实验目的:
1.学习在单片机系统中扩展简单I/O接口的方法。
2.学习数据输出程序的设计方法。
3.学习模拟交通灯控制的实现方法。
二、实验设备:
CPU挂箱、8031CPU模块
三、实验内容:
扩展实验箱上的74LS273做为输出口,控制八个发光二极管亮灭,模拟交通灯管理。
四、实验原理:
要完成本实验,首先必须了解交通路灯的亮灭规律。
本实验需要用到实验箱上八个发光二极管中的六个,即红、黄、绿各两个。
不妨将L1(红)、L2(绿)、L3(黄)做为东西方向的指示灯,将L5(红)、L6(绿)、L7(黄)做为南北方向的指示灯。
而交通灯的亮灭规律为:
初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。
闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。
闪烁若干次后,再切换到东西路口方向,重复上述过程。
各发光二极管的阳极通过保护电阻接到+5V的电源上,阴极接到输入端上,因此使其点亮应使相应输入端为低电平。
五、实验原理图
六、实验步骤:
74LS273的输出O0~O7接发光二极管L1~L8,74LS273的片选CS273接片选信号CSO.
运行实验程序,观察LED显示情况是否与实验内容相符。
七、程序框图:
实验3中断实验
———有急救车的交通灯控制实验
一、实验目的:
1.学习外部中断技术的基本使用方法。
2.学习中断处理程序的编程方法。
二、实验设备:
CPU挂箱、8031CPU模块
三、实验内容:
在实验二的内容的基础上增加允许急救车优先通过的要求。
当有急救车到达时,两个方向上的红灯亮,以便让急救车通过,假定急救车通过路口的时间为10秒,急救车通过后,交通灯恢复中断前的状态。
本实验以单脉冲为中断申请,表示有急救车通过。
四、实验原理:
交通灯的燃灭规律见实验二。
本实验中断处理程序的应用,最主要的地方是如何保护进入中断前的状态,使得中断程序执行完毕后能回到交通灯中断前的状态。
要保护的地方,除了累加器ACC、标志寄存器PSW外,还要注意:
一是主程序中的延时程序和中断处理程序中的延时程序不能混用,本实验给出的程序中,主程序延时用的是R5、R6、R7,中断延时用的是R3、R4和新的R5。
第二,主程序中每执行一步经74LS273的端口输出数据的操作时,应先将所输出的数据保存到一个单元中。
因为进入中断程序后也要执行往74LS273端口输出数据的操作,中断返回时如果没有恢复中断前74LS273端口锁存器的数据,则显示往往出错,回不到中断前的状态。
还要注意一点,主程序中往端口输出数据操作要先保存再输出,例如有如下操作:
MOVA,#0F0H(0)
MOVX@R1,A
(1)
MOVSAVE,A
(2)
程序如果正好执行到
(1)时发生中断,则转入中断程序,假设中断程序返回主程序前需要执行一句MOVA,SAVE指令,由于主程序中没有执行
(2),故SAVE中的内容实际上是前一次放入的而不是(0)语句中给出的0F0H,显示出错,将
(1)、
(2)两句顺序颠倒一下则没有问题。
发生中断时两方向的红灯一起亮10秒,然后返回中断前的状态。
五、实验原理图:
(同实验二)
六、实验步骤:
74LS273的输出O0~O7接发光二极管L1~L8,74LS273的片选CS273\接片选信号CS2,此时74LS273的片选地址为CFB0H~CFB7H之间任选。
单脉冲输出端P-接CPU板上的INT0。
七、程序框图:
主程序框图中断程序框图
实验4定时器实验
———循环彩灯实验
一、实验目的:
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×-610=0.1,可求得X=15535
化为十六进制则X=3CAFH,故初始值为TH1=3CH,TL1=AFH
2.初始化程序
包括定时器初始化和中断系统初始化,主要是对IP、IE、TCON、TMOD的相应位进行
正确的设置,并将时间常数送入定时器中。
由于只有定时器中断,IP便不必设置。
3.设计中断服务程序和主程序
中断服务程序除了要完成计数减一工作外,还要将时间常数重新送入定时器中,为下一次中断做准备。
主程序则用来控制发光二极管按要求顺序燃灭。
四、实验题目
由8031内部定时器1按方式1工作,即作为16位定时器使用,每0.1秒钟T1溢出中断一次。
P1口的P1.0~P1.7分别接发光二极管的L1~L8。
要求编写程序模拟一循环彩灯。
彩灯变化花样可自行设计。
例程给出的变化花样为:
①L1、L2、…L8依次点亮;②L1、L2、…L8依次熄灭;③L1、L2、…L8全亮、全灭。
各时序间隔为0.5秒。
让发光二极管按以上规律循环显示下去。
五、实验电路:
六、实验步骤:
P1.0~P1.7分别接发光二极管L1~L8即可。
七、程序框图:
T6.ASM
主程序框图中断程序框图
实验58255A可编程并行接口实验
一、实验目的:
1.了解8255A芯片的结构及编程方法。
2.掌握通过8255A并行口读取开关数据的方法。
二、实验设备:
CPU挂箱、8031CPU模块
三、实验原理:
设置好8255A各端口的工作模式。
实验中应当使三个端口都工作于方式0,并使A口为输出口,B口为输入口。
四、实验内容:
利用8255A可编程并行接口芯片,读取开关状态,并将此状态通过发光二极管显示出来。
实验可用B通道作为开关量输入口,A通道作为显示输出口。
五、实验电路:
六、实验步骤:
8255A的PA0~PA7接发光二极管L1~L8;PB0~PB7接开关K1~K8;片选信号8255CS接CS0。
七、程序框图:
实验6数码显示实验
一、实验目的:
1.进一步掌握定时器的使用和编程方法。
2.了解七段数码显示数字的原理。
3.掌握用一个段锁存器,一个位锁存器同时显示多位数字的技术。
二、实验设备:
CPU挂箱、8031CPU模块
三、实验原理:
本试验采用动态显示。
动态显示就是一位一位地轮流点亮显示器的各个位(扫描)。
将8031CPU的P1口当作一个位锁存器使用,74LS273作为段锁存器。
四、实验题目
利用定时器1定时中断,控制电子钟走时,利用实验箱上的六个数码管显示分、秒,做成一个电子钟。
显示格式为:
分秒
定时时间常数计算方法为:
定时器1工作于方式1,晶振频率为6MHZ,故预置值Tx为:
(2e+16-Tx)x12x1/(6x10e+6)=0.1s
Tx=15535D=3CAFH,故TH1=3CH,TL1=AFH
五、实验电路:
六、实验接线:
将P1口的P1.0~P1.5与数码管的输入LED1~LED6相连,74LS273的O0~O7与LED-A~LED-Dp相连,片选信号CS273与CS0相连。
去掉短路子连接。
七、程序框图:
T9.ASM
实验7A/D转换实验
一、实验目的:
1.掌握A/D转换与单片机的接口方法。
2.了解A/D芯片ADC0809转换性能及编程方法。
3.通过实验了解单片机如何进行数据采集。
二、实验设备:
CPU挂箱、8031CPU模块
三、实验内容:
利用实验台上的ADC0809做A/D转换器,实验箱上的电位器提供模拟电压信号输入,编制程序,将模拟量转换成数字量,用数码管显示模拟量转换的结果。
1.环境总经济价值的构成四、实验原理:
(3)机会成本法A/D转换器大致有三类:
一是双积分A/D转换器,优点是精度高,抗干扰性好,价格便宜,但速度慢;二是逐次逼近法A/D转换器,精度、速度、价格适中;三是并行A/D转换器,速度快,价格也昂贵。
实验用的ADC0809属第二类,是八位A/D转换器。
每采集一次需100us。
ADC0809START端为A/D转换启动信号,ALE端为通道选择地址的锁存信号。
实验电路中将其相连,以便同时锁存通道地址并开始A/D采样转换,故启动A/D转换只需如下两条指令:
(一)环境影响评价的概念MOVDPTR,#PORT
MOVX@DPTR,A
1.法律A中为何内容并不重要,这是一次虚拟写。
在中断方式下,A/D转换结束后会自动产生EOC信号,将其与8031CPU板上的INT0相连接。
在中断处理程序中,使用如下指令即可读取A/D转换的结果:
(6)评价结论。
MOVDPTR,#PORT
定量安全评价方法有:
危险度评价法,道化学火灾、爆炸指数评价法,泄漏、火灾、爆炸、中毒评价模型等。
MOVXA,@DPTR
疾病成本法和人力资本法将环境污染引起人体健康的经济损失分为直接经济损失和间接经济损失两部分。
直接经济损失有:
预防和医疗费用、死亡丧葬费;间接经济损失有:
影响劳动工时造成的损失(包括病人和非医务人员护理、陪住费)。
这种方法一般通常用在对环境有明显毒害作用的特大型项目。
五、实验电路:
3.不同等级的环境影响评价要求六、实验步骤:
1.0809的片选信号CS0809接CS0。
2.电位器的输出信号AN0接0809的ADIN0。
3.
4.安全预评价方法可分为定性评价方法和定量评价方法。
EOC接CPU板的INT0.
(3)专项规划环境影响报告书的内容。
除包括上述内容外,还应当包括环境影响评价结论。
主要包括规划草案的环境合理性和可行性,预防或者减轻不良环境影响的对策和措施的合理性与有效性,以及规划草案的调整建议。
八、程序框图:
T15.ASM
主程序中断服务程序