单片机程序文档格式.docx
- 文档编号:609456
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:47
- 大小:21.54KB
单片机程序文档格式.docx
《单片机程序文档格式.docx》由会员分享,可在线阅读,更多相关《单片机程序文档格式.docx(47页珍藏版)》请在冰点文库上搜索。
f=1;
n=-n;
}
elseif(n==0)//当要显示的数据是0时,只显示一个0
t[0]=zxm[0];
while(n)//取数
t[i++]=zxm[n%10];
n/=10;
if(i>
6)
break;
if(f)
t[i]=0xfd;
//-
charj;
6;
j++)
t[j]=zxm[8];
}
SendData(t[i]);
LOCK=0;
LOCK=1;
unsignedcharscankey()
if(KeyValue==0xe7)//on/c
return'
C'
;
elseif(KeyValue==0xb7)//equ
E'
elseif(KeyValue==0x77)//+
+'
elseif(KeyValue==0x7b)//-
-'
elseif(KeyValue==0x7d)//*
*'
elseif(KeyValue==0x7e)///
/'
elseif(KeyValue==0xd7)//0
0'
elseif(KeyValue==0xeb)//1
1'
elseif(KeyValue==0xdb)//2
2'
elseif(KeyValue==0xbb)//3
3'
elseif(KeyValue==0xed)//4
4'
elseif(KeyValue==0xdd)//5
5'
elseif(KeyValue==0xbd)//6
6'
elseif(KeyValue==0xee)//7
7'
elseif(KeyValue==0xde)//8
8'
elseif(KeyValue==0xbe)//9
9'
else
'
voidkey()
unsignedchart;
t=scankey();
if(state==0)
if(t=='
)
data1=0;
state=0;
disp(data1);
elseif(t>
='
&
&
t<
data1=data1*10+t-48;
elseif(t!
state=1;
data2=0;
option=t;
elseif(state==1)
data2=data2*10+t-48;
disp(data2);
else
if(option=='
data1+=data2;
elseif(option=='
data1-=data2;
data1*=data2;
data1/=data2;
if(t!
else
option='
voidmain()
disp(0);
P2=0XFF;
P2=0XF0;
while
(1)
if((P2!
=0XF0)&
!
key_mark)
delay();
if(P2!
=0XF0)
{
KeyValue=P2;
P2=0XFF;
P2=0X0F;
KeyValue+=P2;
key();
key_mark=1;
P2=0XF0;
}
elseif(P2==0XF0)
key_mark=0;
电压表设计
sbitSET=P2^0;
sbitADD=P2^1;
sbitSUB=P2^2;
sbita=P2^0;
sbitb=P2^1;
sbitc=P2^2;
sbitSTART=P2^3;
sbitCLOCK=P2^4;
//不超过640KHz
sbitEOC=P2^5;
sbitOE=P2^6;
unsignedchari,cnt,DispBuf[6];
unsignedintAD;
unsignedcharcodezxm[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09,0xff};
bitKeyMark,sec;
voidDisplay();
unsignedcharReadAd(charchannel);
voidDelay()
voidT0Ser()interrupt1
TH0=-50000>
>
8;
TL0=-50000;
if(++cnt>
9)
cnt=0;
sec=1;
voidT1Ser()interrupt3
TH1=0XFF;
TL1=0X80;
CLOCK=!
CLOCK;
voidKey()
if(!
SET)
{
elseif(!
ADD)
SUB)
voidInitTimer()
{
TMOD=0X11;
IE|=0X8a;
TR0=1;
TR1=1;
voidDisplay()
if(i!
=2)
SendData(zxm[DispBuf[i]]);
SendData(zxm[DispBuf[i]]&
0xfe);
}
unsignedcharReadAd(charchannel)
c=channel/4;
b=channel%4/2;
a=channel%2;
START=1;
START=0;
EOC);
//等待转换结束,在EOC端接非门否则会出现非法电平信号
OE=1;
returnP1;
InitTimer();
Display();
{
if(sec)
sec=0;
//添加你自己的程序
AD=ReadAd(0);
AD=AD*500.0/255.0;
DispBuf[2]=AD/100;
DispBuf[1]=AD%100/10;
DispBuf[0]=AD%10;
Display();
电压表设计(实验五)
串行通信
unsignedcharcnt,n,hour,minute,second;
bitsec;
voidputchar(unsignedcharn);
voidcrlf();
voidt0()interrupt1
19)
voidputs(unsignedchar*p)
while(*p)
putchar(*p++);
voiddisplay()
unsignedchart[8]={0};
t[0]=hour/10+'
t[1]=hour%10+'
t[2]='
:
'
t[3]=minute/10+'
t[4]=minute%10+'
t[5]='
t[6]=second/10+'
t[7]=second%10+'
puts(t);
crlf();
voidcrlf()
putchar(0x0d);
putchar(0x0a);
voidcom()interrupt4
if(RI)
{
t=SBUF;
if(t=='
S'
n=0;
RI=0;
voidputchar(unsignedcharn)
voidinit_t0()
TH0=-50000>
TMOD|=0X01;
IE|=0X82;
voidinit_com()
//11.0592MHZ
//208232244250253
//120024004800960019200
//SM0SM1SM2RENTB8RB8TIRI
SCON=0x50;
IE|=0X90;
PCON=0X80;
TMOD|=0X20;
TH1=250;
main()
init_t0();
init_com();
puts("
CurrentTimeIs:
"
);
hour=12;
if(sec)
{
sec=0;
if(++second==60)
second=0;
if(++minute==60)
{
minute=0;
if(++hour==24)
hour=0;
}
}
display();
88点阵驱动演示
sbitdat=P2^5;
sbitclk=P2^4;
sbitlock=P2^3;
charcnt,pos,*p;
//centry六号字取字模
unsignedcharcodeMatrix001[8]=
/*------------------------------------------------------------------------------
源文件/文字:
0
宽×
高(像素):
8×
5
------------------------------------------------------------------------------*/
0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff
};
voidsend_595(unsignedcharn)
unsignedchari;
if(n&
0X80)//如果先送低位后送高位,会出现什么样的效果,分析原因
dat=1;
dat=0;
clk=0;
clk=1;
n<
<
=1;
lock=0;
lock=1;
voidt1()interrupt3
TH1=-60000>
TL1=-60000;
if(++pos>
7)
pos=0;
send_595(0);
//注释掉本句话,试验效果,分析原因
P2=7-pos;
//如果不用7-pos而是直接写pos,效果会如何
send_595((*(p+pos)));
voidinit_t1()
TMOD|=0X10;
IE|=0X88;
init_t1();
TR0=TR1=1;
p=Matrix001;
88点阵显示0到99
#include"
reg51.h"
unsignedcharline;
bitfresh,sec;
intcnt,n;
unsignedchardisp[][8]={{0xf0,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf0},//0{0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd},//1{0xf0,0xfe,0xfe,0xf0,0xf7,0xf7,0xf7,0xf0},//2{0xf0,0xfe,0xfe,0xf0,0xfe,0xfe,0xfe,0xf0},//3{0xf6,0xf6,0xf6,0xf0,0xfe,0xfe,0xfe,0xfe},//4{0xf0,0xf7,0xf7,0xf0,0xfe,0xfe,0xfe,0xf0},//5{0xf0,0xf7,0xf7,0xf0,0xf6,0xf6,0xf6,0xf0},//6{0xf0,0xf6,0xf6,0xfe,0xfe,0xfe,0xfe,0xfe},//{0xf0,0xf6,0xf6,0xf0,0xf6,0xf6,0xf6,0xf0},//8
{0xf0,0xf6,0xf6,0xf0,0xfe,0xfe,0xfe,0xf0}//9
};
IE=0x82;
TMOD=0x01;
TH0=-2000>
TL0=-2000;
voidt0(void)interrupt1
fresh=1;
500)
cnt=0;
if(++n>
99)
n=0;
if(fresh)
fresh=0;
if(++line>
line=0;
send_595(0);
P2=line;
send_595(~((disp[n/10][7-line]<
4)+(disp[n%10][7-line]&
0x0f)));
调速实现电子显示
sbitSET=P3^5;
sbitADD=P3^6;
sbitSUB=P3^7;
sbitDAT=P3^0;
sbitCLK=P3^1;
unsignedcharcnt,cnt2,line,*p;
charspeed;
bitsec,key_mark;
unsignedcharcodeMatrix001[32]=
汉
15×
15
0x20,0x00,0x10,0x00,0x17,0xFC,0x02,0x08,
0x82,0x08
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 程序