Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // keypad
- char keypadPort at PORTD;
- // LCD
- sbit LCD_RS at RB4_bit;
- sbit LCD_EN at RB5_bit;
- sbit LCD_D4 at RB0_bit;
- sbit LCD_D5 at RB1_bit;
- sbit LCD_D6 at RB2_bit;
- sbit LCD_D7 at RB3_bit;
- sbit LCD_RS_Direction at TRISB4_bit;
- sbit LCD_EN_Direction at TRISB5_bit;
- sbit LCD_D4_Direction at TRISB0_bit;
- sbit LCD_D5_Direction at TRISB1_bit;
- sbit LCD_D6_Direction at TRISB2_bit;
- sbit LCD_D7_Direction at TRISB3_bit;
- void main() {
- int repeatCounter = 0;
- int ostatok = 0;
- int counter = 0;
- int cifra;
- int broj;
- char kp;
- char text1[16];
- ansel = 0x20;
- anselh = 0x00;
- trise = 0x01;
- trisb = 0x00;
- Keypad_Init();
- Lcd_Init();
- delay_ms(200);
- Lcd_Cmd(_LCD_CURSOR_OFF);
- Lcd_Cmd(_LCD_CLEAR);ostatok = ADC_Read(5);
- ostatok %= 100;
- eeprom_write(0x00,ostatok);
- do{
- do{
- kp = 0;
- do{
- kp = Keypad_Key_Click();
- }while(!kp);
- switch (kp)
- {
- case 1: cifra = 1; break;
- case 2: cifra = 4; break;
- case 3: cifra = 7; break;
- case 4: cifra = 0; break;
- case 5: cifra = 2; break;
- case 6: cifra = 5; break;
- case 7: cifra = 8; break;
- case 8: cifra = 0; break; // cifrata 0
- case 9: cifra = 3; break;
- case 10: cifra = 6; break;
- case 11: cifra = 9; break;
- case 12: cifra = 0; break;
- case 13: cifra = 0; break;
- case 14: cifra = 0; break;
- case 15: cifra = 0; break;
- case 16: cifra = 0; break;
- }
- if(counter<1){
- broj = cifra * 10;
- }else{
- broj += cifra;
- }
- counter ++;
- }while(counter < 2);
- ostatok = eeprom_Read(0x00);
- if(ostatok == broj){
- LCD_CMD(_LCD_CLEAR);
- LCD_OUT(1,1,"Tocna shifra!");
- repeatCounter = 2;
- }else if(repeatCounter == 0){
- IntToStr(abs(ostatok - broj),text1);
- LCD_CMD(_LCD_CLEAR);
- LCD_OUT(1,1,text1);
- repeatCounter++;
- }else{
- LCD_CMD(_LCD_CLEAR);
- LCD_OUT(1,1,"Greshka");
- repeatCounter = 2;
- }
- counter = 0;
- }while(repeatCounter < 2);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement