wo是菜鸟求助:单片机驱动数码管段码可以随便的使用几个口驱动吗(P0 P1 P2 P3)如何设置

2020-01-27 11:46发布

水平低,只会模仿,高手莫怪。
做的定时器,原来使用的是P1接数码管abcdefg.
现在我想把单片机直接焊接在数码管上,这样的话引脚接口就不能一一对应了,想改程序改变接口的,可是程序里面没段码定义引脚,只有位码的。
这样就难了,不知道如何改啊?
水平低,说的不知道大家能不能看明白?
文化低,不会说,想到啥说啥,前辈莫怪,谢谢了。
我就是想做个定时开关,使用AT89C2051单片机,或者STC15F104E单片机,可以定时开、定时关。
电路越简单越好,因为自己焊工差、再加上视力差,挺难的,但是我就是喜欢折腾这些小玩意啊,就这一点点爱好,不能埋没了啊,呵呵!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
17条回答
HeP028
2020-01-28 20:10
大哈欠E 发表于 2013-6-27 08:06
虚心求教,我新手。

给你举例吧:
  1.        
  2.         SBIT LCD1602dataPortO = PORTC^4;
  3.         SBIT LCD1602dataPort1 = PORTC^3;
  4.         SBIT LCD1602dataPort2 = PORTC^2;
  5.         SBIT LCD1602dataPort3 = PORTC^1;
  6.         SBIT LCD1602dataPort4 = PORTC^0;
  7.         SBIT LCD1602dataPort5 = PORTD^7;
  8.         SBIT LCD1602dataPort6 = PORTD^6;
  9.         SBIT LCD1602dataPort7 = PORTD^5;

  10. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  11. * Function          :       
  12. * Description         :        函数功能、性能描述
  13. * Calls                 :        被本函数调用的函数清单
  14. * Called By         :        调用本函数的函数清单
  15. * Table accessed:        被访问的表(数据库操作用)
  16. * Tabled Updated:        被修改的表(数据库操作用)
  17. * Input                 :        输入参数、取值说明与关系
  18. * Output                 :        输出参数、类型说明
  19. * Return                 :        函数返回值说明
  20. * Others                 :        (Screen sequence)  
  21. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  22. void LCD1602WriteConversionData(unsigned char WriteData)
  23. {
  24.         if (WriteData & 0x01)        {LCD1602dataPortO = 1;}        else{LCD1602dataPortO = 0;}
  25.         if (WriteData & 0x02)        {LCD1602dataPort1 = 1;}        else{LCD1602dataPort1 = 0;}
  26.         if (WriteData & 0x04)        {LCD1602dataPort2 = 1;}        else{LCD1602dataPort2 = 0;}
  27.         if (WriteData & 0x08)        {LCD1602dataPort3 = 1;}        else{LCD1602dataPort3 = 0;}
  28.         if (WriteData & 0x10)        {LCD1602dataPort4 = 1;}        else{LCD1602dataPort4 = 0;}
  29.         if (WriteData & 0x20)        {LCD1602dataPort5 = 1;}        else{LCD1602dataPort5 = 0;}
  30.         if (WriteData & 0x40)        {LCD1602dataPort6 = 1;}        else{LCD1602dataPort6 = 0;}
  31.         if (WriteData & 0x80)        {LCD1602dataPort7 = 1;}        else{LCD1602dataPort7 = 0;}
  32. }
复制代码

一周热门 更多>