当前位置: 代码迷 >> 单片机 >> 单片机设计流水灯,该怎么解决
  详细解决方案

单片机设计流水灯,该怎么解决

热度:118   发布时间:2016-04-28 16:24:07.0
单片机设计流水灯
刚刚学习单片机,老师留得作业使用ATmega16设计流水灯,A B C D 四口从低位向高位依次点亮,然后从高位向低位依次熄灭。如果只用一个口 PORTA 我会,但是不知道怎样写四个的


------解决方案--------------------
给你下代码吧,

C/C++ code
#include <iom16v.h>#include <macros.h>void port_init(void){ PORTA = 0x00; DDRA  = 0x00; PORTB = 0x00; DDRB  = 0x02; PORTC = 0x00; //m103 output only DDRC  = 0x00; PORTD = 0x00; DDRD  = 0x00;}//call this routine to initialize all peripheralsvoid init_devices(void){ //stop errant interrupts until set up CLI(); //disable all interrupts port_init(); MCUCR = 0x00; GICR  = 0x00; TIMSK = 0x00; //timer interrupt sources SEI(); //re-enable interrupts //all peripherals are now initialized}
------解决方案--------------------
具体主函数楼主参考我的代码自己修改下吧:
C/C++ code
#include <iom16v.h>#define uchar unsigned char #define uint  unsigned intvoid delay(uint ticks);void main(){ init_devices(); while(1) {  PORTB^=0x02;//把IO口取反  delay(5000); }}void delay(uint ticks){ uchar i; while(ticks--)for(i=100;i!=0;i--);//约0.1mS}
  相关解决方案