[文档下载] N76E003AT20单片机串口

[复制链接]
 楼主| claretttt 发表于 2024-7-25 09:05 | 显示全部楼层 |阅读模式


  1. #include "n76e003.h"
  2. #include "stdio.h"
  3. #define uint32 unsigned int
  4. //typedef unsigned int uint32;
  5. void delay_us(int n) {
  6.         int m;
  7.         for (m=0;m
  8. }
  9. void delay_ms(int j) {
  10.         int k;
  11.         for (k=0;k
  12.         delay_us(1000);
  13. }
  14. void P0_P1_Mode(void) {
  15.         P0M1=0x3A;  P0M2=0x3B;  //设置P0
  16.         P1M1=0xA0;  P1M2=0xBF;  //设置P1
  17. }
  18. sbit s1 = P0^0;
  19. sbit s2 = P1^0;
  20. sbit s3 = P1^1;
  21. sbit s4 = P1^2;
  22. sbit s5 = P1^3;
  23. sbit s6 = P1^4;
  24. void UART0_Init(uint32 Baud)        //设置串口0 {
  25.         P0_P1_Mode();
  26.         ES=1;                                //使能所有中断
  27.         ES=1;                //串口0中断使能
  28.         ET1=0;                                //关闭定时器1中断
  29.         SCON = 0x52;         //串口0选择模式1 SM0=0 SM1=1  REN=1  TI=1
  30.         T3CON|=0x00;                 //选择定时器1                     BRCK=0
  31.         PCON |=0x80;                    //定时器1的波特率加倍             SMOD=1
  32.         CKCON|=0x10;                        //定时器1的时钟源为系统时钟         T1M=1
  33.         TMOD |=0x20;         //定时器1选择模式2 8位计数器,数值从TH1自动重装载入TL1        M1=1 M0=0  2^8=256
  34.         #ifdef FOSC_160000
  35.         TH1 = 256 - (1000000/Baud+1);                        
  36.         /*16 MHz */
  37.         #endif
  38.         TCON |=0x40;                   //定时器1启动                TR1=1
  39. }
  40. void Send_Data_UART0(int a) {
  41.         TI=0;
  42.         SBUF=a;                     //串口0数据缓存寄存器
  43.         while(TI==0);
  44. }
  45. int main() {
  46.         s1=1;
  47.         s2=1;
  48.         s3=1;
  49.         s4=1;
  50.         s5=1;
  51.         s6=1;
  52.         UART0_Init(9600);
  53.         while(1) {
  54.                 if(s1=0) {
  55.                         Send_Data_UART0(1);
  56.                 }
  57.                 delay_ms(10);
  58.                 if(s2=0) {
  59.                         Send_Data_UART0(2);
  60.                 }
  61.                 delay_ms(10);
  62.                 if(s3=0) {
  63.                         Send_Data_UART0(3);
  64.                 }
  65.                 delay_ms(10);
  66.                 if(s4=0) {
  67.                         Send_Data_UART0(4);
  68.                 }
  69.                 delay_ms(10);
  70.                 if(s5=0) {
  71.                         Send_Data_UART0(5);
  72.                 }
  73.                 delay_ms(10);
  74.                 if(s6=0) {
  75.                         Send_Data_UART0(6);
  76.                 }
  77.                 delay_ms(10);
  78.         }
  79. }


jiekou001 发表于 2024-7-25 22:52 | 显示全部楼层
这个51挺好用的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

73

主题

1658

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部