首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

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

2012-02-20 
单片机设计流水灯刚刚学习单片机,老师留得作业使用ATmega16设计流水灯,A B C D 四口从低位向高位依次点亮,

单片机设计流水灯
刚刚学习单片机,老师留得作业使用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} 

热点排行