📄 text1
字号:
/************************************************************************
HELLO.C
测试Keil C51源程序仿真版及串行口例子程序,需要调用对板上LED接口芯片
MAX7219进行初始化的汇编语言程序:DINPUT.A51和DISPLY.A51
*************************************************************************/
#include <REG52.H>
#include <stdio.h>
/*------------------------------------------------------------------------
定义外部汇编语言子程序:
DINPUT为MAX7219初始化命令写入子程序,其中参数aa为MAX7219内部寄存器地址,参数bb为待写入的命令。
DISPLY为MAX7219显示子程序,其中参数 *cc 为显示缓冲区首地址。
------------------------------------------------------------------------*/
extern void DINPUT(unsigned char aa, unsigned char bb); /* 外部A51程序 */
extern void DISPLY(unsigned char data * cc);
/* ------------------------------------------------------------------
定义在Keil C51源程序仿真版上LED显示的"HELLO"字符数据
---------------------------------------------------------------------*/
static unsigned char dg[]=
{0x37,0x4f,0x0e,0x0e,0x7e,0x00,0x00,0x00};
/*---------------------------------------------------------------------
使用Keil C51源程序仿真版时,若希望用Debug中的Stop按钮停止运行用
户程序,则需要如下语句来保留串行中断入口
---------------------------------------------------------------------*/
#ifdef MONITOR51
char code reserve [3] _at_ 0x23;
#endif
/* 主函数 */
void main (void) {
/* ---------------------------------------------------------------------
不使用Keil C51源程序仿真版时,需要初始化串行口,以便从Debug的串行
窗口输出字符串:"HELLO"
------------------------------------------------------------------------*/
#ifndef MONITOR51
SCON = 0x50; /* 设置SCON: 方式1,8位UART, 允许接收 */
TMOD |= 0x20; /* 设置TMOD: 使用T1, 方式2, 8位自动重装初值 */
TH1 = 0xFD; /* 设置TH1初值: 使用11.05MHz晶振,9600波特率 */
TR1 = 1; /* 启动T1 */
TI = 1;
#endif
/*-------------------------------------------------------------
初始化MAX7219 并显示"HELLO"字符
--------------------------------------------------------------*/
DINPUT(0X0A,0X07); /* 将命令0x07写入7219亮度寄存器 */
/* 使占空比为15/32 */
DINPUT(0X0B,0X07); /* 将命令0x07写入7219扫描界限寄存器 */
/* 设置为8位 显示方式 */
DINPUT(0X09,0X00); /* 将命令0x00写入7219译码方式寄存器 */
/* 设置为BCD 译码方式 */
DINPUT(0X0c,0X01); /* 将命令0x0写入7219停机寄存器 */
/* 设置为正常工作状态 */
DISPLY(&dg[0]); /* 在 C51 仿真板上显示 HELLO */
while (1) {
printf ("Hello World\n"); /* 在UV2串行口显示Hello World */
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -