📄 zkjp.c
字号:
/*******************************************************/
/*杭州电子&计算机工作室 */
/*http://www.hificat.com */
/*RS232接收显示实验 */
/*目标器件:AT89S51 */
/*晶振:11.0592MHZ */
/*编译环境:Keil 7.50A */
/*******************************************************/
#include "reg51.h"
unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char dat; //定义全局变量
unsigned long dat1;
unsigned int ii;
//串行口初始化程序
void Init_Com(void)
{
TMOD = 0x20;
PCON = 0x00;
SCON = 0x50;
TH1 = 0xFd;
TL1 = 0xFd;
TR1 = 1;
}
//LED数码管延时程序
void delay(void)
{
int k;
for(k=0;k<600;k++);
}
//LED数码管延时程序
void delay1(void)
{
int k;
for(k=0;k<60000;k++);
}
//串行中断服务程序
serial()interrupt 4 using 1
{
if(RI)
RI=0;
dat=SBUF;
// ii=ii+1;
// if(ii>4) dat=0;
// if (ii>4) ii=0;
if (dat== 'a') dat1=0;
if (dat!= 'a') dat1=dat1*10+(dat-48);
}
//\0
//LED数码管显示程序
void display(int k)
{
P2=0xfe; //位选
P0=tab[k/1000]; //显示千位数字
delay(); //延时
P2=0xfd; //位选
P0=tab[k%1000/100]; //显示百位数字
delay(); //延时
P2=0xfb; //位选
P0=tab[k%100/10]; //显示十位数字
delay(); //延时
P2=0xf7; //位选
P0=tab[k%10]; //显示个位数字
delay(); //延时
P2=0xff; //位选
/*
P2=0xfe; //位选
P0=tab[k/100000]; //显示千位数字
delay(); //延时
P2=0xfd; //位选
P0=tab[k%100000/10000]; //显示百位数字
delay(); //延时
P2=0xfb; //位选
P0=tab[k/100000/1000]; //显示千位数字
delay(); //延时
P2=0xf7; //位选
P0=tab[k%100000/10000]; //显示百位数字
delay(); //延时
P2=0xef; //位选
P0=tab[k%10000/10]; //显示十位数字
delay(); //延时
P2=0xdf; //位选
P0=tab[k%10]; //显示个位数字
delay(); //延时
P2=0xff; */
}
//主程序
void main()
{
P2=0xff;
P0=0xff;
P1=0xff;
EA=1;
ES=1;
Init_Com();
ii=0;
while(1)
{
if (dat1>9999) dat1=dat1 % 10000;
display(dat1); //显示数据
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -