简介:在这里为大家提供一个ATmega16L单片机数码管显示示例程序设计。
;******************************************************
;*标题: ATmega16L单片机数码管显示示例程序
;*文件:
;*版本: 1.0
;*******************************************************
#include #include //注: 内部函数_delay_ms() 最高延时 262.144mS@1MHz 即 32.768ms@8MHz // 该函数可以实现较精确的定时for()/while()指令很难计算延时时间 // 为了使 _delay_ms()函数的延时正确,须在makefile中设定F_CPU为实际的系统时钟频 // 本范例为4MHz内部RC振荡器 即 F_CPU=4000000 //********************************** #define uchar unsigned char //数据类型说明 #define uint unsigned int //数据类型说明 #define RD4 4 // #define RD5 5 // #define RD6 6 // #define RD7 7 // //********************************** uchar table[11]={0xc0,0xf9,0xa4,0xb0,0x99, // 0, 1, 2, 3,4, 0x92,0x82,0xf8,0x80,0x90, 0xff} ;// 5, 6, 7, 8, 9, off uchar buf[4] ; uchar disppoint; // //********************************** void DelayMs(uint i) //Ms级延时函数,参数i:延时时间 { uint j ; for( ;i!=0 ;i--) {for(j=8000 ;j!=0 ;j--) ;} } //********************************** //********************************** void put_num(char c) { PORTC=table[c&0x0f]; // } //********************************* void main() { DDRD=0xFF ; //置PD口为输出 PORTD=0xFF ; DDRC=0xFF ; PORTC=0xFF ; //置PC口为输出 buf[0]=0; // buf[1]=1; // buf[2]=2; // buf[3]=3; // while(1) { disppoint=0; // put_num(buf[disppoint]); // PORTD &=~(1< PORTD |= (1< put_num(buf[disppoint]); // PORTD &=~(1< PORTD |= (1< put_num(buf[disppoint]); // PORTD &=~(1< PORTD |= (1< disppoint++; // put_num(buf[disppoint]); // PORTD &=~(1< PORTD |= (1< } }
上一篇:基于ATmega16单片机的DDS信号源设计制作
下一篇:基于ATmega16的遥控密码锁系统的设计
推荐阅读最新更新时间:2024-10-26 18:46
设计资源 培训 开发板 精华推荐
- AD584 电流输出、8 位数模配置的典型应用
- WiFi双色温调光灯
- BD49xxx系列BD49L55电压检测IC的典型应用
- AD8602WARZ-R7 高端运算放大器电流监视器的典型应用
- 使用 Silicon Labs 的 SI3015-KSR 的参考设计
- NCP630G 3A快速线性稳压器的典型应用
- STR-NIS5132-GEVB、Strata Enabled NIS5132 12V、44 m-ohm、3.6A eFuse 评估板
- 具有 400mA 突发钳位、fSW = 1MHz 同步降压稳压器的 LTC3621HMS8E-3.3 2.5V Vout 的典型应用
- STEVAL-CBL014V1,用于双 LNB 电源和控制 IC DiSeqC 1.x 的评估板,基于 LNBH26L
- L78L06AC 正压稳压器的典型应用,用于高输出电流短路保护