| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 539 人关注过本帖
标题:这个程序用c语言怎么改写
只看楼主 加入收藏
我的世界123
Rank: 1
等 级:新手上路
帖 子:43
专家分:1
注 册:2013-10-14
结帖率:81.82%
收藏
已结贴  问题点数:20 回复次数:4 
这个程序用c语言怎么改写
#include "exti.h"
#include "control.h"
//#include "key.h"
#include "delay.h"
#include "usart.h"
//////////////////////////////////////////////////////////////////////////////////     
//本程序只供学习使用,未经作者许可,不得用于其它任何用途
//Mini STM32开发板
//外部中断 驱动代码               
//正点原子@ALIENTEK
//技术论坛:www.
//修改日期:2010/12/01  
//版本:V1.0
//版权所有,盗版必究。
//Copyright(C) 正点原子 2009-2019
//All rights reserved      
//////////////////////////////////////////////////////////////////////////////////      
/*===============================================================================
        全局变量
================================================================================*/
u8 ControlFlag =0;            //开关控制标志
u8 Reset1Flag = 0;             //复位开关K1标志
u8 Reset2Flag = 0;               //复位开关K2标志
u8 ServerFlag = 0;               //服务器+5V标志
u8 SwitchFlagLong = 0;      //机器总开关长按     
u8 SwitchFlagShort = 0;     //机器总开关短按

//外部中断1服务程序      总开关
void EXTI1_IRQHandler(void)
{   
     u8 i;
    delay_ms(30);//消抖
    if(KEY1 == 1)
    {
#ifdef _DEVICEFLAG_   
        
    for(i=0;i<2;i++)
    {
        delay_ms(1000);
    }
    if(KEY1 == 0)     //按键2
    {
        ControlFlag = 2;
    }
    else if(KEY1 == 1)
    {
        ControlFlag = 1;
    }         
#else
    if(KEY1 == 1)
    {
        ControlFlag = 1;
    }
#endif
}
    EXTI->PR=1<<1;  //清除LINE1上的中断标志位  
}
//外部中断2服务程序     复位开关2
void EXTI2_IRQHandler(void)
{    u8 i;
    delay_ms(30);
    if(KEY2 == 1)
    {
    for(i=0;i<2;i++)
    {
        delay_ms(1000);
    }
    if(KEY2 == 0)
    {
        ControlFlag = 6;
    }
    else if (KEY2 == 1)
    {
        ControlFlag = 5;   
    }
    }
    EXTI->PR=1<<2;  //清除LINE2上的中断标志位
}
//外部中断3服务程序    复位开关1
void EXTI3_IRQHandler(void)
{    u8 i;
    delay_ms(30);
    if(KEY3 == 1)
    {
    for(i=0;i<2;i++)
    {
        delay_ms(1000);
    }
    if(KEY3 == 0)
    {
        ControlFlag = 4;
    }
    else if(KEY3 == 1)
    {
        ControlFlag = 3;
    }
    }
    EXTI->PR=1<<3;  //清除LINE3上的中断标志位
}

//外部中断初始化程序
//初始化PA0,PA1,PA2,PA3为中断输入.
void EXTIX_Init(void)
{
    RCC->APB2ENR|=1<<2;     //使能PORTA时钟
//    JTAG_Set(JTAG_SWD_DISABLE);//关闭JTAG和SWD   

    GPIOA->CRL&=0XFFFF0000;//PA0,PA1,PA2,PA3设置成输入      
    GPIOA->CRL|=0X00008888;   
//    GPIOA->CRH&=0X0F0FFFFF;//PA13,15设置成输入      
//    GPIOA->CRH|=0X80800000;                    
//    GPIOA->ODR|=1<<13;       //PA13上拉,PA0默认下拉
//    GPIOA->ODR|=1<<15;       //PA15上拉

//    Ex_NVIC_Config(GPIO_A,0,RTIR); //上升沿触发
    Ex_NVIC_Config(GPIO_A,1,RTIR); //上升沿触发
    Ex_NVIC_Config(GPIO_A,2,RTIR); //上升沿触发
    Ex_NVIC_Config(GPIO_A,3,RTIR); //上升沿触发
    MY_NVIC_Init(2,1,EXTI1_IRQChannel,2);    //抢占2,子优先级2,组2
    MY_NVIC_Init(2,2,EXTI2_IRQChannel,2);     //抢占2,子优先级2,组2
    MY_NVIC_Init(2,2,EXTI3_IRQChannel,2);     //抢占2,子优先级2,组2
//    MY_NVIC_Init(2,1,EXTI15_10_IRQChannel,2);//抢占2,子优先级1,组2      
}
芯片为at89c51
搜索更多相关主题的帖子: c语言 include Copyright 版权 
2013-11-11 10:36
pink_duo
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:209
专家分:1054
注 册:2013-11-5
收藏
得分:12 
这个本身就是C语言写的,属于单片机开发,注释中说使用Mini STM32开发板,你需要开发板及相关编译环境来修改测试该程序功能。

埋头做牛,抬头做人,低头做狗
2013-11-11 11:07
我的世界123
Rank: 1
等 级:新手上路
帖 子:43
专家分:1
注 册:2013-10-14
收藏
得分:0 
回复 2楼 pink_duo
如果用at89c51芯片来编写,怎么办?
2013-11-11 11:25
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:3 
//本程序只供学习使用,未经作者许可,不得用于其它任何用途

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-11-11 12:07
pink_duo
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:209
专家分:1054
注 册:2013-11-5
收藏
得分:5 
回复 3楼 我的世界123
淘宝上买块Mini STM32开发板,不贵,店主给你的资料能要越多越好,没有开发板你程序写的再好没半毛钱用

埋头做牛,抬头做人,低头做狗
2013-11-11 17:35
快速回复:这个程序用c语言怎么改写
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024036 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved