让atmega8可以和飞思卡尔xs128一样对IO引脚进行定义

发布者:美梦小狮子最新更新时间:2016-12-29 来源: eefocus关键字:atmega8  飞思卡尔  xs128  IO引脚 手机看文章 扫描二维码
随时随地手机看文章

好吧,不得不承认,我使用飞思卡尔的XS128单片机已经非常之习惯了,结果一上手atmega8,最令我反感的就是atmega8不能对IO引脚进行操作,非要用些繁琐的位操作。我就不,我就要像飞思卡尔那样操作。。。


于是。。。。。


把我写的下面这个头文件塞到winavr目录的include/avr中,并在io.h头文件的最后包含这个头文件。


嘿嘿,一切变得是那么的亲切与熟悉。。。。。。


/*********************************************************** 

*  函数库说明:ATMEGE8  

*  版本:      v1.0                                                             

*                                                                                           

************************************************************ 

*注意:  无                                        

***********************************************************/  


#ifndef _BIT_  

#define _BIT_  

  

//定义一个8字节的位段 bit0~7是每个位段名称 1代表一位 PBIT就是整个位段的名称  

typedef struct   

  

{   

     unsigned bit0 : 1 ;   

     unsigned bit1 : 1 ;   

     unsigned bit2 : 1 ;   

     unsigned bit3 : 1 ;   

     unsigned bit4 : 1 ;   

     unsigned bit5 : 1 ;   

     unsigned bit6 : 1 ;   

     unsigned bit7 : 1 ;   

}PBIT;  

  

//强制转换  

  

#define PORTABIT    (*(volatile PBIT *)0x3B)  

#define DDRABIT     (*(volatile PBIT *)0x3A)   

#define PINABIT     (*(volatile PBIT *)0x39)  

  

#define PORTBBIT    (*(volatile PBIT *)0x38)   

#define DDRBBIT     (*(volatile PBIT *)0x37)   

#define PINBBIT     (*(volatile PBIT *)0x36)  

  

#define PORTCBIT    (*(volatile PBIT *)0x35)   

#define DDRCBIT     (*(volatile PBIT *)0x34)   

#define PINCBIT     (*(volatile PBIT *)0x33)  

  

#define PORTDBIT    (*(volatile PBIT *)0x32)   

#define DDRDBIT     (*(volatile PBIT *)0x31)   

#define PINDBIT     (*(volatile PBIT *)0x30)  

  

  

//继续封装  

  

#define PORTA_PA0 PORTABIT.bit0  

#define PORTA_PA1 PORTABIT.bit1  

#define PORTA_PA2 PORTABIT.bit2  

#define PORTA_PA3 PORTABIT.bit3  

#define PORTA_PA4 PORTABIT.bit4  

#define PORTA_PA5 PORTABIT.bit5  

#define PORTA_PA6 PORTABIT.bit6  

#define PORTA_PA7 PORTABIT.bit7  

  

#define PORTB_PB0 PORTBBIT.bit0  

#define PORTB_PB1 PORTBBIT.bit1  

#define PORTB_PB2 PORTBBIT.bit2  

#define PORTB_PB3 PORTBBIT.bit3  

#define PORTB_PB4 PORTBBIT.bit4  

#define PORTB_PB5 PORTBBIT.bit5  

#define PORTB_PB6 PORTBBIT.bit6  

#define PORTB_PB7 PORTBBIT.bit7  

  

#define PORTC_PC0 PORTCBIT.bit0  

#define PORTC_PC1 PORTCBIT.bit1  

#define PORTC_PC2 PORTCBIT.bit2  

#define PORTC_PC3 PORTCBIT.bit3  

#define PORTC_PC4 PORTCBIT.bit4  

#define PORTC_PC5 PORTCBIT.bit5  

#define PORTC_PC6 PORTCBIT.bit6  

#define PORTC_PC7 PORTCBIT.bit7  

  

#define PORTD_PD0 PORTDBIT.bit0  

