实验一:IO口、定时器及软件使用

实验一:IO口、定时器及软件使用

ID:44819717

大小:29.73 KB

页数:11页

时间:2019-10-30

实验一:IO口、定时器及软件使用_第1页
实验一:IO口、定时器及软件使用_第2页
实验一:IO口、定时器及软件使用_第3页
实验一:IO口、定时器及软件使用_第4页
实验一:IO口、定时器及软件使用_第5页
资源描述:

《实验一:IO口、定时器及软件使用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验一:I/O口、定时器及软件使用PIC16F877A单片机的RB0、RB1、RB2分别接一个LED,以TMR0为计时器,让三个LED分别每隔10ms、100ms以及1s闪亮。请分别用KEIL和PROTEUS自带的编译器调试。电路图自己画,Proteus请保存在7.0版本,否则在实验室打不开。也可以每次做实验的时候在实验室安装新版本的软件。#include__CONFIG(0x3F71);#defineLED1RB0#defineLED2RB1#defineLED3RB2#defineTMR0_DELAY100voidinte

2、rruptSJL(void);charCounter;voidmain(void){OPTION_REG=0B00000101;TRISB=0b00000000;INTCON=0B10100000;TMR0=TMR0_DELAY;Counter=0;LED1=0;LED2=0;LED3=0;while(1);}voidinterruptSJL(void){chartemp;if(T0IF==1){Counter++;T0IF=0;TMR0=TMR0_DELAY;LED1=!LED1;temp=Counter;while(temp>=10)t

3、emp-=10;if(temp==0)LED2=!LED2;if(Counter==100){Counter=0;LED3=!LED3;}}}实验二:中断+PWM实验参考例4.1,RB0和RB7引脚分别接开关S1和S2,RB1、RC2引脚F分别外接一个LED1和LED2。要求:利用INT中断,每按下一次S1,LED1翻转一次;利用RBIE中断,当S2按下,输出1kHz,占空比40%的波形,当S2弹开,输出1kHz,占空比60%的波形。要求以上两个功能,写到一个程序中。//晶振为8MHz,40%占空比时X=200,60%占空比时X=300#i

4、nclude__CONFIG(0x3F3A);#defineLED1RB1voidDELAY(unsignedint);voidinterruptSJL(void);voidPWM_SZ(unsignedintx);voidmain(void){OPTION_REG=0b00000000;TRISB=0b11111101;INTCON=0b11011000;TRISC2=0;LED1=0;PWM_SZ(200);//配置PWM40%while(1);}voidinterruptSJL(void){if(INTF==1){DEL

5、AY(30);INTF=0;LED1=!LED1;}if(RBIF==1){DELAY(30);if(RB7==1)PWM_SZ(300);//占空比60elsePWM_SZ(200);//占空比40RBIF=0;}}voidPWM_SZ(unsignedintx){PR2=124;T2CON=0b00000110//工作,预分频1:16CCP1CON=0b00000000//禁用,修改参数CCP1CON=0b00001100//启用PWM功能。CCP1CON

6、=(x&0x03)<<4;CCPR1L=x>>2;}voidDELAY(unsi

7、gnedintn){unsignedintj;chark;for(j=0;j0;k--)NOP();}实验三:USART+BCD+LED实验(PROTUES+硬件烧写)(1)重复例4.15(只需要protues仿真)(2)编写一个测试单片机通信功能的自发自收程序,参照实验电路板接线,要求,将RC6和RC7引脚短接(P19引脚12脚短接),P20、P45短路帽短接,记录S1按键(RB0)点击的次数,每点击一次,将次数值(2位数,1-99)通过发送口发送出去,接收口收到数据后,将值送至LED9-LED10数

8、码管显示(SPI接口,使用RC3和RC5引脚,P8短路帽短接)。#include__CONFIG(0x30E4);__CONFIG(0X3FFF);voidDELAY(unsignedint);voidinterruptISR(void);voidCSH(void);voidBCD(unsignedint);voidSPI_WRITE(char*);voidDISP_TWO(char*);#defineSEND_ONE(a)TXREG=a;while(TRMT==0)//宏定义,发送一个数并等待其结束constLED_CO

9、DE[17]={0b11000000,0b11111001,0b10100100,0b10110000,0b10011001,0b10010010,0b10000010,0b11

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。