打印
[文档下载]

N76E003AT20单片机串口

[复制链接]
696|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
claretttt|  楼主 | 2024-7-25 09:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


#include "n76e003.h"
#include "stdio.h"
#define uint32 unsigned int
//typedef unsigned int uint32;
void delay_us(int n) {
        int m;
        for (m=0;m
}
void delay_ms(int j) {
        int k;
        for (k=0;k
        delay_us(1000);
}
void P0_P1_Mode(void) {
        P0M1=0x3A;  P0M2=0x3B;  //设置P0
        P1M1=0xA0;  P1M2=0xBF;  //设置P1
}
sbit s1 = P0^0;
sbit s2 = P1^0;
sbit s3 = P1^1;
sbit s4 = P1^2;
sbit s5 = P1^3;
sbit s6 = P1^4;
void UART0_Init(uint32 Baud)        //设置串口0 {
        P0_P1_Mode();
        ES=1;                                //使能所有中断
        ES=1;                //串口0中断使能
        ET1=0;                                //关闭定时器1中断
        SCON = 0x52;         //串口0选择模式1 SM0=0 SM1=1  REN=1  TI=1
        T3CON|=0x00;                 //选择定时器1                     BRCK=0
        PCON |=0x80;                    //定时器1的波特率加倍             SMOD=1
        CKCON|=0x10;                        //定时器1的时钟源为系统时钟         T1M=1
        TMOD |=0x20;         //定时器1选择模式2 8位计数器,数值从TH1自动重装载入TL1        M1=1 M0=0  2^8=256
        #ifdef FOSC_160000
        TH1 = 256 - (1000000/Baud+1);                        
        /*16 MHz */
        #endif
        TCON |=0x40;                   //定时器1启动                TR1=1
}
void Send_Data_UART0(int a) {
        TI=0;
        SBUF=a;                     //串口0数据缓存寄存器
        while(TI==0);
}
int main() {
        s1=1;
        s2=1;
        s3=1;
        s4=1;
        s5=1;
        s6=1;
        UART0_Init(9600);
        while(1) {
                if(s1=0) {
                        Send_Data_UART0(1);
                }
                delay_ms(10);
                if(s2=0) {
                        Send_Data_UART0(2);
                }
                delay_ms(10);
                if(s3=0) {
                        Send_Data_UART0(3);
                }
                delay_ms(10);
                if(s4=0) {
                        Send_Data_UART0(4);
                }
                delay_ms(10);
                if(s5=0) {
                        Send_Data_UART0(5);
                }
                delay_ms(10);
                if(s6=0) {
                        Send_Data_UART0(6);
                }
                delay_ms(10);
        }
}


使用特权

评论回复
沙发
jiekou001| | 2024-7-25 22:52 | 只看该作者
这个51挺好用的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

33

主题

1264

帖子

0

粉丝