#define PORTD_PD1 PORTDBIT.bit1  

#define PORTD_PD2 PORTDBIT.bit2  

#define PORTD_PD3 PORTDBIT.bit3  

#define PORTD_PD4 PORTDBIT.bit4  

#define PORTD_PD5 PORTDBIT.bit5  

#define PORTD_PD6 PORTDBIT.bit6  

#define PORTD_PD7 PORTDBIT.bit7  

  

  

//**********************  

#define DDRA_DDRA0 DDRABIT.bit0  

#define DDRA_DDRA1 DDRABIT.bit1  

#define DDRA_DDRA2 DDRABIT.bit2  

#define DDRA_DDRA3 DDRABIT.bit3  

#define DDRA_DDRA4 DDRABIT.bit4  

#define DDRA_DDRA5 DDRABIT.bit5  

#define DDRA_DDRA6 DDRABIT.bit6  

#define DDRA_DDRA7 DDRABIT.bit7  

  

#define DDRB_DDRB0 DDRBBIT.bit0  

#define DDRB_DDRB1 DDRBBIT.bit1  

#define DDRB_DDRB2 DDRBBIT.bit2  

#define DDRB_DDRB3 DDRBBIT.bit3  

#define DDRB_DDRB4 DDRBBIT.bit4  

#define DDRB_DDRB5 DDRBBIT.bit5  

#define DDRB_DDRB6 DDRBBIT.bit6  

#define DDRB_DDRB7 DDRBBIT.bit7  

  

#define DDRC_DDRC0 DDRCBIT.bit0  

#define DDRC_DDRC1 DDRCBIT.bit1  

#define DDRC_DDRC2 DDRCBIT.bit2  

#define DDRC_DDRC3 DDRCBIT.bit3  

#define DDRC_DDRC4 DDRCBIT.bit4  

#define DDRC_DDRC5 DDRCBIT.bit5  

#define DDRC_DDRC6 DDRCBIT.bit6  

#define DDRC_DDRC7 DDRCBIT.bit7  

  

#define DDRD_DDRD0 DDRDBIT.bit0  

#define DDRD_DDRD1 DDRDBIT.bit1  

#define DDRD_DDRD2 DDRDBIT.bit2  

#define DDRD_DDRD3 DDRDBIT.bit3  

#define DDRD_DDRD4 DDRDBIT.bit4  

#define DDRD_DDRD5 DDRDBIT.bit5  

#define DDRD_DDRD6 DDRDBIT.bit6  

#define DDRD_DDRD7 DDRDBIT.bit7  

//*****************  

  

#define PINA_PA0 PINABIT.bit0  

#define PINA_PA1 PINABIT.bit1  

#define PINA_PA2 PINABIT.bit2  

#define PINA_PA3 PINABIT.bit3  

#define PINA_PA4 PINABIT.bit4  

#define PINA_PA5 PINABIT.bit5  

#define PINA_PA6 PINABIT.bit6  

#define PINA_PA7 PINABIT.bit7  

  

#define PINB_PB0 PINBBIT.bit0  

#define PINB_PB1 PINBBIT.bit1  

#define PINB_PB2 PINBBIT.bit2  

#define PINB_PB3 PINBBIT.bit3  

#define PINB_PB4 PINBBIT.bit4  

#define PINB_PB5 PINBBIT.bit5  

#define PINB_PB6 PINBBIT.bit6  

#define PINB_PB7 PINBBIT.bit7  

  

#define PINC_PC0 PINCBIT.bit0  

#define PINC_PC1 PINCBIT.bit1  

#define PINC_PC2 PINCBIT.bit2  

#define PINC_PC3 PINCBIT.bit3  

#define PINC_PC4 PINCBIT.bit4  

#define PINC_PC5 PINCBIT.bit5  

#define PINC_PC6 PINCBIT.bit6  

#define PINC_PC7 PINCBIT.bit7  

  

#define PIND_PD0 PINDBIT.bit0  

#define PIND_PD1 PINDBIT.bit1  

