找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1519|回復(fù): 4
收起左側(cè)

關(guān)于Proteus仿真16x32點(diǎn)陣屏閃爍的問題

[復(fù)制鏈接]
ID:1096523 發(fā)表于 2023-10-19 21:27 | 顯示全部樓層 |閱讀模式
如題,我是用proteus 8x8點(diǎn)陣屏搭建16x32的點(diǎn)陣屏

使用P2口+譯碼器做行選(點(diǎn)陣屏下面8個(gè)引腳 低電平有效)
使用4個(gè)移位寄存器級(jí)聯(lián)做列選(點(diǎn)陣屏上面8個(gè)引腳 高電平有效)
取模按照列行方式取模

單片機(jī)源程序如下:
  1. uint8_t up_data[] = {
  2. };
  3. uint8_t down_data[] = {
  4. };
  5. void write_line(uint8_t c4,uint8_t c3,uint8_t c2,uint8_t c1)
  6. {
  7. int i;
  8. ST_CP = 0;
  9. for(i=0;i<32;i++)
  10. {
  11. SH_CP = 0;
  12. if(i<8) DS = c4 & (0x80 >> i);
  13. else if(i>=8&&i<16) DS = c3 & (0x80 >> (i-8));
  14. else if(i>=16&&i<24) DS = c2 & (0x80 >> (i-16));
  15. else if(i>=24&&i<32) DS = c1 & (0x80 >> (i-24));
  16. SH_CP = 1;
  17. }
  18. ST_CP = 1;
  19. }
  20. int main()
  21. {
  22. int i,j,a;
  23. E1 = 0;

  24. while(1)
  25. {
  26. for(i=0;i<16;i++)
  27. {
  28. P2 = i;
  29. if(i<8)
  30. write_line(up_data[16+2*i+1],up_data[16+2*i],up_data[2*i+1],up_data[2*i]);
  31. else
  32. write_line(down_data[16+2*(i-8)+1],down_data[16+2*(i-8)],down_data[2*(i-8)+1],down_data[2*(i-8)]);

  33. write_line(0,0,0,0);
  34. }
  35. }
  36. }
復(fù)制代碼

其中up_data的前16個(gè)數(shù)據(jù)為數(shù)字‘1’的上半部分 后16個(gè)數(shù)據(jù)為數(shù)字‘2’的上半部分
down_data為對(duì)應(yīng)的下半部分


最后的效果是點(diǎn)陣屏閃爍,并不能保持常亮
請(qǐng)大佬幫忙看看如何解決!
回復(fù)

使用道具 舉報(bào)

ID:102963 發(fā)表于 2023-10-20 08:30 | 顯示全部樓層
你那仿真文件和程序文件,要壓縮后傳上來,大家才有可能給你找問題。只貼個(gè)程序,怎么找問題?
回復(fù)

使用道具 舉報(bào)

ID:432633 發(fā)表于 2023-10-20 09:00 | 顯示全部樓層
可以調(diào)整主頻試下
回復(fù)

使用道具 舉報(bào)

ID:69038 發(fā)表于 2023-10-20 09:10 | 顯示全部樓層
1、顯示刷新問題。無法杜絕只能改善:你可以更改器件的響應(yīng)速度、關(guān)閉電平指示、關(guān)閉示波器等相關(guān)儀器(如果有的話)
2、代碼刷新率提高,不一定有效,得看電路組成。
回復(fù)

使用道具 舉報(bào)

ID:161164 發(fā)表于 2023-10-25 17:54 | 顯示全部樓層
1. 沒有消影
2. 每一行顯示加1ms延時(shí)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表