📄 anjian.c
字号:
#include<c8051f340.h>
#include <stdio.h>
sbit TXD=P0^4;
sbit RXD=P0^5;
sbit line=P0^0;
sbit row=P0^1;
#define uchar unsigned char
char code tab[]={0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0,0xFE,0xF6};
void portInitiate(void)
{
unsigned int i;
XBR0=0X01; //输入输出端口功能选择寄存器
XBR1=0X40;
XBR2=0X00;
P0SKIP=0XCF;
P1SKIP=0XCE;
P2SKIP=0Xff;
P3SKIP=0Xff;
EMI0CF=0x05;
EMI0TC=0X6D; //外部存储器控制器
VDM0CN=0X80; //VDD寄存器
RSTSRC=0X01; //复位源寄存器
PCA0MD=0X88; //关闭看门狗
OSCXCN=0xE7;
for (i=0;i<3000;i++); // Wait 1ms for initialization
while ((OSCXCN & 0x80) == 0);
{
//OSCICN = 0x00;
OSCICL=0X00;
CLKMUL=0x02;
CLKSEL=0x20;
}
P0MDIN=0XFE;
P0MDOUT=0XD3; //输出方式寄存器
P1MDOUT=0XCE;
P2MDOUT=0XFF;
P4MDOUT=0Xff;
P3MDOUT=0XFF;
}
void delay(uchar n)
{
uchar i;
unsigned int j;
for(i=0;i<n;i++)
{
for(j=0;j<1000;j++);
}
}
void main(void)
{
unsigned int i_data;
portInitiate();
P4=0x00;
delay(3);
while(1)
{
line=0;
row=1;
i_data=P2;
if(P2!=0xff)
{
delay(3);
if(P2!=0xff)
switch(i_data)
{
case 0xfe:P4=0xf0;break;
case 0xfd:P4=0x70;break;
case 0xfb:P4=0xb0;break;
case 0xf7:P4=0x30;break;
case 0xef:P4=0xd0;break;
case 0xdf:P4=0xa0;break;
case 0xbf:P4=0x70;break;
case 0x7f:P4=0x80;break;
default:break;
}
}
else P4=0xff;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -