#define MAIN_Fosc 22118400L //定义主时钟
#include "STC15Fxxxx.H"
/********* 功能说明 ***程序使用P4.7 P4.6 P1.6 P1.7 来演示跑马灯,输出低驱动。********/
void delay_ms(u8 ms);
/******************** 主函数 ******************/
void main(void)
{
P0M1 = 0; P0M0 = 0; //设置为准双向口
P1M1 = 0; P1M0 = 0; //设置为准双向口
P2M1 = 0; P2M0 = 0; //设置为准双向口
P3M1 = 0; P3M0 = 0; //设置为准双向口
P4M1 = 0; P4M0 = 0; //设置为准双向口
P5M1 = 0; P5M0 = 0; //设置为准双向口
P6M1 = 0; P6M0 = 0; //设置为准双向口
P7M1 = 0; P7M0 = 0; //设置为准双向口
while(1)
{
P17 = 0;
delay_ms(250);
delay_ms(250);
P17 = 1;
P16 = 0;
delay_ms(250);
delay_ms(250);
P16 = 1;
P47 = 0;
delay_ms(250);
delay_ms(250);
P47 = 1;
P46 = 0;
delay_ms(250);
delay_ms(250);
P46 = 1;
}
}
void delay_ms(u8 ms)
{
u16 i;
do{
i = MAIN_Fosc / 13000;
while(--i) ; //14T per loop
}while(--ms);
}

关键字:C语言 跑马灯程序 双向口
编辑:什么鱼 引用地址:用C语言写一个跑马灯程序
推荐阅读
pid算法温度控制c语言程序
温度控制PID自整定原理介绍 整定PID(三模式)控制器 整定温度控制器涉及设置比例、积分和微分值,以得到对特定过 程的可能的最佳控制。如果控制器不包含自动整定算法,或者自 动整定算法未提供适合特定应用的足够控制,则必须用试误法对 装置进行整定。 下面是温度控制器的标准整定步骤。也可以采用其他整定步骤, 但都使用类似的试误法。请注意,如果控制器使用机械式继电器(而非固态继电器),开始时应使用较长的循环时间(20秒)。 可能需要用到以下定义 : 循环时间 – 也称为工作周期,是控制器完成一个通断循环所 用的总时间长度。示例: 对于20秒的循环时间,10秒接通时 间和10秒切断时间代表50%的功率输出。在比例带内时,控 制
发表于 2023-03-21
如何使用C语言实现51单片机模拟I2C总线
电路原理图EEPROM为ATMEL公司的AT24C01A。单片机为ATMEL公司的AT89C51。软件说明C语言为Franklin C V3.2。将源程序另存为testi2c.c,用命令C51 testi2c.cL51 TESTI2C.OBJOHS51 TESTI2C编译,连接,得到TESTI2C.HEX文件,即可由编程器读入并进行写片,实验。3.源程序#include 《reg51.h》#include 《intrins.h》#define uchar unsigned char#define uint unsigned int#defineAddWr 0xa0 /*器件地址选择及写标志*/#define AddRd 0xa1 /
发表于 2023-03-21
用C语言写一个红外遥控发射接收程序
红外接收程序。适用于市场上用量最大的NEC编码。应用层查询 B_IR_Press标志为,则已接收到一个键码放在IR_code中, 处理完键码后, 用户程序清除B_IR_Press标志数码管左起4位显示用户码, 最右边两位显示数据, 均为十六进制.#define MAIN_Fosc 22118400L //定义主时钟#define SysTick 10000 // 次/秒, 系统滴答频率, 在4000~16000之间#include "STC15Fxxxx.H"#define DIS_DOT 0x20#define DIS_BLACK 0x10#define DIS_ 0x11#define Timer0_Relo
发表于 2023-01-30
用C语言写一个LCD1602驱动显示程序
#define MAIN_Fosc 22118400L#include "STC15Fxxxx.H"sbit P_HC595_SER = P4^0;sbit P_HC595_RCLK = P5^4;sbit P_HC595_SRCLK = P4^3;u8 hour,minute,second;void DisplayRTC(void);void RTC(void);void delay_ms(u8 ms);void DisableHC595(void);void Initialize_LCD(void);void Write_AC(u8 hang,u8 lie);void Write_DIS_Data(u8 DI
发表于 2023-01-30
用C语言写一个看门狗程序测试
用STC的MCU的IO方式控制74HC595驱动8位数码管。用户可以修改宏来选择时钟频率.显示效果为: 显示秒计数, 5秒后不喂狗, 等复位.#define MAIN_Fosc 22118400L //定义主时钟#include "STC15Fxxxx.H"#define DIS_DOT 0x20#define DIS_BLACK 0x10#define DIS_ 0x11#define Timer0_Reload (65536UL -(MAIN_Fosc / 1000)) //Timer 0 中断频率, 1000次/秒u8 code t_display[]={ //标准字库// 0 1 2 3 4 5 6 7
发表于 2023-01-13
用C语言写一个电容感应触摸键程序
使用STC15W408AS的ADC做的电容感应触摸键#include <reg52.h>#include <intrins.h>#define MAIN_Fosc 24000000UL //定义主时钟typedef unsigned char u8;typedef unsigned int u16;typedef unsigned long u32;#define Timer0_Reload (65536UL -(MAIN_Fosc / 600000)) //Timer 0 重装值, 对应300KHZsfr P1ASF = 0x9D; //只写,模拟输入选择sfr ADC_CONTR = 0xBC; //带A
发表于 2023-01-13