完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
max7219在proteus7.8仿真通不过,找了许久找不到原因,大家进来讨论一下
PCB打样找华强 http://www.hqpcb.com 样板2天出货 下面是代码大家看看有什么问题没有 /*******************************/ //ICCAVR 7.22 2012-1212 /*******************************/ #include #include #define uchar unsigned char #define uint unsigned int /*端口定义*/ //**************max7219定义*************// #define LOAD7219_1() PORTC|=(1< #define led_add 0x0a //亮度控制寄存器 1-32 #define bit_add 0x0b //扫描位数寄存器0-7 显示1-8位 #define stop_add 0x0c //D0=0关闭显示 需250uS才能退出 D0=1启动显示 #define ceshi_add 0x0f //测试7219以最亮方式全部点亮 #define null_add 0x00 //空操作寄存器 #define data1_add 0x01 //数字寄存器 #define data2_add 0x02 #define data3_add 0x03 #define data4_add 0x04 #define data5_add 0x05 #define data6_add 0x06 #define data7_add 0x07 #define data8_add 0x08 void delay(uint ms) { uint i,j; for(i=0;i } //***************************************************// void write_7219(uchar add7219,uchar data7219) { uchar trdata,i=0,j; LOAD7219_1(); LOAD7219_0(); while(i<16) { if(i<8) trdata=add7219; else trdata=data7219; CLK7219_0(); for(j=0;j<8;j++) { if(trdata&0x80==0x80) DIN7219_1(); else DIN7219_0(); // delay(5); CLK7219_1(); trdata=trdata<<1; } i=i+8; } LOAD7219_1(); // delay(5); } void ini_7219(void) { write_7219(stop_add,0x01);//正常显示 write_7219(stop_add,0x00) 关闭显示 write_7219(ceshi_add,0x00);//正常工作模式 write_7219(decode_add,0xff);//全部BCD译码 write_7219(bit_add,0x07);//扫描8位 write_7219(led_add,0x05);//亮度11/32 //write_7219(null_add,0x00);//空操作 //write_7219(ceshi_add,0x01);//全亮测试 } void port_init(void) {// DDR 0 为输入口 1 为输出口 // PORT DDR 为0时输入口时 PORT=1为上拉电阻使能,PORT=0时关闭 // DDR 为1时为输出口 PORT=1输出高电平,PORT=0输出低电平 PORTA = 0xFF; //高4位输出1,低4位上拉有效 DDRA = 0xF0; //高4位输出,地4位输入 PORTB = 0x07; DDRB = 0x00; PORTC = 0x03; DDRC = 0x72; //pc1 load pd0 din pd1 clk 7219 //DDRC = 0x78; PORTD = 0x1F; DDRD = 0xE3; //DDRD = 0xE0; } void init_devices(void) { CLI(); //禁止所有中断 MCUCR = 0x00; MCUCSR = 0x80;//禁止JTAG GICR =0x00; MCUCR |= 0x02;//中断0 下降沿 GICR |= 0x40;//外部中断0 MCUCR |= 0x08;//中断1 下降沿 GICR |= 0x80;//外部中断1 MCUCSR|= 0x40;//中断1 上升沿 GICR |= 0x20;//外部中断2 port_init(); } void main(void) { unsigned char p,k,s; uint i; init_devices(); //SEI();//开全局中断 ini_7219(); while(1) { write_7219(0x01,1); write_7219(0x02,2); write_7219(0x03,3); write_7219(0x04,4); write_7219(0x05,5); write_7219(0x06,6); write_7219(0x07,7); write_7219(0x08,8); //write_7219(ceshi_add,0x01);//全亮测试 //write_7219(ceshi_add,0x00);//正常工作模式 delay(50); } }
|
|
相关推荐
|
|
3337 浏览 3 评论
4640 浏览 1 评论
4918 浏览 0 评论
Protues中自己封装的芯片元件无Program File、Clock Frequency选项怎么解决,求求大神了!
6628 浏览 1 评论
基于51单片机的车辆倒车雷达报警系统,HC-SR04超声波测距,全套资料
1186 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-2 18:15 , Processed in 1.450387 second(s), Total 77, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号