- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
sy3中断控制电路
伊犁师范学院电信学院实验卡
实验三:秒表T0中断控制电路及程序设计
伊犁师范学院电子与信息工程学院实验卡
实验名称 实验三:秒表T0中断控制电路及程序设计 实验类别 设计应用
一、实验目的:
1、熟悉PIC单片机集成编译软件MPLAB IDE v8.10的基本操作。
2、熟悉 PROTEUS软件的基本操作。
3、掌握理解LED数码管的构造、工作原理及单片机控制数码管显示的原理。
4、掌握1位LED数码管显示控制电路及C语言程序设计
二、仪器及材料: (表明规格,数量)
? 1、PIC单片机开发实验板(晶控电子PIC DEMO板) 1块
2、PC计算机 1台
3、编程数据电缆 2根
三、硬件系统设计:
1、电路功能:用PIC16F877A单片机芯片构成秒表控制电路系统,并用程序控制秒表显示000开始增加三位数。在实验板上直接从RC端口输出即可,无需插拔跳线。
2、系统电路:
四、程序设计:
1、程序设计思路
对于10位接在RC端口的LED,由于共阴极所有哪一位输出高电平哪一位LED点亮。这样就自然得到一个8位的二进制数。由于单片机的I/O接口是按端口整体处理的,通常用十六进制数表示,这样问题就转化成从RC端口输出相应灯亮状态的十六进制数。
2、参考汇编源程序
#includepic.h //调用pic.h头函数
__CONFIG(XT WDTDIS LVPDIS); //设置单片机工作模式
#define uchar unsigned char //无符号字符型定义符重说明
#define uint unsigned int //无符号整型定义符重说明
const uchar segCode[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0Xbf,0xff};//定义字形表数组并赋值
uchar ms=0,second=000; //定义循毫秒、秒变量
void delay(uchar n) //****定义延时函数****
{
uchar i; //定义循环变量i
for(i=0;in;i++);
}
void display(uchar n) //****定义显示函数****
{
uchar s,g,b;
s=n/10;g=n%10;b=(n/100)%10;
PORTA=0x01;
PORTC=segCode[s];
delay(100);
PORTA=0x02;
PORTC=segCode[g];
delay(100);
PORTA=0x04;
PORTC=segCode[b];
delay(100);
}
void interrupt ISR(void) //********中断服务函数********
{
if(T0IF==1) //如果中TMR0中断产生
T0IF=0; //如将TMR0中断标志清零,以防重复响应中断服务
TMR0=256-250; //设TIMER0的计数初
ms++; //设8毫秒数加1
if(ms==25) //8毫秒数加累计到125正好为1秒
{
ms=0; //毫秒数清零
second++; //秒数加1
}
if(second==999)
second=000;
}
void main(void) //********主函数********
{
T0CS=0; //选择CLKOUT信号为时钟源(内部时钟)
PSA=0; //选择预分频器给TIMER0用
PS2=1; //设置预分频器的分频比为1:32
PS1=0;
PS0=0;
TMR0=256-250; //设TIMER0的计数初
T0IF=0; //TMR0的中断标志清零
T0IE=1; //打开TMR0中断使能开关
GIE=1; //打开总中断使能开关
TRISA=0X00; //将PA口定义为输出
TRISC=0X00; //将PC口定义为输出
while(1) //死循环
{
display(second);
}
}
四、对学生要求: (必须掌握的,误差范围,以及仪器的使用)
1、能够使用MPLAB IDE
文档评论(0)