2951|6

84

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

求2401测试程序 [复制链接]

要MEGA16的,在ICC环境下编译的。谢谢!

最新回复

ding  详情 回复 发表于 2010-1-6 23:10
点赞 关注

回复
举报

68

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
再不顶就沉了。。。
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
我这有,楼主看看吧:
  1. #include
  2. #define uchar unsigned char
  3. #define uint  unsigned int
  4. #define Left  0x80
  5. #define Right 0x40

  6. unsigned char const Tab[]={0x14,0x9F,0x38,0x1A,0x93,0x52,0x50,0x1F,
  7.                           0x10,0x12,0x11,0xD0,0x74,0x98,0x70,0x71};
  8.                                                   
  9. void display();//负责把显示缓冲区的数据显示到数码管
  10. void process(uchar left,uchar right);//刷新显示缓冲区
  11. void delay(uint ticks);//延时
  12. uchar ShuMa[2];//显示缓冲区

  13. void  WriteEPROM(uint Address,uchar Data);
  14. uchar ReadEPROM(uchar Address);
  15. uchar temp=1000;

  16. void main()
  17. {
  18. uint Address=0;
  19. init_devices();
  20. //向0-511地址的EEPROM依次写入0--0xFF。共写满512字节EEPROM
  21. for(Address=0;Address!=512;Address++)WriteEPROM(Address,Address&0x0ff);
  22. while(1)
  23. {//把512字节的EEPROM数据依次读出来显示
  24.   for(Address=0;Address!=512;Address++)
  25.   {//读数据到显示缓冲区
  26.    process(ReadEPROM(Address)>>4,ReadEPROM(Address)&0x0f);
  27.    while(temp--) display();//显示
  28.    temp=1000;
  29.   }
  30. }
  31. }

  32. ////////////////////////////////
  33. void display()
  34. {
  35. PORTA=Left|Right;//关显示
  36. PORTC=ShuMa[0];  //输出数据
  37. PORTA=~Left;          //开左数码管
  38. delay(10);          //延时
  39. PORTA=Left|Right;//关显示
  40. PORTC=ShuMa[1];  //输出数据
  41. PORTA=~Right;          //开右数码管
  42. delay(10);          //延时
  43. }
  44. ///////////////////////////////////
  45. void process(uchar left,uchar right)
  46. {
  47. ShuMa[0]=Tab[left];//查表
  48. ShuMa[1]=Tab[right];//查表
  49. }
  50. /////////////////////////////////////
  51. void delay(uint ticks)
  52. {
  53. uchar i;
  54. while(ticks--)for(i=100;i!=0;i--);//约0.1mS
  55. }

  56. void  WriteEPROM(uint Address,uchar Data)
  57. {
  58. while(EECR&0x02);//等待EEWE为0
  59. EEARH=Address>>8;//写入高地址
  60. EEARL=Address&0x0ff;//写入低地址
  61. EEDR=Data;                        //写数据到EEPROM寄存器                         
  62. EECR|=0x04;                //置位EEMWE                                                                 
  63. EECR|=0x02;                //置位EEWE
  64. while(EECR&0x02); //等待EEWE为0
  65. }

  66. uchar ReadEPROM(uchar Address)
  67. {
  68. while(EECR&0x01);//等待EERE为0
  69. EEARH=Address>>8;//写入高地址
  70. EEARL=Address&0x0ff;//写入低地址
  71. EECR|=0x01;                //置位EERE,读数据
  72. while(EECR&0x01); //等待EERE为0
  73. return EEDR;      //返回数据
  74. }
复制代码
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

4
 
用的是 2400或2401;

楼主先好好看看,如果要完整的代码,我再上传eeworld吧
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

5
 
还是发一下吧,嘿嘿谢谢咯
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用 4 楼 bhf5196152 的回复:
还是发一下吧,嘿嘿谢谢咯


http://download.eeworld.net/source/1970599
你自己下载好好看下吧
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

7
 
ding
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表