16 河南理工大学本科课程设计报告
参考文献
[1] 李华,王思明.单片机原理及应用.兰州:兰州大学出版社,2001.5 [2] 陈宁.单片机技术项目教程. 南京:南京东南大学出版社,2008.4 [3] 何立民.单片机高级教程.北京:北京航空航天大学出版社, 2000
[4] 余发山,王福忠,杨凌霄,王莉.微机原理与单片机接口技术.北京:煤炭工业出版社,2013
16
17 河南理工大学本科课程设计报告
附1 源程序代码
#include
#define uint unsigned int #define uchar unsigned char
uchar tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f}; //共阴型 uchar wei[]={0xf7,0xfb,0xfd,0xfe}; //位选 void led_show(); uint m=30,n=5; uint a=0; uint b=0;
uchar k,w,c,d,f,g; sbit ko1=P3^6; sbit ko2=P3^7; sbit ki1=P0^5; sbit ki2=P0^6; sbit ki3=P0^7; sbit dh=P2^6; sbit dl=P3^2; sbit dy=P2^7; sbit xh=P2^0; sbit xl=P2^2; sbit xy=P2^1; sbit nh=P3^3; sbit nl=P3^5; sbit ny=P3^4; sbit bh=P2^3; sbit bl=P2^5; sbit by=P2^4;
void Delay5ms() {
unsigned char i, j; i = 54; j = 199; do {
while (--j);
//@11.0592MHz 17
18 河南理工大学本科课程设计报告
} while (--i);
}
void delays(uint t) {
uint i,j;
for(i=t;i>0;i--)
for(j=10;j>0;j--); }
void show() { d=(m+n); f=(2*m+n); g=(2*m+2*n);
if(b
P0=wei[0];
P1=tab[(m-b)]; delays(15); P0=wei[1];
P1=tab[(m-b)0/10]; delays(10); P0=wei[2];
P1=tab[(m-b)00/100]; delays(10); P0=wei[3];
P1=tab[(m-b)/1000]; delays(10);
}
if(b
P0=wei[0];
P1=tab[(d-b)]; delays(15); P0=wei[1];
P1=tab[(d-b)0/10];
delays(10);
18
19 河南理工大学本科课程设计报告
P0=wei[2];
P1=tab[(d-b)00/100]; delays(10); P0=wei[3];
P1=tab[(d-b)/1000]; delays(10); }
if(b
P0=wei[0];
P1=tab[(f-b)]; delays(10); P0=wei[1];
P1=tab[(f-b)0/10];
delays(10); P0=wei[2];
P1=tab[(f-b)00/100]; delays(10); P1=tab[(f-b)/1000]; delays(10); }
if(b
P0=wei[0];
P1=tab[(g-b)]; delays(10); P0=wei[1];
P1=tab[(g-b)0/10]; delays(10);
P1=tab[(g-b)00/100]; delays(10); P0=wei[2];
P1=tab[(g-b)/1000]; delays(10);
19
P0=wei[3];
P0=wei[2];
20 河南理工大学本科课程设计报告
}
}
void keys(uchar r) {
if(r==2) // 调m {
delays(10); if(r==2) m++;
delays(10); while(r!=2); }
if(r==3) { delays(10); if(r==3) m--;
delays(10); while(r!=3); } if(r==5) // 调n { delays(10); if(r==5) n++;
delays(10); while(r!=5); } if(r==6) { delays(10); if(r==6) n--;
delays(10);
while(r!=6);}} uchar key() {
20