欢迎光临散文网 会员登陆 & 注册

【年度报告】你若安好QvQ那还得了的2021时光机

2023-02-28 10:24 作者:你若安好QvQ那还得了  | 我要投稿

四、编程控制

(include "reg52.h"

214!

Hefine SI2E 4

(/#define SIMULATE

//仿真时将此行注释掉

unsigned char code table[]=//显示0-9 A-E

{ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,

0x07,0x7f,0x6f,0x77,0x7C,

0x39,0x5E,0x79,0x71 1;

10

D

11 Led=P2^0;

12

13

unsigned char idata index;

14 unsigned char idata buff[2];

15

/ buff[0]:接收数据个数;

buff[1]:接收的数据

16

/1 buff[2]:接收数据个数,

buff[3」:接收的数据

17

void SndCom(char ch);

18

void Disp(unsigned char n);

19

2o

//定时TO ,中断服务用于独立循环显示发送接收数据

接收和发送的数据只要存放到数组 buf[4」中,

22

主程序不用管,由本中断T0 程序自动显示。

23

/否则,必须在生程序中不断调用显宗程岸】

24

void TimeO() interrupt 1

25月1

26

Disp(index);

27

index++; index*=4;

28

2e

7/每个字符按高、低四位十六进制数显示

30

77.输入参数:unsigned char n :首左起显示位(0-7)

31

7/返回參数:无

32

void Disp(unsigned char n)

33日{ unsigned char i,SHOW2:]

34

i=n/2;

7/显示字符下标,每个字符显示高低两段

3s

//要显示的字符 buf[i];

3o

if(ns2)

SHOWi-buff[i]&0xf;

//低四位

37

else

SHOWi=(buff[i]>>4)&0xf;//高四位

38自

#ifdef SIMULATE

3e

SHOWi=table[SHOWi];

// SHOWi转换为可显示的数据

eo

#else

SHOWi=~table[SHOWi]:

// SHOWi转换为可显示的数据

42

#endif

43

P2=0xff; // 关闭显示

PO= SHOWi;

// 将显示码送段显示

A5

i-1<<(n+4);

// 显示第 n 个 7段数码模块

46

P2-i^Oxff;

//使对应的显示段位为0,其它不显示的为1

48

49

//串口接收中断

50

51 void inittimers() // 初始化

52甲i char i;

53

// 初始化定时器0 和定时器1

54

TYOD=OX22;//定时器0 显示,定时器1波特率

55

TL1=0Xfd;//定时初值

9600 波特

56

TH1=oXfd;

7

ET1=0;//不允许定时中断

s8

TR1=1;// 启动定时器1」

6s

TLO=OX0;// 定时初值

60

THO=OXO;

61

ETO=1;//允许定时中断

62

EA-1;// 开总中断」

63

TRO=1;//启动定时

64

65

// 初始化串行口

66

SCON=0x50;

//.申行通信方式1,10位通信,

67

//波特率由T1滋出率确定。启动申行口接收数据

68

PCoN=0x00;

//波特率不加倍

ee

(11.0592MHz/12)/32/9600=3

256-3=253=FDH

70

TI=1;

/1,预置发送为空

m

ES=1;

/1.允许串行口中断

12

//键盘中断初始化

【年度报告】你若安好QvQ那还得了的2021时光机的评论 (共 条)

分享到微博请遵守国家法律