Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <stdio.h>
- #include <p89lpc9351.h>
- #define B1 P1_3
- #define B2 P1_4
- #define B3 P1_6
- #define HEX0 0x0C0
- #define HEX1 0x0F9
- #define HEX2 0x0A4
- #define HEX3 0x0B0
- #define HEX4 0x099
- #define HEX5 0x092
- #define HEX6 0x082
- #define HEX7 0x0F8
- #define HEX8 0x080
- #define HEX9 0x090
- #define OFF 0x080
- int limit [2];
- void initMC()
- {
- P0M1 = 0;
- P0M2 = 0;
- P1M1 = 0;
- P1M2 = 0;
- P2M1 = 0;
- P2M2 = 0;
- P3M1 = 0;
- P3M2 = 0;
- B1 = 1;
- B2 = 1;
- B3 = 1;
- }
- void display(int num)
- {
- int hexVal[] = {HEX0, HEX1, HEX2, HEX3, HEX4,
- HEX5, HEX6, HEX7, HEX8, HEX9};
- int digit = 0;
- if(num < 0)
- {
- P1_7 = 1;
- num *= -1;
- }
- else
- P1_7 = 0;
- digit = hexVal[num % 10];
- digit ^= 0xFF;
- P0 = digit;
- num /= 10;
- digit = hexVal[num];
- digit ^= 0xFF;
- P2 = digit;
- }
- void mydelay(int ms)
- {
- int i;
- int j;
- for (j=0; j<ms; j++)
- {
- for (i=0; i<1840; i++)
- {
- // do nothing
- }
- }
- }
- void changeLimit (int i, int limit[])
- {
- while (1)
- {
- P0 = OFF;
- P2 = OFF;
- P1_7 = 0;
- mydelay(250);
- display(limit[i]);
- if (B2 == 0){
- limit [i]++;
- if (limit[i]>90)
- {
- limit[i]=-90;
- }
- mydelay(50);
- }
- if (B3 == 0){
- limit [i]--;
- if (limit[i]<-90)
- {
- limit[i]=90;
- }
- mydelay(50);
- }
- if (B1 == 0)
- break;
- }
- }
- void ext_int(void)
- {
- int i = 0;
- while (1)
- {
- mydelay(1000);
- display(limit[i]);
- if (B1 == 0)
- changeLimit(i,limit);
- if (B2 == 0)
- i ^= 1;
- if (B3 == 0)
- break;
- }
- }
- int main (void)
- {
- initMC();
- limit[0] = -90;
- limit[1] = 90;
- while(1)
- {
- display(10);
- if (P1_3 == 0)
- ext_int();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement