Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * AVRGCC1.c
- *
- * Created: 2018-04-27 08:43:39
- * Author: student
- */
- #define F_CPU 16000000UL
- #include <avr/io.h>
- #include <lcd.h>
- void clear_lcd(){
- pisz_com(0b10000000);
- for(int i=0;i<16;i++){
- pisz_ws(' ');
- }
- pisz_com(0b11000000);
- for(int i=0;i<16;i++){
- pisz_ws(' ');
- }
- }
- void napisz_litere(char c){
- switch(c){
- case 0x3A: c = 'A'; break;
- case 0x3B: c = 'B'; break;
- case 0x3C: c = 'C'; break;
- case 0x3D: c = 'D'; break;
- case 0x3E: c = 'E'; break;
- case 0x3F: c = 'F'; break;
- }
- pisz_ws(c);
- }
- void napisz_napis(char * tekst){
- while(*tekst != '\0'){
- pisz_ws(*tekst);
- tekst++;
- }
- }
- int main(void)
- {
- char* tekst = " Lab. 0-proc ";
- char byt;
- int stan = 0;
- int a = 255;
- int address = 0;
- int kroki = 0;
- int numbers[16];
- char byess[64];
- tekst[7] = 228;
- MCUCR = _BV(SRE) | MCUCR | _BV(SRW10) ;
- XMCRA = _BV(SRW00) | _BV(SRW01) | _BV(SRW11) | XMCRA;
- DDRD = 0x00; // Wszystkie linie portu D będą wejściami
- PORTD = 0xFF;
- DDRE = 0xFF;
- MMnet104_CONF = 0x13;
- _delay_ms(20);
- COMM_LCD = 0x30;
- _delay_ms(5);
- COMM_LCD = 0x30;
- _delay_ms(1);
- COMM_LCD = 0x30;
- _delay_ms(20);
- COMM_LCD = 0b00111000;
- _delay_ms(20);
- COMM_LCD = 0b00001100;
- _delay_ms(20);
- COMM_LCD = 0b00000001;
- _delay_ms(20);
- COMM_LCD = 0b00000110;
- _delay_ms(20);
- clear_lcd();
- pisz_com(0b10000000);
- clear_lcd();
- while(1)
- {
- byt = iB_reset();
- clear_lcd();
- pisz_com(0b10000000);
- if (byt) {
- napisz_napis("Kod pastylki");
- if (stan % 2 == 0) PORTE |= _BV(1);
- else PORTE = PORTE & ~_BV(1);
- stan++;
- PORTE = PORTE & ~_BV(2);
- _delay_ms(500);
- }
- else {
- napisz_napis("Kod pastylki");
- PORTE = PORTE & ~_BV(1);
- PORTE |= _BV(2);
- {
- iB_send_bit(1);
- iB_send_bit(1);
- iB_send_bit(0);
- iB_send_bit(0);
- iB_send_bit(1);
- iB_send_bit(1);
- iB_send_bit(0);
- iB_send_bit(0);
- for(int i=0;i<64;i++){
- byess[i] = iB_recv();
- }
- a =3;
- pisz_com(0b11000000);
- for(int i=0;i<16;i++){
- numbers[i] = 1*byess[4*i]+ 2*byess[4*i+1] + 4*byess[4*i+2] + 8*byess[4*i+3];
- napisz_litere(numbers[i]+0x30);
- }
- }
- _delay_ms(3000);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement