Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<dos.h>
- #include<conio.h>
- #include<process.h>
- #define PORT 0x03F8 /* the address of COM1 */
- /* the address offset value relative to COM1 */
- #define THR 0x0000
- #define RDR 0x0000
- #define BRDL 0x0000
- #define IER 0x0001
- #define BRDH 0x0001
- #define LCR 0x0003
- #define MCR 0x0004
- #define LSR 0x0005
- #define MSR 0x0006
- unsigned char rdat[60];
- /* read 2 data from address 2102H of AC drive with address 1 */
- unsigned char tdat[60]={':','0','1','0','3','2','1','0','2',
- '0','0','0','2','D','7','\r','\n'};
- void main(){
- int i;
- outportb(PORT+MCR,0x08); /* interrupt enable */
- outportb(PORT+IER,0x01); /* interrupt as data in */
- outportb(PORT+LCR,(inportb(PORT+LCR) | 0x80));
- /* the BRDL/BRDH can be access as LCR.b7==1 */
- outportb(PORT+BRDL,12); /* set baudrate=9600,
- 12=115200/9600*/
- outportb(PORT+BRDH,0x00);
- outportb(PORT+LCR,0x06); /* set protocol, <7,N,2>=06H
- <7,E,1>=1AH, <7,O,1>=0AH
- <8,N,2>=07H, <8,E,1>=1BH
- <8,O,1>=0BH */
- for(i=0;i<=16;i++){
- while(!(inportb(PORT+LSR) & 0x20)); /* wait until THR empty */
- outportb(PORT+THR,tdat[i]); /* send data to THR */
- }
- i=0;
- while(!kbhit()){
- if(inportb(PORT+LSR) & 0x01){ /* b0==1, read data ready */
- rdat[i++]=inportb(PORT+RDR); /* read data form RDR */
- } } }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement