中微CMS79F133学习记录(一)IO口

一简单介绍

        CMS79F133是8位RISC内核MCU单片机,有16个引脚,其有3个IO端口,分别是PORTA、PORTB、PORTC

        下图是3个IO端口的管脚描述

二创建工程 

        这是CMS IDE的主界面,CMS IDE是中微开发的一个环境软件

 

        点击工程,新建工程,取工程名和工程所在的目录

        选择MCU型号为CMS79F133,内部振荡频率选择16M,其余的默认即可,最后点击确定

         

        点击右上角的新建,创建文档,点左上角的保存,将文档名改为io.c,点击保存

        右击左上角的源文件,点击添加文件到工程,打开文件

三代码部分

        这是必须包含的头文件,类似51单片机的<reg52.h> 

#include <cms.h>    //芯片头文件,会根据工程选项自动寻找对应型号头文件

        asm("nop");
        asm("clrwdt");

        这两行是汇编语言,分表表示无操作和清空看门狗定时器

        OPTION_REG =0; 
        OSCCON = 0X71; 

        这两行是时钟频率的设置,具体的意思会在第二部分定时器里面讲

        WPUA = 0B00000000;                //配置上拉,1为使能上拉
        WPUB = 0B00000000;
        TRISA = 0B00000000;                //配置IO状态,0为输出,1为输入
        TRISB = 0B00000000;

        这部分是IO的初始化配置,上面两行是配置上拉的,下面两行是配置输入输出

        PORTA =~PORTA;
        RB1=1;
        RB2=~RB2;

        这部分就是IO的具体操作的,第一句是PORTA的IO口整体翻转,第二句是单独控制某一个IO的状态,第三句是单独控制某一个IO口翻转

void main(void)
{
	asm("nop");
	asm("clrwdt");
	
	OPTION_REG =0;					//预分频给TMR0  
	OSCCON = 0X71;					//内部振荡器Fosc/1
	
	WPUA = 0B00000000;				//配置上拉,1为使能上拉
	WPUB = 0B00000000;
	
	TRISA = 0B00000000;				//配置IO状态,0为输出,1为输入
	TRISB = 0B00000000;
			
	while(1)
	{
		
		PORTA =~PORTA;
        RB1=1;
        RB2=~RB2;	
	}
}

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
以下是使用中微电子单片机的3个IO控制6个LED灯的程序示例,同样使用了第一种方式,即使用74HC238译码器: ```c #include "HT66F70A.h" #define LED_PORT P13 #define ADDR_PORT P14 void GPIO_Config(void); void Delay(uint32_t count); int main(void) { GPIO_Config(); while (1) { // 点亮第1个LED灯 PORT_Write(ADDR_PORT, 0x01); PORT_Write(LED_PORT, 0x01); Delay(100000); // 点亮第2个LED灯 PORT_Write(ADDR_PORT, 0x02); PORT_Write(LED_PORT, 0x02); Delay(100000); // 点亮第3个LED灯 PORT_Write(ADDR_PORT, 0x04); PORT_Write(LED_PORT, 0x04); Delay(100000); // 点亮第4个LED灯 PORT_Write(ADDR_PORT, 0x01); PORT_Write(LED_PORT, 0x08); Delay(100000); // 点亮第5个LED灯 PORT_Write(ADDR_PORT, 0x02); PORT_Write(LED_PORT, 0x10); Delay(100000); // 点亮第6个LED灯 PORT_Write(ADDR_PORT, 0x04); PORT_Write(LED_PORT, 0x20); Delay(100000); } } void GPIO_Config(void) { PORT_InitTypeDef PORT_InitStructure; // 配置LED引脚为推挽输出 PORT_InitStructure.PORT_Pin = 0x3F; // P13的6位和P14的3位 PORT_InitStructure.PORT_Mode = PORT_Mode_OUT; PORT_InitStructure.PORT_OutType = PORT_OutType_PP; PORT_InitStructure.PORT_Speed = PORT_Speed_10MHz; PORT_Init(LED_PORT, &PORT_InitStructure); // 配置地址引脚为推挽输出 PORT_InitStructure.PORT_Pin = 0x07; // P14的3位 PORT_InitStructure.PORT_Mode = PORT_Mode_OUT; PORT_InitStructure.PORT_OutType = PORT_OutType_PP; PORT_InitStructure.PORT_Speed = PORT_Speed_10MHz; PORT_Init(ADDR_PORT, &PORT_InitStructure); } void Delay(uint32_t count) { for(uint32_t i = 0; i < count; i++); } ``` 需要注意的是,此程序只是一个示例,具体的引脚配置和控制方式需要根据实际情况进行修改。同时,需要根据实际使用的译码器型号,确定地址引脚的数量和连接方式。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值