⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serial.c

📁 IO
💻 C
字号:
//Serial.c
//
//Body: HT48C70-1
//Mask option
//WDT : Disable
//the others use the default value

 

#include <ht48c70-1.h>

 

#pragma vector isr_4 @ 0x4
#pragma vector isr_8 @ 0x8
#pragma vector isr_c @ 0xc

 

//ISR for safequard
void isr_4(){} // external ISR
void isr_8(){} // timer/event 0
void isr_c(){} // timer/event 1

 

//initialize registers for safeguard
void safeguard_init(){
        _intc = 0;
        _tmr0c = 0;
        _tmr0h = 0;
        _tmr0l = 0;
        _tmr1c = 0;
        _tmr1h = 0;
        _tmr1l = 0;
        _pac = 0xff;
        _pbc = 0xff;
        _pcc = 0xff;
        _pdc = 0xff;
        _pec = 0xff;
        _pfc = 0xff;
        _pgc = 0xff;
}

 

#define tx   _pa3               //transmit pin
#define rx   _pa2               //receive pin
#define _pac3 _13_3
#define _pac2 _13_2

 

unsigned char data;
unsigned char vall[10] @0x20;

 

void transmit(unsigned char);
void receive(unsigned char *);

 


//system frequency: 4MHz
//#define T 52 //baudrate 19200 = 4M/4/(T) => T = 52
//#define T 104 //baudrate 9600 = 4M/4/(T) => T = 104
//#define T 208 //baudrate 4800 = 4M/4/(T) => T = 208
#define T 416 //baudrate 2400 = 4M/4/(T) => T = 416

 

void main(){
        safeguard_init();
        
        _pac2 = 1;      //set receive pin to input mode
        _pac3 = 0;      //set transmit pin to output mode

 

        while(1)
  {
//                receive(&data);
                transmit(data);
        }
}

 

void transmit(unsigned char val){
        unsigned char i;

 

        tx = 0;
       _delay(T-14);
        for(i=0; i<8; i++)
  {
            if (val & 1) 
    tx = 1;
            else 
    tx = 0;
            val >>= 1;
         _delay(T-14);
        }
        tx = 1;
        _delay(T);
}

 

void receive(unsigned char *val)
{
        unsigned char i,v;

 


        v = 0;
        while(rx);    //wait start bit
        _delay(T);   // 单

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -