User Tools

Site Tools


archive:nmk322

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
archive:nmk322 [2024/11/12 22:56] – [Library: Keypad] azmanarchive:nmk322 [2025/10/01 07:31] (current) – [Lecture Slides] azman
Line 9: Line 9:
 [20241017] Updating this for 202425s1 Academic Session. [20241017] Updating this for 202425s1 Academic Session.
  
-===== Lecture Slides ===== 
- 
-  * Lecture 1 - {{:archive:nmk322:lecture01_overview.pdf|Overview}} 
-  * Lecture 2 - {{:archive:nmk322:lecture02_arch8051.pdf|Architecture}} 
-  * Lecture 3 - {{:archive:nmk322:lecture03_c8051.pdf|C for 8051}} 
-  * Lecture 4 - {{:archive:nmk322:lecture04_gpio.pdf|8051 I/O}} 
  
 ===== Library Codes ===== ===== Library Codes =====
  
 Introduction to using 'library' code. Single header include file(s) meant for single source compilation. These are meant to be compiled using Keil 8051 compiler. Introduction to using 'library' code. Single header include file(s) meant for single source compilation. These are meant to be compiled using Keil 8051 compiler.
 +
 +I recommend to use my include file (mcu51.h) rather than the regular (reg51.h) because it would be easier for you to use my example codes and library. I wrote and tested them using my own syntax that can be used on both Keil and SDCC compilers. Simply extract this {{:archive:nmk322:my1code51inc-20241210.zip|zip file}} and setup the include path. Ask me during lab session if you do not know how to do that.
  
 ==== Library: Serial (UART) ==== ==== Library: Serial (UART) ====
Line 253: Line 249:
 #endif #endif
 #ifndef _ROWS_AT_UPPER_ #ifndef _ROWS_AT_UPPER_
 +#define ROWS_FLAG 0x01
 +#define COLS_FLAG 0x10
 +#else
 #define ROWS_FLAG 0x10 #define ROWS_FLAG 0x10
 #define COLS_FLAG 0x01 #define COLS_FLAG 0x01
-#else 
-#define ROWS_FLAG 0x01 
-#define COLS_FLAG 0x10 
 #endif #endif
  
Line 270: Line 266:
  KEY_DATA = ~mask; test = COLS_FLAG;  KEY_DATA = ~mask; test = COLS_FLAG;
  for (icol=0;icol<4;icol++) {  for (icol=0;icol<4;icol++) {
 + if ((KEY_DATA&test)==0) { 
 + while ((KEY_DATA&test)==0); 
 + if (icol==3) return irow+0x0A; 
 + if (irow==0) return icol+1; 
 + if (irow==1) return icol+4; 
 + if (irow==2) return icol+7; 
 + if (icol==1) return 0; 
 + return (icol>>1)+0x0e; 
 + }
  test <<= 1;  test <<= 1;
  }  }
archive/nmk322.1731423380.txt.gz · Last modified: by azman