佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1538|回复: 4

Programming 求助

[复制链接]
发表于 12-3-2006 05:51 PM | 显示全部楼层 |阅读模式
比如说我有8bits of data.

data=0b10111100。

我想display 1st 4bit of data, then 2nd lower 4bit of data.
我用 PIC16F84A, PortA 只有4个I/O port.

要怎么能:

1。PortA=upper 4 bit of data.

2。Display Port A

3。PortA=lower 4 bit of data.

4。Display Port A

请用C language 来教我。
回复

使用道具 举报


ADVERTISEMENT

发表于 12-3-2006 07:23 PM | 显示全部楼层
原帖由 南极星 于 12-3-2006 05:51 PM 发表
比如说我有8bits of data.

data=0b10111100。

我想display 1st 4bit of data, then 2nd lower 4bit of data.
我用 PIC16F84A, PortA 只有4个I/O port.

要怎么能:

1。PortA=upper 4 bit of data.
...


  1. void display_binary(char c)
  2. {
  3. char i;

  4.    i = 8;
  5.    putc('0');
  6.    putc('b');

  7.    do
  8.      {
  9.        if( c & 0x80 )
  10.          { putc('1'); }
  11.        else
  12.          { putc('0'); }

  13.        c <<= 1;  i--;
  14.      } while(i);
  15. }

复制代码


*************************OR***************************

  1. //======================= Main ==============================
  2. void main(void)
  3. {
  4.   int8 data=180;//180=0xB4=1011 0100
  5.   printf(bin_putc,"This is a test %lX\n\r",data);
  6.   while(1)
  7.   {

  8.   }
  9. }

  10. //======================= print binary nibbles from hex ============================//
  11. void bin_putc( char c) {
  12. //converts hex to bin
  13. //printf(bin_putc,"%lX\n\r",data);
  14. switch (c) {
  15.       case '0'   :
  16.           fprintf(DEBUG,"0000 ");
  17.          break;
  18.       case '1'   :
  19.           fprintf(DEBUG,"0001 ");
  20.          break;
  21.       case '2'   :
  22.           fprintf(DEBUG,"0010 ");
  23.          break;
  24.       case '3'   :
  25.           fprintf(DEBUG,"0011 ");
  26.          break;
  27.       case '4'   :
  28.           fprintf(DEBUG,"0100 ");
  29.          break;
  30.       case '5'   :
  31.           fprintf(DEBUG,"0101 ");
  32.          break;
  33.       case '6'   :
  34.           fprintf(DEBUG,"0110 ");
  35.          break;
  36.       case '7'   :
  37.           fprintf(DEBUG,"0111 ");
  38.          break;
  39.       case '8'   :
  40.           fprintf(DEBUG,"1000 ");
  41.          break;
  42.       case '9'   :
  43.           fprintf(DEBUG,"1001 ");
  44.          break;
  45.       case 'A' || 'a'   :
  46.           fprintf(DEBUG,"1010 ");
  47.          break;
  48.       case 'B' || 'b'     :
  49.           fprintf(DEBUG,"1011 ");
  50.          break;
  51.       case 'C' || 'c'    :
  52.           fprintf(DEBUG,"1100 ");
  53.          break;
  54.       case 'D' || 'd'     :
  55.           fprintf(DEBUG,"1101 ");
  56.          break;
  57.       case 'E' || 'e'     :
  58.           fprintf(DEBUG,"1110 ");
  59.          break;
  60.       case 'F' || 'f'     :
  61.           fprintf(DEBUG,"1111 ");
  62.          break;

  63.       default     :
  64.          fprintf(DEBUG,"%C",c);
  65.          break;
  66.    }
  67. }
复制代码




[ 本帖最后由 hi--520 于 12-3-2006 07:25 PM 编辑 ]
回复

使用道具 举报

发表于 12-3-2006 07:30 PM | 显示全部楼层
原帖由 南极星 于 12-3-2006 05:51 PM 发表
比如说我有8bits of data.

data=0b10111100。

我想display 1st 4bit of data, then 2nd lower 4bit of data.
我用 PIC16F84A, PortA 只有4个I/O port.

要怎么能:

1。PortA=upper 4 bit of data.
...


1。PortA=upper 4 bit of data.
PortA=data>>4; // Shift 4bit right to get MSB

2。Display Port A

3。PortA=lower 4 bit of data.
PortA=data & 0b00001111; // Mask lower 4 bit to get LSB

4。Display Port A
回复

使用道具 举报

发表于 13-3-2006 05:34 PM | 显示全部楼层
1。PortA=upper 4 bit of data.
PortA=data>>4; // Shift 4bit right to get MSB

2。Display Port A

3。PortA=lower 4 bit of data.
PortA=data & 0b00001111; // Mask lower 4 bit to get LSB

4。Display Port A



2and 4 之后放一个1sec delay比较好!!

mcu太快了,我怕你的眼睛看不到
回复

使用道具 举报

 楼主| 发表于 14-3-2006 12:32 AM | 显示全部楼层
谢谢各位大哥大姐回复。 此恩难忘
回复

使用道具 举报

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

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 28-11-2024 11:37 PM , Processed in 0.113495 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表