久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1342|回復: 3
打印 上一主題 下一主題
收起左側

有大佬能幫我看看為什么單片機數碼管沒有反應嗎?要如何修改?

[復制鏈接]
跳轉到指定樓層
樓主


單片機源程序如下:
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. uchar bufr[]="------\r\n";//存放接收數據
  6. uchar *prx=&bufr;//接收指針
  7. bit str; //接收完畢標志位
  8. //段碼
  9. uchar code leddata[]={
  10. 0xC0, //"0"
  11. 0xF9, //"1"
  12. 0xA4, //"2"
  13. 0xB0, //"3"
  14. 0x99, //"4"
  15. 0x92, //"5"
  16. 0x82, //"6"
  17. 0xF8, //"7"
  18. 0x80, //"8"
  19. 0x90, //"9"
  20. 0x88, //"A"
  21. 0x83, //"B"
  22. 0xC6, //"C"
  23. 0xA1, //"D"
  24. 0x86, //"E"
  25. 0x8E, //"F"
  26. 0x89, //"H"
  27. 0xC7, //"L"
  28. 0xC8, //"n"
  29. 0xC1, //"u"
  30. 0x8C, //"P"
  31. 0xA3, //"o"
  32. 0xBF, //"-"
  33. 0xFF, //熄滅
  34. 0xFF //自定義
  35. };
  36. //延時函數
  37. void delay(uint i)
  38. {
  39. uint m,n;
  40. for(m=i;m>0;m--)
  41. for(n=90;n>0;n--);
  42. }
  43. //數碼管顯示函數
  44. void led_display()
  45. {
  46. uchar i;
  47. P2=0x01;
  48. for(i=0;i<6;i++)
  49. {
  50. P0=0xff;
  51. P2=_cror_(P2,1);
  52. P0=leddata[bufr[i]-'0'];
  53. delay(2);
  54. }
  55. }
  56. //字符發送函數
  57. void putchar(uchar data1)
  58. {
  59. SBUF=data1; //將待發送的字符送入發送緩沖器
  60. while(!TI); //等待發送完成
  61. TI=0; //發送中斷標志請0
  62. }
  63. //字符串發送函數
  64. void putstring(uchar *dat)
  65. {
  66. while(*dat!='\0')    //判斷字符串是否發送完畢
  67. {           
  68. putchar(*dat);        //發送單個字符
  69. dat++;                //字符地址加1,指向先下一個字符
  70. delay(5);
  71. }
  72. }
  73. //串口初始化函數
  74. void serial_init()
  75. {
  76. TMOD=0x20;  //定時器工作方式2
  77. SCON=0x50;  //串行口工作方式2
  78. PCON=0x80; //SMOD =1,波特率加倍
  79. TH1=0xfa;
  80. TL1=0xfa;    //波特率設置9600
  81. ES=1;
  82. EA=1;//開總中斷
  83. }
  84. void main()
  85. {
  86. serial_init();
  87. TR1=1;
  88. putstring("Receiving from 8051...\r\n");      
  89. putstring("----------------------\r\n");
  90. delay(50);
  91. while(!str);//等待接收完畢
  92. while(1)
  93. {   
  94. P0=0xff;
  95. while(!str);
  96. led_display();
  97. }
  98. }
  99. void serial() interrupt 4
  100. {
  101. if(RI!=1) return;//判斷是否接收
  102. {   
  103. str=0;
  104. ES=0;
  105. *prx=SBUF; //接收存放數據
  106. putchar(*prx);
  107. RI=0;
  108. prx++;    //指針自加
  109. if(*prx=='\0') //是否接收完成
  110. {
  111. prx=&bufr;//指針初始化
  112. str=1; //標志位置1
  113. putstring("\r\n");
  114. putstring("translate over!\r\n");
  115. ES=1;
  116. return;
  117. }
  118. ES=1;
  119. return;    //退出中斷
  120. }
  121. }
復制代碼

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:332444 發表于 2020-6-19 07:41 | 只看該作者
去掉三極管試看。
回復

使用道具 舉報

板凳
ID:783500 發表于 2020-6-19 12:30 來自觸屏版 | 只看該作者
xianfajushi 發表于 2020-6-19 07:41
去掉三極管試看。

去掉了,但是數碼管顯示的不是我在pc端輸入的數據,可以幫我看看程序嗎?
回復

使用道具 舉報

地板
ID:636538 發表于 2020-6-19 16:26 | 只看該作者
P0=leddata[bufr[i]-'0'];
uchar bufr[]="------\r\n";//存放接收數據這兩句話讓我看著怎么像是字符變量,不是實際的數;
你直接輸入
P0=leddata[i];
看看是不是顯示的012345,如果是,說明P0=leddata[bufr[i]-'0'];
uchar bufr[]="---需要改,就是這個有問題


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 99热激情 | 天天看天天爽 | 一区二区高清 | 国产99久久精品一区二区永久免费 | 在线视频成人 | 一区二区影院 | 男女啪啪高潮无遮挡免费动态 | 欧美激情视频网站 | 一级二级三级黄色 | 久久久高清| 久久久新视频 | 国产精品久久久久久久免费观看 | 女女百合av大片一区二区三区九县 | 国产 日韩 欧美 中文 在线播放 | 日日骚视频 | 国产精品网址 | 国产成人一区二区三区电影 | 在线观看av网站 | 午夜精品久久久久久久星辰影院 | 久草福利 | 神马久久春色视频 | 国产ts一区 | 免费观看黄 | 在线欧美一区 | 久久久久久国产精品免费免费 | 亚洲一区二区欧美 | 在线看片国产 | 日韩高清中文字幕 | 97在线观视频免费观看 | 亚洲精品久久久久中文字幕欢迎你 | 欧美日韩网站 | 成人欧美一区二区三区在线观看 | 99re热精品视频国产免费 | 蜜桃五月天 | 日日综合 | 久草视频在 | 日韩成人国产 | 国产成人精品一区二区三区网站观看 | 亚洲精选一区二区 | 在线免费观看视频你懂的 | 亚洲精品456 |