📄 lab3_1.c
字号:
//★★★★★注意:本模板可能根据不同实验内容作修改★★★★★
//------------------------------------------------------------------------------
// 实验题目、内容
//
//
//
//------------------------------------------------------------------------------
// 文件名: LABxx_YZ.C
// 处理器型号: PIC24FJ64GA006
// 采用外部晶振: 16MHz
// 编译器: MPLAB C30
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// HXY 2007.10.29 初始版本
//
//------------------------------------------------------------------------------
//如下语句强烈建议所有的程序中都保留//
#include <p24FJ64GA006.h>
unsigned char RESERED[100]; //预留区,供ICD2调试使用
_CONFIG1( JTAGEN_OFF & GCP_OFF & GWRP_OFF & BKBUG_OFF & COE_OFF & FWDTEN_OFF ) //程序配置位
_CONFIG2( FNOSC_PRI & FCKSM_CSDCMD & OSCIOFNC_ON & POSCMOD_HS )
//------------------------------------------------------------------------------
//函数功能:延时程序(毫秒)
//入口参数:del(数值范围:16位整型)
//出口参数:无
//------------------------------------------------------------------------------
void DelaymS(unsigned int del)
{
unsigned int j;
while(del--)
for(j=0;j<1600;j++);
}
//------------------------------------------------------------------------------
//函数功能:I/O端口初始化
//入口参数:无
//出口参数:无
//------------------------------------------------------------------------------
void IOInit()
{
AD1PCFG= 0xFFFF; //关闭PORTB端口所有引脚的模拟功能
TRISB= 0xFFFF; //设置PORTB的16位全部输出
TRISD=0x0000;
TRISE=0x0000;
}
//------------------------------------------------------------------------
//外部中断0服务程序
//
//------------------------------------------------------------------------
//void _ISR _INT0Interrupt( )
//{
// IFS0bits.INT0IF=0; //清中断标志位
// LATB=0x0000;
// ……
//}
//------------------------------------------------------------------------------
//函数功能:main函数
//------------------------------------------------------------------------------
int main()
{
unsigned int ASCI={0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046};
unsigned int kcol,krow;
IOInit(); //IO端口初始化
while(1)
{
kcol=0xFFFF;
krow=0xFFFF;
PORTD=0xFFFC;
if(PORTB!=0xFFFF)
{
DelaymS(20);
PORTD=0xFFFE;
if(PORTB!=0xFFFF)
{
kcol=0;
krow=PORTB&0x0007;
}
else
{
PORTD=0xFFFD;
kcol=1;
krow=PORTB&0x0007;
}
}
//拼键值并在二极管上显示
if(kcol==0) PORTE=~ASCII[krow];
else if(kcol==1) PORTE=~ASCII[krow+8];
else PORTE=0xFFFF; //全灭
}
}
// end of main
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -