中北大学2014届毕业设计说明书
附录2:程序
#include
#include
#define uchar unsigned char #define uint unsigned int /*P3.2 P3.3 P3.5 sbit KK_i=P2^0; sbit KK_k=P1^1; sbit KK_g=P1^2; sbit JD_i=P1^3; sbit JD_k=P1^4; sbit JD_g=P1^5; //P2.2~P2.4
unsigned char code table[]={'0','1','2','3','4','5','6','7','8','9'}; uint i,i1,i2,k,k1,k2,g,g1,g2,j; long int JS_t2,SS1;
uchar flag,flagi,flagk,flagg,aa; void main() { KK_i=0; KK_g=0; KK_k=0; i=0; i1=0; i2=0;
LCD_Init(); LCD_Clear(); LCD_Write_Char(4,0,'r'); LCD_Write_Char(5,0,'/'); LCD_Write_Char(6,0,'m'); LCD_Write_Char(7,0,'i'); LCD_Write_Char(8,0,'n');
中北大学2014届毕业设计说明书
LCD_Write_Char(0,1,'A'); LCD_Write_Char(1,1,'D'); LCD_Write_Char(2,1,'C'); LCD_Write_Char(3,1,':'); LCD_Write_Char(5,1,'.'); LCD_Write_Char(9,1,'V'); Init_Timer0(); Init_Timer1(); Init_Timer2(); Init_INT0(); Init_INT1(); EA=1; PT0=1; while(1) {
if(flag==1) { flag=0;
JS_t2=(TH2*256+TL2)*60;
TH2=0;
TL2=0;
LCD_Write_Char(0,0,table[JS_t2/1000]);
LCD_Write_Char(1,0,table[JS_t2/100]);
LCD_Write_Char(2,0,table[JS_t2/10]);
LCD_Write_Char(3,0,table[JS_t2]);
SS1=((TLC549_0()*20));
LCD_Write_Char(8,1,table[SS1]);
LCD_Write_Char(7,1,table[SS1/10]);
中北大学2014届毕业设计说明书
LCD_Write_Char(6,1,table[SS1/100]);
LCD_Write_Char(4,1,table[SS1/1000]);}} }
void Timer0_isr(void) interrupt 1 using 1 {
TH0=(65536-200)/256;
TL0=(65536-200)%6;//定时10uS
j++; if(j==2310) //700-300ms //2310-1s { j=0; flag=1; }
if(flagi==1) { i++; if(i>=48) { i=0; }
if(i<(48-i1)) {
KK_i=0; }
if(i>=(48-i1)) { KK_i=1; } }
if(flagk==1) {
中北大学2014届毕业设计说明书
k++; if(k>=48)
{ k=0; }
if(k<(48-k1)) { KK_k=0; }
if(k>=(48-k1)) { KK_k=1; } }
if(flagg==1) { g++; if(g>=48)
{ g=0; }
if(g<(48-g1)) { KK_g=0; }
if(g>=(48-g1)) { KK_g=1; } } }
/********************************/ /* 定时器1中断 */
/********************************/ void Timer1_isr(void) interrupt 3 using 1 {
中北大学2014届毕业设计说明书
TH1=(65536-1)/256; TL1=(65536-1)%6; flagi=1; i2++; if(i2==32) {
i2=0; i1++; if(i1==48) {
i1=0; TR1=0; flagi=0; JD_i=0 } }
/*------------------------------------------------ 外部中断0程序
------------------------------------------------*/ void INT0_isr(void) interrupt 0 using 1 { k2++; flagk=1; if(k2==32) { k2=0; k1++; }
if(k1==48)
//1000*10us=10s全部启动
{ k1=0; EX0=0; flagk=0;