#define PIND_PD2 PINDBIT.bit2  

#define PIND_PD3 PINDBIT.bit3  

#define PIND_PD4 PINDBIT.bit4  

#define PIND_PD5 PINDBIT.bit5  

#define PIND_PD6 PINDBIT.bit6  

#define PIND_PD7 PINDBIT.bit7  

  

#endif  


关键字:atmega8  飞思卡尔  xs128  IO引脚 引用地址:让atmega8可以和飞思卡尔xs128一样对IO引脚进行定义

上一篇:atmega8 例程:USART串口通信
下一篇:atmega8 例程:AD中断方式采集

推荐阅读最新更新时间:2024-03-16 15:27

飞思卡尔单片机PIT汇编编程(一)
飞思卡尔单片机(XS128系列)单片机汇编编程(一) 本人就是一个菜鸟,从菜鸟学习汇编编程;汇编也没想象中的复杂和难懂,细细品味还是挺有意思的。就当刷着玩吧,就学起了汇编(这一直是我的一大心病),慢慢学吧,就当了却了我的一个愿望。作为我的第一个汇编程序,仔细缕缕编写的过程。好了,废话不说了,开始正题。 手头上的资料:飞思卡尔单片机,调试器以及手册(欧了,就这三样),对了,下一个飞思卡尔单片机的汇编指令集哦。 开始如下工作: 首先熟悉中断机制,确定我们要在哪部分编程,以及编程之后起到的效果,然后才能更好地编程。具体机制参考下图: 编程部分:参考手册找到PIT部分,根据以往C语言编程的经历,定时器主要通过配置相应的
[单片机]
<font color='red'>飞思卡尔</font>单片机PIT汇编编程(一)
飞思卡尔176亿美元被收购
9月18日国际报道 以Blackstone为首的一个私人资产管理公司联盟昨天宣布,以176 亿美元收购了飞思卡尔。 Blackstone联盟已经与飞思卡尔谈判了数个月时间。根据达成的协议,该联盟将以每股40美元的价格收购飞思卡尔的股票,比它的股价高出了30%。达成的协议中包括“go shop”条款。 根据该条款,飞思卡尔可以接受更高的出价,如果出现这种情况,它需要向Blackstone联盟支付违约金。据相关人士上周五称,没有能够收购飞思卡尔的一方正在研究飞思卡尔的业务,可能提出新的出价。 飞思卡尔董事会决定接受Blackstone联盟出价的原因是,对方的出价中包含有许多条件和限制。更重要的是,飞思卡尔还可能与上个月被Kohlbe
[焦点新闻]
Mouser供货Freescale PF3000电源管理集成电路 IoT处理器量身之作
贸泽电子 ( Mouser Electronics ) 即日起开始分销 Freescale Semiconductor 的 PF3000电源管理集成电路 (PMIC)。作为Freescale i.MX 7系列 、 i.MX 6SoloLite 以及 i.MX 6SoloX 系列应用处理器的配套产品,PF3000为一个单芯片电源管理解决方案。PF3000 PMIC能够驱动内核处理器、外部存储器以及外设,进而降低设计复杂度与成本,同时还能提供最高的总体电源效率。PF3000具有四个降压转换器、六个线性稳压器、RTC电源和纽扣电池充电器,并支持一次性可编程存储器。 Mouser分销的 Freescale PF3000电源管理集成电
[电源管理]
飞思卡尔汽车解决方案让系统更轻松地达到安全标准
2012年6月19日, 圣安东尼奥(飞思卡尔技术论坛)讯 – 飞思卡尔半导体 (NYSE:FSL)帮助汽车设计人员降低构建符合国际标准化组织(ISO) 26262标准的功能安全系统的复杂性,并缩短了开发时间。Qorivva MPC574xP 32位微控制器 (MCU) 和系统级芯片 (SBC) MC33906/7/8 系列是飞思卡尔新推出的SafeAssure解决方案,可帮助汽车系统满足包括最严格的ASIL D级在内的所有汽车安全完整性等级(ASIL)。面向的应用包括电动助力转向、电子稳定控制系统、汽车动力和底盘控制、安全域控制、自适应巡航控制和盲点检测。 Qorivva MPC574xP MCU 和 MC33906/7/8 S
[汽车电子]
飞思卡尔单片机KEA128之ADC学习
这个ADC模块的操作模式其实也比较简单。 首先就是配置,罗列一下该配置什么吧 ADICLK ADC模块的输入时钟选择。是总线时钟,总线时钟2分频还是外部的 ADIV 对上面的时钟再分频后就可以给ADC的核心模块使用了。 MODE 选择8/10/12位转换 ADLSMP 短还是长时间采样。不设置的话默认是短 ADLPC 高速还是低功耗,低功耗的话会慢一些,不设置的话默认是高速 AIEN 使能不使能中断啊,默认不使能 ADCO 连续转换功能,默认单次。单次的话在一次采样完成后,要再一次选择通道才能开始下一次转换。 ADTRG 软件触发启动转换还是硬件触发。默认是软件
[单片机]
飞思卡尔 i.MX 系列处理器助力打造全新智能汽车
汽车从诞生至今100多年来,已经逐渐从人们的代步工具演化为生活和娱乐空间的延续,随着汽车逐渐成为大多数人生活中的必需品,更安全、更舒适、更便捷的现代化智能汽车在众多电子设备的辅助下呼之欲出。信息娱乐系统和远程信息控制系统正是在这种市场需求下越来越多地应用到汽车中。在8月24日开幕的飞思卡尔技术论坛(FTF)上,飞思卡尔分享了其i.MX51的综合平台解决方案,该系列处理器为打造全新智能汽车提供了强有力的支持。 全新的市场趋势 自上世纪60年代起,电子技术的进步就已成为汽车工业发展的最大动力,上世纪90年代,国外提出智能交通系统概念,智能车辆则是智能交通系统的重要组成部分。智能车辆技术包含了计算机、移动通讯、自动控制等
[嵌入式]
飞思卡尔 i.MX处理器建构安防系统
针对工业和汽车设计扩展连接、“智能触摸”和安全选件以减少开发成本 在12月初“飞思卡尔充电吧”举行的i.MX多媒体应用处理器建构安防系统在线研讨会上,飞思卡尔半导体应用处理器与消费产品亚太区市场经理蒋宏先生详细介绍了其全球领先的专业安防系统解决方案,并用实例讲解和分析了飞思卡尔i.MX258单芯片多媒体应用处理器在楼宇安防、防窃密的电子商务设备、智能电表和门禁控制等领域应用时,所具有的高效能和超强安全特性。工程师们不仅全面了解了i.MX258产品的丰富功能,更学习到如何将这些领先的功能融入自己的产品设计中。 飞思卡尔半导体推出的i.MX应用处理器最新系列,将大量工业应用和汽车内信息娱乐系统应用的连接性、触摸控
[安防电子]
<font color='red'>飞思卡尔</font> i.MX处理器建构安防系统
博世携手飞思卡尔研发安全气囊参考平台
  飞思卡尔半导体和博世集团汽车电子事业部利用其在汽车电子的领先地位和系统专业知识,为印度和中国等新兴市场中日益增长的汽车安全细分市场创建了汽车安全气囊参考平台。   这款新的安全气囊参考平台采用的芯片组使用了飞思卡尔Qorivva 32位微控制器 (MCU)系列和博世的安全气囊ASSP系列,并与这两家公司的传感器协同工作。 安全气囊参考平台演示了飞思卡尔Qorivva MPC560xP MCU系列如何与博世CG147安全气囊ASSP系列协同工作,其中飞思卡尔 Qorivva MPC560xP MCU系列是用于安全应用的可扩展的MCU,博世CG147安全气囊ASSP系列是结合了电源、点火回路、传感器接口和安全控制器于一身的集成
[汽车电子]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved