完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include
#include til/delay.h> #define uchar unsigned char #define uint unsigned int unsigned char const LedData[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //数码管端选数组,静态 unsigned char const LedPos[8]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F}; //数码管位选数组,静态 void HC595send(uchar x); void init(void); void HC595shift(void); void HC595store(void); void display(uchar pos,uchar dat); //以上为各个函数声明,详细功见下 void delay_ms(uint i);//延时 uchar n,m=0xfe; int main(void) { init(); while(1) { for(n=1;n<9;n++) //循环显示,八次 { display(n-1,n); //显示函数调用 HC595store(); delay_ms(10); } } } void init(void) //IO 初始化函数 { DDRA=0xff;//B 口全部输出 PORTA=0x00;//B 口全部低电平 } void HC595send(uchar x) //HC595 字节写入函数 { uchar n,temp; for(n=0;n<8;n++) { temp=x&0x80; if(temp!=0) { PORTA|=(1< } else { PORTA&=~(1< } x<<=1; } } void HC595store(void) //字节写入存储寄存器 { PORTA|=(1< void HC595shift(void) //寄存器移位函数 { PORTA|=(1< void display(uchar pos,uchar dat) //显示函数,在某位显示某数据 { HC595send(LedPos[pos]); HC595send( LedData[dat]); } void delay_ms(uint i)//延时 { uint j,m; for(;i!=0;i--) { for(j=5000;j!=0;j--); for(m=5000;m!=0;m--); } }
|
|
相关推荐
1 个讨论
|
|
只有小组成员才能发言,加入小组>>
AVR Atmega16 Bootloader程序与上位机LabView程序
5061 浏览 6 评论
#include <ioavr.h>这个头文件我应该下什么编译器
7715 浏览 0 评论
2987 浏览 2 评论
3074 浏览 1 评论
9984 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-12 04:52 , Processed in 0.492385 second(s), Total 45, Slave 33 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号