pic单片机闪灯实验(Hello World)实验报告

来源:本站
导读:目前正在解读《pic单片机闪灯实验(Hello World)实验报告》的相关信息,《pic单片机闪灯实验(Hello World)实验报告》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《pic单片机闪灯实验(Hello World)实验报告》的详细说明。
简介:本文主要讲了一下关于pic单片机闪灯实验(Hello World)实验报告,一起来学习一下:

1. 实验目的

A,学习汇编语言编程

B,学习使用编程软件和下载器在单片机上编程

C,学习学习嵌入式的方法

2. 任务要求用汇编语言编程实现LED灯闪烁

3. 实验器材单片机PIC16F886一片、LED灯一只、电阻任选、下载器(及相关的线)一个

4. 实验方案

pic单片机闪灯实验(Hello World)实验报告

图1硬件设计图

5. 调试过程先使LED灯亮,再写延时程序,最后实现闪灯。最后的结果是可以实现闪灯,但是闪灯的频率和亮灭时间比例还不能精确控制。

6. 实验现象分析奇怪的现象:(还没有解决)

1,只写让LED灯亮的程序,即

LIST p=16f886

INCLUDE p16f886.inc

ORG 0x00

BANKSEL TRISC

CLRF TRISC

CLRF STATUS

MOVLW B'00001111'

MOVWF PORTC

END

时,在PICKIT 2中选择5V on ,测得Vdd=4.2V,万用表直流电压档测得PIN RC3 是2.7V ,示波器测时发现RC3引脚是频率是50Hz,幅值是2.7V的正方波。LED可以一直亮,但是不是预期的一直置位。还没有找到原因。

2,如果采用延时、翻转如此循环,即循环部分分别为

A.loop call delay

comf portc,1

goto loop

B.loop call delay

call delay

call delay

call delay

call delay

comf portc,1

goto loop

C.loop call delay

call delay

call delay

call delay

call delay

call delay

call delay

call delay

call delay

call delay

comf portc,1

goto loop

时,测到的实际频率都在0.48Hz左右(采用的时候总周期是默认的4MHz),然而一个循环中delay调用次数越多,灯亮的时间越短,灭的时间越长。当时钟频率选择127kHz时,调用3个delay时就已经不会亮了。

3,如果采用清零、延时、置位、延时的循环,发现LED每次亮灭的时间基本相同,但是,每亮灭五次后,会有一次灯灭的时间稍微长一点。改变时钟频率后也是这样。猜测是delay函数写得有问题。

这三个现象计划的解决方法是单步调试和仿真。

(写完这份报告时,杜航同学提醒说我在delay中用到了decfsz函数,而decfsz函数的操作范围只有0~127,而我设置的却是0ffh,已超出该范围。)

之前曹航用127kHz的时钟,假设四个时钟周期是一个指令周期,假设按照之前以为的2^8*2^8*2*2,周期在8s左右,实验出来的结果却在2s左右。按照杜航的说法,实际的一个周期内指令一共2^7*2^7*2*2,则计算得到灯的周期为2.06秒,实验时计算到的现象是亮灯周期2s左右,比较符合。但是具体是不是这样还要进一步验证。

额,刚刚把delay中的0ffh改成07fh发现灯明显闪烁快了。所以之前的假设不成立。

附:

INCLUDE P16F886.INCorg 000h nop BANKSEL OSCCONBCF OSCCON,4BCF OSCCON,5BSF OSCCON,6BANKSEL TRISCmovlw 00h movwf TRISC BANKSEL PORTC movlw 000h movwf PORTC loop CALL delayBSF PORTC,3CALL delayBCF PORTC,3goto loop

;-------------------------廷时子程序----------------------------delay ;子程序名,也是子程序入口地址 movlw 0ffh ;将外层循环参数值FFH经过W movwf 20h ;送入用作外循环变量的20H单元lp0 movlw 0ffh ;将内层循环参数值FFH经过W movwf 21h ;送入用作内循环变量的21H单元lp1 decfsz 21h,1 ;变量21H内容递减,若为0跳跃 goto lp1 ;跳转到LP1处 decfsz 20h,1 ;变量20H内容递减,若为0跳跃 goto lp0 ;跳跃到LP0处return

end

提醒:《pic单片机闪灯实验(Hello World)实验报告》最后刷新时间 2024-03-14 00:55:16,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《pic单片机闪灯实验(Hello World)实验报告》该内容的真实性请自行鉴别。