資源簡介
8255 鍵盤接口C語言編程8255 鍵盤接口C語言編程

代碼片段和文件信息
/***************************************************************
mcu_8255A
copyright?software?keil?inc
***************************************************************/
#include?
#include?
#include?
#include?
#define?WR_Port_A?XBYTE[0X7cff]??//01111100
#define?WR_Port_B?XBYTE[0X7eff]??//01111110
#define?WR_Port_C?XBYTE[0X7dff]??//01111101
#define?WR_Control?XBYTE[0X7fff]?//01111111
#define?uchar?unsigned?char?
#define?uint?unsigned?int
sbit?WDI=P1^7;//watchdog?signal?input?pin
sbit?light=P1^6;
sbit?EX_int0=P3^2;
uchar?temp;
uchar?Counts_RCounts_FCounts_S;
uchar?code?table[10]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f};?
uchar?idata?buf_R[4];
uchar?idata?buf_F[4];
uchar?idata?buf_S[4];
void?delay(uchar);
void?display(uchar?idata?*);
void?display_0(uchar?idata?*);//---------------------
void?math_add();
void?display_All();
void?display_R(uchar?idata?*);
void?display_F(uchar?idata?*);
void?display_S(uchar?idata?*);
void?main(void)
{
?????uchar?ij;
?????uchar?idata?dis_buf[2];
?????uchar?idata?dis_buf_0[4];//-----------------------
?????WR_Control=0x80;
?delay(2);
?for(i=0;i<20;i++)
?{
???????j=100;
???while(--j);
?}
?Counts_R=20;
?Counts_F=30;
?????display_0(dis_buf_0);//----------------------------
?????while(1)
?{
???????????Counts_S=Counts_F+Counts_R;
???math_add();
???display_All();
???????/*for(i=0;i<2;i++)
???{
????????dis_buf[i]=temp%10;
temp=temp/10;
???}*/
???WDI=!WDI;
???while(j<=200)
???{
????????????????display(dis_buf);?
j++;
???}
?}
}
/*----------------------display_Loop()-----------------*/
void?display(uchar?idata?*pt)
{
?????uchar?itemp;
?temp=0x01;//00000001
?????for(i=0;i<2;i++)
?{
???????????WR_Port_A=table[*pt];
???WR_Port_B=temp;
???delay(20);
???pt++;
???if(temp!=0x04)
???temp=temp<<1;
???//temp=0xef;//11101111;
?}
}
/*---------------delay_time(uchar)--------------------*/
void?delay(uchar?time)
{
?????uchar??ij;?
?????for(i=0;i?????{
???????j=100;
???????while(--j);
?}
}
/*-------------------display_0()---------------*/
void?display_0(uchar?idata?*ptt)
{
?????uchar?itemp;
?temp=0x01;
?for(i=0;i<4;i++)
?{
??????WR_Port_A=table[*ptt];
??WR_Port_B=temp;
??delay(20);
??ptt++;
?}
}
/*--------------------math_add()--------------*/
void?math_add()
{
?????uchar?itemp_EE;
?temp_EE=Counts_R;
?????for(i=0;i<4;i++)
?{
??????buf_R[i]=temp_EE%10;
??????temp_EE=temp_EE/10;
?}
?temp_EE=Counts_F;
?for(i=0;i<4;i++)
?{
??????buf_F[i]=temp_EE%10;
??temp_EE=temp_EE/10;
?}
?temp_EE=Counts_S;
?for(i=0;i<4;i++)
?{
??????buf_S[i]=temp_EE%10;
??temp_EE=temp_EE/10;
?}
}
/*---------------------display_all()-------------*/
void?display_All()
{
?????display_R(buf_R);
?display_F(buf_F);
?display_S(buf_S);
}
/*--------------------display_R()
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????3528??1999-08-28?11:56??mcu.c
-----------?---------??----------?-----??----
?????????????????3746????????????????????2
評論
共有 條評論